#include"JWI_Klassen_Verwaltung.h" // ausgelagerte Operationen der Klasse Verwaltung void Verwaltung::FehlbestaendeNachbestellen(void) { class Nachbestellung nachbest; class Produkt prod; // es wird die Produkt-Liste durchgegangen, und die notwendigen Mengen nachzubestellt produkte.SetzeAufAnfang(); // liefert das erste Element der Liste for (int i=1; i <= produkte.Laenge(); i++) { prod = produkte.HoleInhalt(); // überprüfen, ob schon eine Nachbestellung an den Lieferanten existiert if (prod.BestellmengeErmitteln() > 0) // Nachbestellung notwendig { nachbest = SucheNachbestellungLieferantenNr(prod.HoleLieferantenNr()); // überprüfen, ob schon eine Nahcbestellung an diesen Lieferanten existiert if (nachbest.HoleBestellungsNr() != 0) // Nachbestellung existiert { class Bestellposten neuerbestp((nachbest.HoleBestellpostenListe().Laenge()+1), nachbest.HoleBestellungsNr(), // erzeugt einen neuen Bestellposten mit den notwendigen Daten // die laufende Nummer des Bestellpostens wird über die Anzahl der schon bestehenden Bestellposten errechnet prod.HoleProduktNr(), prod.BestellmengeErmitteln()); // hängt den Bestellposten an die Nachbestellung an nachbest.PostenAnhaengen(neuerbestp); } else // Nachbestellung existiert nicht { // erzeugt eine neue Nachbestellung class Nachbestellung neuenachbest(zaeler_bnr, prod.HoleLieferantenNr()); // nimmt die neue Nachbestellung in die Liste der Nachbestellungen auf nachbestellungen.ElementHinzufuegen(neuenachbest); // jede Nachbestllung ist durch ihre Erstellung bearbeitet neuenachbest.SetzeBearbeitet(); zaeler_bnr++; class Bestellposten neuerbestp((neuenachbest.HoleBestellpostenListe().Laenge()+1), zaeler_bnr, prod.HoleProduktNr(), prod.BestellmengeErmitteln()); // erzeugt einen neuen Bestellposten // die laufende Nummer des Bestellpostens wird über die Anzahl der schon bestehenden Bestellposten errechnet neuenachbest.PostenAnhaengen(neuerbestp); }; }; produkte.NachfolgendesElement(); // setzt den Listenzeiger ein Element weiter }; // Die Liste der Nachbestellungen muß nun noch auf irgend einem Wege // an die Lieferanten übermittelt werden; Bsp: nachbestellungen.SetzeAufAnfang(); for(i=1; i <= nachbestellungen.Laenge(); i++) { nachbest = nachbestellungen.HoleInhalt(); nachbest.Drucken(); }; }