diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index b6c7d95..1af8dfd 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -1,8 +1,10 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.Serializable; + import exception.BankException; -public class Girokonto extends Konto { +public class Girokonto extends Konto implements Serializable { public Girokonto(String inhaber) { super(inhaber); diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 223d199..9ce1dd0 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -6,8 +6,7 @@ import java.util.Date; import exception.BankException; -public class Konto implements Serializable{ - private static final long serialVersionUID = 1L; +public class Konto implements Serializable { private static int kontozähler = 0; diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java index 77451c5..5223983 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java @@ -1,8 +1,9 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.Serializable; import java.util.Date; -public class Kontobewegung { +public class Kontobewegung implements Serializable { private long betrag; private Date date; private String betreff; diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 40d8ade..c9d4a31 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -98,4 +98,15 @@ public class Banksystem { return konto.getKontobewgungen(); } + + public boolean überweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) throws BankException { + Konto start = getKontoBanksystem(startkonto); + Konto ziel = getKontoBanksystem(zielkonto); + + if (start instanceof Girokonto && ziel instanceof Girokonto) { + return ((Girokonto)start).überweise((Girokonto)ziel, betrag, verwendungszweck); + } + + return false; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index c92ec88..57a30ad 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -30,9 +30,10 @@ public class UI { System.out.println("4 -> Konto auszahlen"); System.out.println("5 -> Konto anzeigen"); System.out.println("6 -> Kontoauszug anzeigen"); - System.out.println("7 -> Konten speichern?"); - System.out.println("8 -> Konten laden?"); - System.out.println("9 -> Kontoauszug drucken?"); + System.out.println("7 -> Konten speichern"); + System.out.println("8 -> Konten laden"); + System.out.println("9 -> Kontoauszug drucken"); + System.out.println("10 -> Überweisung beauftragen"); System.out.println("99 -> Beenden"); System.out.println(); @@ -50,6 +51,7 @@ public class UI { case 7: bs.kontenSpeichern(); break; case 8: bs.kontenLaden(); break; case 9: kontoauszugDrucken(); break; + case 10:überweisungBeauftragen(); break; case 99: break mainloop; } } @@ -107,7 +109,11 @@ public class UI { int temp = 0; for (int i = 0; i < konten.length; i++) { if (konten[i].contains(kName)) { - temp = Integer.parseInt(konten[i].substring(14, 18)); + if (konten[i].contains(kName) && konten[i].contains("Giro-Konto")) { + temp = Integer.parseInt(konten[i].substring(19, 23)); + } else { + temp = Integer.parseInt(konten[i].substring(14, 18)); + } break; } else { System.out.println("Konto nicht vorhanden"); @@ -134,7 +140,11 @@ public class UI { int temp = 0; for (int i = 0; i < konten.length; i++) { if (konten[i].contains(kName)) { - temp = Integer.parseInt(konten[i].substring(14, 18)); + if (konten[i].contains(kName) && konten[i].contains("Giro-Konto")) { + temp = Integer.parseInt(konten[i].substring(19, 23)); + } else { + temp = Integer.parseInt(konten[i].substring(14, 18)); + } break; } else { System.out.println("Konto nicht vorhanden"); @@ -176,5 +186,24 @@ public class UI { else System.out.println("Noch keine Kontobewegungen."); } + + private void überweisungBeauftragen() throws BankException { + System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: "); + int startkonto = Integer.parseInt(sc.nextLine()); + + System.out.print("Bitte die Kontonummmer für das Zielkonto der Überweisung eingeben: "); + int zielkonto = Integer.parseInt(sc.nextLine()); + + System.out.print("Bitte den gewünschten Überweisungsbetrag eingeben: "); + double betrag = Double.parseDouble(sc.nextLine()); + + System.out.print("Bitte den Verwendungszweck eingeben: "); + String verwendungszweck = sc.nextLine(); + +// boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long)(betrag * 100), verwendungszweck); + boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long)(betrag), verwendungszweck); + + System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); + } }