Kontoauszug hinzugefügt

main
Rahel Strack 2022-10-14 13:05:18 +02:00
parent 4e135b0bd9
commit bad6afef46
6 changed files with 86 additions and 47 deletions

View File

@ -24,16 +24,38 @@ public class Bank {
public Collection<Konto> getKontenliste() {
return konten.values();//Liste aus HashMaps
}
public ArrayList<Long> EinzahlungenAuszahlungen(int knum, long betrag ){
ArrayList<Long> bewegung= null;
public ArrayList<Kontobewegung> EinzahlungenAuszahlungen(int knum, long betrag ){
ArrayList<Kontobewegung> bewegung= null;
Kontobewegung kb=null;
if(knum != 0 && betrag !=0) {
bewegung=konten.get(knum).getZahlungen();
bewegung.add(betrag);
if(betrag<0) {
kb=new Kontobewegung(konten.get(knum).getInhaber(),betrag,Zahlungsart.AUSZAHLUNG);
if(kb!=null) {
bewegung.add(kb);
return bewegung;
}
}else if(betrag>=0) {
kb=new Kontobewegung(konten.get(knum).getInhaber(),betrag,Zahlungsart.EINZAHLUNG);
if(kb!=null) {
bewegung.add(kb);
return bewegung;
}
}
}
return null;
}
public ArrayList<Kontobewegung> getKontobewegung(int knum){
ArrayList<Kontobewegung> kBewegung= null;
if(knum!=0) {
kBewegung=konten.get(knum).getZahlungen();
if(!kBewegung.isEmpty()) {
return kBewegung;
}
}return null;
}
}

View File

@ -8,7 +8,7 @@ public class Konto {
private int nummer;
private long stand = 0;
private String inhaber;
private ArrayList<Long> zahlungen= new ArrayList<>();
private ArrayList<Kontobewegung> zahlungen= new ArrayList<>();
public Konto(String inhaber) {
nummer = 1000 + kontozähler++;
@ -32,7 +32,7 @@ public class Konto {
this.stand = stand;
}
public ArrayList<Long> getZahlungen() {
public ArrayList<Kontobewegung> getZahlungen() {
return zahlungen;
}

View File

@ -1,15 +1,19 @@
package de.hs_mannheim.informatik.bank.domain;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Kontobewegung {
private String auftraggeber=null;
private Date datum = null;
private Date datum = Calendar.getInstance().getTime();
private Zahlungsart zahlungsart=null;
private long betrag=0;
public Kontobewegung(String auftraggeber, Zahlungsart zahlungsart) {
public Kontobewegung(String auftraggeber, long betrag,Zahlungsart zahlungsart) {
this.auftraggeber=auftraggeber;
this.datum=datum;
formatDate(datum);
this.betrag=betrag;
this.zahlungsart=zahlungsart;
}
@ -26,7 +30,7 @@ public class Kontobewegung {
}
public void setDatum(Date datum) {
this.datum = datum;
this.datum = Calendar.getInstance().getTime();
}
public Zahlungsart getZahlungsart() {
@ -36,4 +40,23 @@ public class Kontobewegung {
public void setZahlungsart(Zahlungsart zahlungsart) {
this.zahlungsart = zahlungsart;
}
public long getBetrag() {
return betrag;
}
public void setBetrag(long betrag) {
this.betrag = betrag;
}
public String formatDate(Date datum) {
String format=new SimpleDateFormat("dd/MM/yyyy HH:mm").format(datum);
if(format!=null) {
return format;
}
return null;
}
@Override
public String toString() {
return "Betrag: "+betrag+"[Zahlungsart: "+zahlungsart+" Datum=" + datum + ", Auftraggeber=" + auftraggeber + "]";
}
}

View File

@ -1,8 +1,8 @@
package de.hs_mannheim.informatik.bank.domain;
public enum Zahlungsart {
EINZAHLUNG("einzahlung"),
AUSZAHLUNG("auszahlung"),
EINZAHLUNG("Einzahlung"),
AUSZAHLUNG("Auszahlung"),
UEBERWEISUNG("Ueberweisung");
private String zArt;

View File

@ -6,6 +6,7 @@ import java.util.List;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Konto;
import de.hs_mannheim.informatik.bank.domain.Kontobewegung;
public class Banksystem {
private Bank bank;
@ -46,53 +47,32 @@ public class Banksystem {
return bank.getName();
}
public ArrayList<Long> kontoAuszug(int knum, long sum) {
ArrayList<Long> zahlungen = null;
if (knum != 0 && sum != 0) {
zahlungen = bank.EinzahlungenAuszahlungen(knum, sum);
if (zahlungen != null) {
for (Long zahlung : zahlungen) {
if (zahlung > 0) {
}
}
}
}
return null;
}
public String kontoAuszugToString(int knum) {
ArrayList<Long> zahlungen = null;
ArrayList<Kontobewegung> zahlungen = null;
String back = "";
if (knum != 0) {
zahlungen = bank.EinzahlungenAuszahlungen(knum, 0);
zahlungen = bank.getKontobewegung(knum);
if (!zahlungen.isEmpty()) {
for (Long zahlung : zahlungen) {
if (zahlung > 0) {
back+=zahlung.toString(zahlung)+ "\n";
}
for (Kontobewegung zahlung : zahlungen) {
back+=zahlung.toString()+ "\n";
}return back;
}
}
return null;
}
private String toString(long betrag) {
if (betrag >= 0) {
return "Auszahlung: " + betrag;
}
return "Einzahlung: " + betrag;
}
// Geldbetrag einzahlen
public long betragEinzahlen(int knum, long amount) {
public long betragEinzahlen(int knum, long betrag) {
long sum = 0;
Collection<Konto> liste = bank.getKontenliste();
if (knum != 0 && amount != 0) {
if (knum != 0 && betrag != 0) {
for (Konto k : liste) {
if (k.getKontonummer() == knum) {
sum = k.getStand();
sum += amount;
bank.EinzahlungenAuszahlungen(k.getKontonummer(), amount);
sum += betrag;
bank.EinzahlungenAuszahlungen(k.getKontonummer(), betrag);
k.setStand(sum);
return k.getStand();
}
@ -102,15 +82,15 @@ public class Banksystem {
}
// Betrag auszahlen
public long betragAuszahlen(int knum, long amount) {
public long betragAuszahlen(int knum, long betrag) {
long sum = 0;
Collection<Konto> liste = bank.getKontenliste();
if (knum != 0 && amount != 0) {
if (knum != 0 && betrag != 0) {
for (Konto k : liste) {
if (k.getKontonummer() == knum) {
sum = k.getStand();
sum -= amount;
bank.EinzahlungenAuszahlungen(k.getKontonummer(), -amount);
sum -= betrag;
bank.EinzahlungenAuszahlungen(k.getKontonummer(), -betrag);
k.setStand(sum);
return k.getStand();
}

View File

@ -146,6 +146,7 @@ public class UI {
}
private void kontoStand() {
System.out.println("Kontostandabfrage:");
System.out.println("Bitte die Kontonummer angeben:");
int kontonummer = 0;
try {
@ -161,6 +162,19 @@ public class UI {
}
private void kontoAuszug() {
System.out.println("Kontoauszug:");
System.out.println("Bitte die Kontonummer angeben:");
int kontonummer = 0;
try {
kontonummer = Integer.parseInt(sc.nextLine());
} catch (NumberFormatException e) {
System.out.println("Inkorrekte Eingabe!");
System.out.println("Es wurde kein Konto mit dieser Nummer gefunden.");
}
if(bs.kontoAuszugToString(kontonummer)!=null) {
System.out.println("Folgend sehen");
System.out.println(bs.kontoAuszugToString(kontonummer).toString());
}System.out.println("Es konnte kein Kontoauszug gefunden werden.");
}