186 lines
6.4 KiB
Java
186 lines
6.4 KiB
Java
package de.dis2013.editor;
|
|
|
|
import java.util.Iterator;
|
|
import java.util.Set;
|
|
|
|
import de.dis2013.core.ImmoService;
|
|
import de.dis2013.data.Haus;
|
|
import de.dis2013.data.Kaufvertrag;
|
|
import de.dis2013.data.Makler;
|
|
import de.dis2013.data.Mietvertrag;
|
|
import de.dis2013.data.Person;
|
|
import de.dis2013.data.Wohnung;
|
|
import de.dis2013.menu.AppartmentSelectionMenu;
|
|
import de.dis2013.menu.HouseSelectionMenu;
|
|
import de.dis2013.menu.Menu;
|
|
import de.dis2013.menu.PersonSelectionMenu;
|
|
import de.dis2013.util.FormUtil;
|
|
import de.dis2013.util.Helper;
|
|
|
|
/**
|
|
* Klasse für die Menüs zur Verwaltung von Verträgen
|
|
*/
|
|
public class VertragsEditor {
|
|
///Immobilien-Service, der genutzt werden soll
|
|
private ImmoService service;
|
|
|
|
///Makler, zu dessen Immobilien Verträge geschlossen werden dürfen
|
|
private Makler verwalter;
|
|
|
|
public VertragsEditor(ImmoService service, Makler verwalter) {
|
|
this.service = service;
|
|
this.verwalter = verwalter;
|
|
}
|
|
|
|
/**
|
|
* Vertragsmenü
|
|
*/
|
|
public void showVertragsMenu() {
|
|
//Menüoptionen
|
|
final int NEW_LEASING_CONTRACT = 0;
|
|
final int NEW_SALE_CONTRACT = 1;
|
|
final int SHOW_CONTRACTS = 2;
|
|
final int BACK = 3;
|
|
|
|
//Vertragsverwaltung
|
|
Menu maklerMenu = new Menu("Vertrags-Verwaltung");
|
|
maklerMenu.addEntry("Neuer Mietvertrag", NEW_LEASING_CONTRACT);
|
|
maklerMenu.addEntry("Neuer Kaufvertrag", NEW_SALE_CONTRACT);
|
|
maklerMenu.addEntry("Verträge ansehen", SHOW_CONTRACTS);
|
|
|
|
maklerMenu.addEntry("Zurück zum Hauptmenü", BACK);
|
|
|
|
//Verarbeite Eingabe
|
|
while(true) {
|
|
int response = maklerMenu.show();
|
|
|
|
switch(response) {
|
|
case NEW_LEASING_CONTRACT:
|
|
newMietvertrag();
|
|
break;
|
|
case NEW_SALE_CONTRACT:
|
|
newKaufvertrag();
|
|
break;
|
|
case SHOW_CONTRACTS:
|
|
zeigeVertraege();
|
|
break;
|
|
case BACK:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void zeigeVertraege() {
|
|
//Mietverträge anzeigen
|
|
System.out.println("Mietverträge\n-----------------");
|
|
Set<Mietvertrag> mvs = service.getAllMietvertraegeForMakler(verwalter);
|
|
for (Mietvertrag mv : mvs) {
|
|
System.out.println("Mietvertrag " + mv.getVertragsnummer() + "\n" +
|
|
"\tGeschlossen am " + Helper.dateToString(mv.getDatum()) + " in " + mv.getOrt() + "\n" +
|
|
"\tMieter: " + mv.getVertragspartner().getVorname() + " " +
|
|
mv.getVertragspartner().getNachname() + "\n" +
|
|
"\tWohnung: " + mv.getWohnung().getStrasse() + " " +
|
|
mv.getWohnung().getHausnummer() + ", " + mv.getWohnung().getPlz() + " " +
|
|
mv.getWohnung().getOrt() + "\n" +
|
|
"\tMietbeginn: " + Helper.dateToString(mv.getMietbeginn()) + ", Dauer: " +
|
|
mv.getDauer() + " Monate\n" +
|
|
"\tMietpreis: " + mv.getWohnung().getMietpreis() + " Euro, Nebenkosten: " +
|
|
mv.getNebenkosten() + " Euro\n");
|
|
}
|
|
|
|
System.out.println("");
|
|
|
|
//Kaufverträge anzeigen
|
|
System.out.println("Kaufverträge\n-----------------");
|
|
Set<Kaufvertrag> kvs = service.getAllKaufvertraegeForMakler(verwalter);
|
|
for (Kaufvertrag kv : kvs) {
|
|
System.out.println("Kaufvertrag " + kv.getVertragsnummer() + "\n" +
|
|
"\tGeschlossen am " + Helper.dateToString(kv.getDatum()) + " in " + kv.getOrt() + "\n" +
|
|
"\tMieter: " + kv.getVertragspartner().getVorname() + " " +
|
|
kv.getVertragspartner().getNachname() + "\n" +
|
|
"\tHaus: " + kv.getHaus().getStrasse() + " " + kv.getHaus().getHausnummer() +
|
|
", " + kv.getHaus().getPlz() + " " + kv.getHaus().getOrt() + "\n" +
|
|
"\tKaufpreis: " + kv.getHaus().getKaufpreis() + " Euro\n" +
|
|
"\tRaten: " + kv.getAnzahlRaten() + ", Ratenzins: " + kv.getRatenzins() + "%\n");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Menü zum anlegen eines neuen Mietvertrags
|
|
*/
|
|
private void newMietvertrag() {
|
|
//Alle Wohnungen des Maklers finden
|
|
Set<Wohnung> wohnungen = service.getAllWohnungenForMakler(verwalter);
|
|
|
|
//Auswahlmenü für die Wohnungen
|
|
AppartmentSelectionMenu asm = new AppartmentSelectionMenu("Wohnung für Vertrag auswählen", wohnungen);
|
|
int wid = asm.show();
|
|
|
|
//Falls kein Abbruch: Auswahl der Person
|
|
if(wid != AppartmentSelectionMenu.BACK) {
|
|
//Alle Personen laden
|
|
Set<Person> personen = service.getAllPersons();
|
|
|
|
//Menü zur Auswahl der Person
|
|
PersonSelectionMenu psm = new PersonSelectionMenu("Person für Vertrag auswählen", personen);
|
|
int pid = psm.show();
|
|
|
|
//Falls kein Abbruch: Vertragsdaten abfragen und Vertrag anlegen
|
|
if(pid != PersonSelectionMenu.BACK) {
|
|
Mietvertrag m = new Mietvertrag();
|
|
|
|
m.setWohnung(service.getWohnungById(wid));
|
|
m.setVertragspartner(service.getPersonById(pid));
|
|
m.setDatum(FormUtil.readDate("Datum"));
|
|
m.setOrt(FormUtil.readString("Ort"));
|
|
m.setMietbeginn(FormUtil.readDate("Mietbeginn"));
|
|
m.setDauer(FormUtil.readInt("Dauer in Monaten"));
|
|
m.setNebenkosten(FormUtil.readInt("Nebenkosten"));
|
|
|
|
service.addMietvertrag(m);
|
|
|
|
System.out.println("Mietvertrag mit der Nummer "+m.getVertragsnummer()+" wurde erzeugt.");
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Menü zum anlegen eines neuen Kaufvertrags
|
|
*/
|
|
public void newKaufvertrag() {
|
|
//Alle Häuser des Maklers finden
|
|
Set<Haus> haeuser = service.getAllHaeuserForMakler(verwalter);
|
|
|
|
//Auswahlmenü für das Haus
|
|
HouseSelectionMenu asm = new HouseSelectionMenu("Haus für Vertrag auswählen", haeuser);
|
|
int hid = asm.show();
|
|
|
|
//Falls kein Abbruch: Auswahl der Person
|
|
if(hid != AppartmentSelectionMenu.BACK) {
|
|
//Alle Personen laden
|
|
Set<Person> personen = service.getAllPersons();
|
|
|
|
//Menü zur Auswahl der Person
|
|
PersonSelectionMenu psm = new PersonSelectionMenu("Person für Vertrag auswählen", personen);
|
|
int pid = psm.show();
|
|
|
|
//Falls kein Abbruch: Vertragsdaten abfragen und Vertrag anlegen
|
|
if(pid != PersonSelectionMenu.BACK) {
|
|
Kaufvertrag k = new Kaufvertrag();
|
|
|
|
k.setHaus(service.getHausById(hid));
|
|
k.setVertragspartner(service.getPersonById(pid));
|
|
k.setDatum(FormUtil.readDate("Datum"));
|
|
k.setOrt(FormUtil.readString("Ort"));
|
|
k.setAnzahlRaten(FormUtil.readInt("Anzahl Raten"));
|
|
k.setRatenzins(FormUtil.readInt("Ratenzins"));
|
|
|
|
service.addKaufvertrag(k);
|
|
|
|
System.out.println("Kaufvertrag mit der Vertragsnummer "+k.getVertragsnummer()+" wurde erzeugt.");
|
|
}
|
|
}
|
|
}
|
|
}
|