#include "JWI_Klassen_Bestellung.h"



//	ausgelagerte Operationen der Klasse Bestellung

int Bestellung::HoleBestellungsNr(void) {return bnr;}

BestellpostenListe Bestellung::HoleBestellpostenListe(void) {return postenliste;}
		
Datum Bestellung::HoleDatum(void) {return datum;}

int Bestellung::HoleBearbeitet(void) {return bearbeitet;}

void Bestellung::DatenAendern(void)
{
	//	analog zur Operation DatenAendern der Klasse Geschaeftspartner
	//	wird eine Operation implementiert, die erst in einem Menü nachfragt,
	//	welche Daten geädert werden sollen, dann über eine Bildschirmdialog die neuen Daten 
	//	abfragt und als letztes die neuen Daten zuweist, d.h. es können einzelne oder alle 
	//	Daten geändert werden

	//	Wichtig: nur das Attribut bearbeitet kann nicht verändert werden

	//	soll ein Bestellposten geändert werden, so kann dazu die Operation DatenAender der 
	//	Klasse Bestellposten benutzt werden oder es wird die Liste der Bestellposten von vorne
	//	nach hinten durchgegangen und abgfragt, ob der derzeitige Bestellposten geändert 
	//	werden soll; ist dieses der Fall, wird die neue Produktnummer und neue Menge abgefragt
	//	und unter der alten Bestellungsnummer und laufenden numer ein neuer Bestellposten
	//	erzeugt; dann wird der alte Bestellposten aus der Liste gelöscht und der neue 
	//	angehängt! Außerdem muß der alte Bestllposten in der Warte- oder Lieferkartei auf 
	//	gleichtem Wege ersetzt werden, falls er sich in einer dieser Karteien befindet

	//	am Schluß müssen noch die Wart- bzw. Lieferkartei und die Mengen der ggf.
	//	verschiedenen Produkte angepaßt werden!
}


//	Hilfsfunktion für die Operation BestellungAnnehmen bzw. FehlbestaendeNachbestellen der 
//	Klasse Verwaltung
//	hängt den übergebenen Bestellposten an die postenliste an

void Bestellung::PostenAnhaengen(Bestellposten bestp)
{
	postenliste.ElementHinzufuegen(bestp);
}



//	ausgelagerte Operationen der Klasse Kundenbestellung

int Kundenbestellung::HoleKundenNr(void) {return gnr;}

void Kundenbestellung::Neu(int bestellungsnr)
{
	//	nacheinander werden alle benötigten Informationen über eine Bildschirmdialog abgefragt 
	//	und in den zugehörigen Attributen gespeichert

	//	die Zuweisung des Datums geschieht bei der Initialisierung

	//	Zuweisung der Bestellnummer
	bnr = bestellungsnr;

	//	bearbeitet wird schon beim generieren mit dem Konstruktor auf False gesetzt
	//	und die Liste der Bestellposten wird von der Operation BestellungAnnehmern 
	//	der Klasse Verwaltung ausgefüllt
}



//	ausgelagerte Operationen der Klasse Nachbestellungen

int Nachbestellung::HoleLieferantenNr(void) {return gnr;}

void Nachbestellung::Neu(int bestellnummer)
{
	//	wird ganz analog zur Operation Neu der Klasse Kundenbestellung implementiert !!!
}

void Nachbestellung::Drucken(void)
{
	//	druckt zuerst den Kopf der Bestellung und dann die einzelnen Bestellposten durch:
	
	class Bestellposten bestp;

	postenliste.SetzeAufAnfang();
	for (int i=1; i<=postenliste.Laenge(); i++)
	{
		bestp = postenliste.HoleInhalt();

		//	drucken der Informationen des Bestellposten bestp

		postenliste.NachfolgendesElement();
	};
}
