#include"JWI_Klassen_Verwaltung.h"
#include"JWI_Klassen_Fenster.cpp"



//	ausgelagerte Operationen der Klasse Verwaltung


void Verwaltung::WareneingangBearbeiten()
{
	// Lagerbestand korrigieren
	
	class Produkt prod;	//	prod ist das Produkt zu dem eine neue Menge eingetroffe ist
	class EingabeFenster<int> E;
	class Bestellposten bestp;
	int produktnummer;
	int menge;
	char* Text;	//	Text der im Menü ausgegeben werden soll

	Text="Bitte Produktnummer eingeben, zu der Waren eingetroffen sind:";
	produktnummer = E.HoleEingabe(Text);

	Text="Bitte eingetroffene Menge eingeben:";
	menge = E.HoleEingabe(Text);	//	menge ist die Mengenzunahme von prod

	prod = SucheProdukt(produktnummer);
	prod.AktuellenBestandKorregieren(menge);


	//	nun auslieferbare Bestellposten in die Lieferkartei übertragen

	warte_kartei.SetzeAufAnfang();
	for (int i=1; i<= warte_kartei.Laenge(); i++)
	{
		bestp = warte_kartei.HoleInhalt();
		prod = SucheProdukt(bestp.HoleProduktNr());

		if (bestp.HoleMenge()<prod.HoleAktuellenBestand())
		//	Bestellposten ist lieferbar
		{
			//	korregiert den aktuellen Bestand des Porduktes
			prod.AktuellenBestandKorregieren(-bestp.HoleMenge());
			//	überträgt den Bestllposten in die Lieferkartei
			liefer_kartei.ElementHinzufuegen(bestp);	
			//	Löscht den Bestllposten in der Warteikartei; danach steht der 
			//	aktuelle Zeiger auf dem vorhergehenden Element (vgl. Klasse Liste)
		warte_kartei.ElementLoeschen();	
		};

		//	da auf jeden Fall der aktuelle Zeiger auf dem Element steht, 
		//	das VOR dem nächsten zu bearbeitende Element steht:
		warte_kartei.NachfolgendesElement();
	};

	//	damit ist eine Nachbestellung abschließend bearbeitet!!!
}
