#include"JWI_Klassen_Verwaltung.h"

//	ausgelagerte Operationen der Klasse Verwaltung



void Verwaltung::LieferscheineErstellen(void)
{
//	Erzeugen der Lieferscheine

	class Bestellposten bestp;
	class Lieferschein liefers;
	class Nachbestellung nachbest;
	
	liefer_kartei.SetzeAufAnfang();	//	liefert das erste Element der Liste
	for (int i=1; i <= liefer_kartei.Laenge(); i++)
	{
		bestp = liefer_kartei.HoleInhalt();	//	holt den aktuellen Bestellposten
		liefers = SucheLieferscheinBestellungsNr(bestp.HoleBestellungsNr());

		//	prüfen, ob lieferschein existiert
		if (liefers.HoleLieferscheinNr() != 0)
		//Lieferschein existiert
		{
			//	hängt einen Bestellposten an den Lieferschein an
			liefers.PostenAnhaengen(bestp);	
		}
		else
		{
			zaeler_lsnr++;
			//	erzeugt einen neuen Lieferschein und weist ihm die notw. Informationen zu
			class Lieferschein neuerliefers(zaeler_lsnr, 0, 
				nachbest.HoleLieferantenNr(), nachbest.HoleBestellungsNr());
			//	nimmt den neuen Lieferschein in die Liste der Lieferscheine auf	
			lieferscheine.ElementHinzufuegen(neuerliefers);	
			neuerliefers.PostenAnhaengen(bestp);	//	hängt den ersten Bestellposten an
		};

		liefer_kartei.NachfolgendesElement();
	};

//	Zuordnung der Lieferscheinen zu Lieferwagen und anschließendes Ausdrucken

	lieferscheine.SetzeAufAnfang();	//	liefert das erste Element der Liste
	for (i=1; i <= lieferscheine.Laenge(); i++)
	{
		liefers = lieferscheine.HoleInhalt();
		
		//	bestimmt die Lieferwagennummer und ordnet diese dem Lieferschein zu
		liefers.SetzeLieferwagenNr(BestimmeLieferwagenNummer(liefers));	

		liefers.LieferscheinDrucken();	//	druckt den Lieferschein aus

		lieferscheine.NachfolgendesElement();	//	setzt den Listenzeiger ein Element weiter
	};
}
