Kontobewegungen aktualisiert

master
Alper Kaya 2022-10-19 12:01:31 +02:00
parent 4741398923
commit d08cc39343
7 changed files with 66 additions and 60 deletions

Binary file not shown.

View File

@ -7,24 +7,27 @@ import de.hs_mannheim.informatik.bank.persistence.PersistenceService;
public class Konto implements Serializable {
private static int kontozaehler = 0;
private ArrayList<String> bewegungen = new ArrayList<String>();
private ArrayList<String> dates = new ArrayList<String>();
private int nummer;
private long stand = 0;
private String inhaber;
private ArrayList<Kontobewegung> kontobewegungen;
public Konto(String inhaber) {
nummer = 1000 + kontozaehler++;
this.inhaber = inhaber;
this.kontobewegungen = new ArrayList<>();
}
public long kontoEinzahlen(Konto k, long betrag) {
public long kontoEinzahlen(Konto k, long betrag, String datum, String zweck, String art, String auftraggeber) {
k.stand = k.stand + betrag;
kontobewegungen.add(new Kontobewegung(betrag, datum, zweck, art, auftraggeber));
return k.stand;
}
public long kontoAbheben(Konto k, long betrag) {
public long kontoAbheben(Konto k, long betrag, String datum, String zweck, String art, String auftraggeber) {
k.stand = k.stand - betrag;
kontobewegungen.add(new Kontobewegung(betrag, datum, zweck, art, auftraggeber));
return k.stand;
}
@ -44,20 +47,12 @@ public class Konto implements Serializable {
return inhaber;
}
public ArrayList<String> getBewegungen() {
return bewegungen;
}
public ArrayList<String> getDates() {
return dates;
}
public void setBewegungen(String bewegung) {
bewegungen.add(bewegung);
}
public void setDate(String datum) {
dates.add(datum);
public String[] getKontobewegungen() {
String[] liste = new String[kontobewegungen.size()];
for (int i = 0; i < kontobewegungen.size(); i++) {
liste[i] = kontobewegungen.get(i).toString();
}
return liste;
}
public static void setKontozaehler(int zaehler) {

View File

@ -18,7 +18,7 @@ class KontoTest {
Collection<Konto> konten = bank.getKontenliste();
assertEquals(7 , Konto.getKontozaehler());
}
/*
@Test
void kontoEinzahlenTest() {
Konto k1 = new Konto("User1");
@ -32,7 +32,7 @@ class KontoTest {
k2.kontoEinzahlen(k2, 100);
assertEquals(50, k2.kontoAbheben(k2, 50));
}
*/
@Test
@Order(2)
void kontoNummerGenerierungTest() {

View File

@ -0,0 +1,32 @@
package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable;
public class Kontobewegung implements Serializable{
private String betrag;
private String datum;
private String zweck;
private String art;
private String auftraggeber;
public Kontobewegung(long betrag, String datum, String zweck, String art, String auftraggeber) {
this.betrag = betragMitKomma(betrag);
this.datum = datum;
this.zweck = zweck;
this.art = art;
this.auftraggeber = auftraggeber;
}
private String betragMitKomma(long betrag) {
StringBuilder standKomma = new StringBuilder(Long.toString(betrag));
int posKomma = standKomma.length()-2;
standKomma = standKomma.insert(posKomma, '.');
return standKomma.toString();
}
@Override
public String toString() {
return datum + "\t" + auftraggeber + "\t\t" + zweck + "\t " + betrag + "€\t\t" + art;
}
}

View File

@ -1,7 +0,0 @@
package de.hs_mannheim.informatik.bank.domain;
import java.util.ArrayList;
public class Kontobewegungen {
}

View File

@ -47,16 +47,12 @@ public class Banksystem {
long betrag_long = Long.parseLong(betrag.replace(".", ""));
Konto k = bank.getKonto(kontonr);
k.kontoEinzahlen(k, betrag_long);
String datum = getDatum();
k.kontoEinzahlen(k, betrag_long, datum, "Einzahlung am Schalter", "(+)", k.getInhaber());
// Betrag mit 2 Nachkommastellen für den User anzeigen lassen
String betrag_aktuell = kontostandMitKomma(k);
//Daten für Kontobewegung und Datum für Kontoauszug übergeben
k.setBewegungen(betrag + " (+)");
String datum = getDatum(k);
k.setDate(datum);
return betrag_aktuell;
}
@ -68,20 +64,16 @@ public class Banksystem {
long betrag_long = Long.parseLong(betrag.replace(".", ""));
Konto k = bank.getKonto(kontonr);
k.kontoAbheben(k, betrag_long);
String datum = getDatum();
k.kontoAbheben(k, betrag_long, datum, "Auszahlung am Schalter", "(-)", k.getInhaber());
// Betrag mit 2 Nachkommastellen für den User anzeigen lassen
String betrag_aktuell = kontostandMitKomma(k);
//Daten für Kontobewegung und Datum für Kontoauszug übergeben
k.setBewegungen(betrag + " (-)");
String datum = getDatum(k);
k.setDate(datum);
return betrag_aktuell;
}
private String getDatum(Konto k) {
public String getDatum() {
DateTimeFormatter zeitformat = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDateTime zeit = LocalDateTime.now();
return zeitformat.format(zeit);
@ -141,14 +133,9 @@ public class Banksystem {
return bank.getName();
}
public ArrayList<String> getBewegungen(int kontonr) {
public String[] getKontoauszug(int kontonr) {
Konto k = bank.getKonto(kontonr);
return k.getBewegungen();
}
public ArrayList<String> getDates(int kontonr) {
Konto k = bank.getKonto(kontonr);
return k.getDates();
return k.getKontobewegungen();
}
public String getInhaber(int kontonr) {

View File

@ -109,20 +109,19 @@ public class UI {
System.out.println("Kontonummer: ");
int kontonr = sc.nextInt();
sc.nextLine();
String[] kontobewegungen = bs.getKontoauszug(kontonr);
ArrayList<String> bewegungen = new ArrayList<String>(bs.getBewegungen(kontonr));
ArrayList<String> dates = new ArrayList<String>(bs.getDates(kontonr));
String inhaber = bs.getInhaber(kontonr);
System.out.println("-----------------------------------------------");
System.out.println("Datum:\t\tInhaber:\t\tBetrag:");
System.out.println();
for (int i=0; i<bewegungen.size();i++) {
System.out.printf("%s\t%s\t\t\t%s", dates.get(i), inhaber, bewegungen.get(i));
System.out.println();
System.out.println("Kontoauszug vom " + bs.getDatum() + " für Konto: " + kontonr);
System.out.println("-----------------------------------------------------------------------");
System.out.println("Datum:\t\tInhaber:\tZweck:\t\t\t Betrag:");
System.out.println();
for (String kb: kontobewegungen) {
System.out.println(kb);
}
System.out.println("\n-----------------------------------------------");
System.out.println("Aktueller Kontostand:\t\t\t" + bs.kontoStand(kontonr));
System.out.println();
System.out.println("-----------------------------------------------------------------------");
System.out.println("Aktueller Kontostand:\t\t\t\t\t " + bs.kontoStand(kontonr) + "€");
}
}