public Einkaufszettel.zeile wareEntnehmenEinzel(Discounter_ConsoleApplication.Verkauf raum, int i) { Einkaufszettel.zeile temp; if (raum.regale[einkaufsliste.liste[i].artikel].aktuellerInhalt >= einkaufsliste.liste[i].anzahl) { // genug im Regal raum.regale[einkaufsliste.liste[i].artikel].aktuellerInhalt -= einkaufsliste.liste[i].anzahl; // einkaufswagen.liste.Add = // wunsch temp = einkaufsliste.liste[i]; } else { // zu wenig im Regal, alles was noch da ist temp = new Einkaufszettel.zeile(einkaufsliste.liste[i].artikel, raum.regale[einkaufsliste.liste[i].artikel].aktuellerInhalt); raum.regale[einkaufsliste.liste[i].artikel].aktuellerInhalt = 0; } raum.regale[einkaufsliste.liste[i].artikel].nachfuellen = raum.regale[einkaufsliste.liste[i].artikel].aktuellerInhalt <= raum.regale[einkaufsliste.liste[i].artikel].mindestbestand; if (raum.regale[einkaufsliste.liste[i].artikel].nachfuellen) { raum.regale[einkaufsliste.liste[i].artikel].lbl.Background = Brushes.Red; raum.leereRegale++; } raum.regale[einkaufsliste.liste[i].artikel].aktuellerWarenwert = raum.regale[einkaufsliste.liste[i].artikel].aktuellerInhalt * raum.regale[einkaufsliste.liste[i].artikel].artikelpreis; return(temp); }
public void umlagern(WasWieOft_Liste al, ref Lager l, ref Verkauf v) { if (Program.TESTMODE) { ConsoleColor tmp = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine("Lagerist.umlagern( Auftragsliste ) startet"); Console.WriteLine("Es liegen Anforderungen für {0} Artikel vor", al.liste.Count); if (Program.STEPWISE) { Console.WriteLine("Weiter mit ┘"); Console.ReadLine(); } Console.ForegroundColor = tmp; } WasWieOft_Liste rollwagen = new WasWieOft_Liste("Rollwagen"); double lastenangefordert = 0; double lastenumgefuellt = 0; for (int i = 0; i < al.liste.Count; i++) { lastenangefordert += al.liste[i].anzahl * Warenkatalog.warenkatalog[al.liste[i].artikel].art_volumen; // // aus dem Lagerregal entnehmen / genug, sonst was da ist if (l.regale[al.liste[i].artikel].aktuellerInhalt >= al.liste[i].anzahl) { // genug im Regal if (Program.TESTMODE) { ConsoleColor tmp = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine("Im Lager war genug von Artikel {0} da", al.liste[i].artikel); if (Program.STEPWISE) { Console.WriteLine("Weiter mit ┘"); Console.ReadLine(); } Console.ForegroundColor = tmp; } l.regale[al.liste[i].artikel].aktuellerInhalt -= al.liste[i].anzahl; // einkaufswagen.liste.Add = // wunsch // erhaltene Menge in den Rollwagen // Wunschmenge rausnehmen rollwagen.liste.Add(al.liste[i]); // und in den Rollwagen legen } else { // zu wenig im Lageregal, alles was noch da ist in den Rollwagen legen, Regal ist dann leer if (Program.TESTMODE) { ConsoleColor tmp = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine("zu wenig da, Regal {0} wird leer gemacht", al.liste[i].artikel); Console.ForegroundColor = tmp; } rollwagen.liste.Add(new WasWieOft_Liste.zeile(i, l.regale[al.liste[i].artikel].aktuellerInhalt)); l.regale[al.liste[i].artikel].aktuellerInhalt = 0; } } for (int i = 0; i < rollwagen.liste.Count; i++) { lastenumgefuellt += rollwagen.liste[i].anzahl * Warenkatalog.warenkatalog[rollwagen.liste[i].artikel].art_volumen; l.regale[rollwagen.liste[i].artikel].aktuellerInhalt -= rollwagen.liste[i].anzahl; v.regale[rollwagen.liste[i].artikel].aktuellerInhalt += rollwagen.liste[i].anzahl; } if (Program.TESTMODE) { ConsoleColor tmp = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine("Ich habe {0} cbm von geforderten {1} umgeladen", lastenumgefuellt, lastenangefordert); if (Program.STEPWISE) { Console.WriteLine("Weiter mit ┘"); Console.ReadLine(); } Console.ForegroundColor = tmp; } }
static void Main(string[] args) { Warenkatalog wk = new Warenkatalog(); Discounter_ConsoleApplication.Kasse kasse = new Discounter_ConsoleApplication.Kasse(ref wk); Verkauf v = new Verkauf("Im2.OG_Hohe Strasse", 400.0, ref Warenkatalog.warenkatalog); v.anzeigen(v.regale); // der ganze Raum Console.WriteLine("Wert aller Regale bei der Eröffnung: {0} ", kasse.momentanWert(v)); //gesucht werden alle Regal-IDs, wo die Regale mehr Wert sind als 500 Euro var mehrAls500Wert = from inhalt in v.regale where inhalt.aktuellerWarenwert > 500 select inhalt.regal_id; foreach (var item in mehrAls500Wert) { Console.WriteLine("Das Regal {0} ist mehr als 500 Euro wert ", item); } if (Program.TESTMODE) { Console.ReadLine(); } Lager l = new Lager("gemeinsamer Keller in Ossendorf", 240.0, ref Warenkatalog.warenkatalog); // l.anzeigen(l.regale); ReadLine(); Discounter_ConsoleApplication.Kunde k = new Discounter_ConsoleApplication.Kunde(); k.einkaufswagen = k.wareEntnehmen(v); v.anzeigen(v.regale); k.bezahlen(ref kasse); // wird polymorph weitergegeben an kasse.kunde_abrechnen(); // kunde aus dem Speicher entfernen // k = null; GC.Collect(); ReadLine(); v.anzeigen(v.regale); /* * Console.WriteLine("Wert aller Regale nach den Einkäufen: {0} ", kasse.momentanWert(v)); * if (Program.TESTMODE) * { Console.ReadLine(); } */ /* * Discounter_ConsoleApplication.Personal p1 = new Discounter_ConsoleApplication.Personal(); * p1.einkaufswagen = p1.wareEntnehmen(v); * v.anzeigen(v.regale); * p1.bezahlen(ref kasse); // wird polymorph weitergegeben an kasse.kunde_abrechnen(); * ReadLine(); * Discounter_ConsoleApplication.Personal p2 = new Discounter_ConsoleApplication.Personal(); * p2.einkaufswagen = p2.wareEntnehmen(v); * v.anzeigen(v.regale); * p2.bezahlen(ref kasse); // wird polymorph weitergegeben an kasse.kunde_abrechnen(); * ReadLine(); * * v.anzeigen(v.regale); */ // Console.WriteLine("Der Auftrag an den Lageristen umfasst :"); kasse.fehlbestand_feststellen(v).anzeigen(); if (Program.TESTMODE) { ConsoleColor tmp = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine("Instanzierung des Lageristen "); if (Program.STEPWISE) { Console.WriteLine("Weiter mit ┘"); Console.ReadLine(); } Console.ForegroundColor = tmp; } Lagerist laggy = new Lagerist(); laggy.umlagern(kasse.fehlbestand_feststellen(v), ref l, ref v); // filialleiter.bestellen(kasse.fehlbestand_feststellen(l),ref lief,ref l); if (Program.STEPWISE) { Console.WriteLine("Weiter mit ┘"); Console.ReadLine(); } v.anzeigen(v.regale); ReadLine(); }
// Warenkatalog laden per static void Main(string[] args) { Warenkatalog wk = new Warenkatalog(); DiscounterActor_ConsoleApplication.Kasse kasse = new DiscounterActor_ConsoleApplication.Kasse(ref wk); Verkauf v = new Verkauf("Im2.OG_Hohe Strasse", 400.0, ref Warenkatalog.warenkatalog); v.anzeigen(v.regale); // der ganze Raum ReadLine(); Lager l = new Lager("gemeinsamer Keller in Ossendorf", 270.0, ref Warenkatalog.warenkatalog); l.anzeigen(l.regale); WriteLine("{0}\t{1}", l.regale[810].regal_id, l.regale[810].aktuellerInhalt); DiscounterActor_ConsoleApplication.Lagerist lagermensch = new DiscounterActor_ConsoleApplication.Lagerist(); ReadLine(); /* DiscounterActor_ConsoleApplication.Kunde k = new DiscounterActor_ConsoleApplication.Kunde(); * k.einkaufswagen=k.wareEntnehmen(v); * v.anzeigen(v.regale); * k.bezahlen(ref kasse); // wird polymorph weitergegeben an kasse.kunde_abrechnen(); * // Kunde aus dem Speicher entfernen * // k = null; * // GC.Collect(); * ReadLine(); * * v.anzeigen(v.regale); * //kasse.fehlbestand_anzeigen(); * //ReadLine(); * * DiscounterActor_ConsoleApplication.Personal p = new DiscounterActor_ConsoleApplication.Personal(); * p.einkaufswagen = p.wareEntnehmen(v); * v.anzeigen(v.regale); * p.bezahlen(ref kasse); // wird polymorph weitergegeben an kasse.kunde_abrechnen(); * ReadLine(); * * v.anzeigen(v.regale); * * * DiscounterActor_ConsoleApplication.Kunde k2 = new DiscounterActor_ConsoleApplication.Kunde(); * k2.einkaufswagen = k2.wareEntnehmen(v,k2.einkaufsliste); * v.anzeigen(v.regale); * k2.bezahlen(ref kasse); * ReadLine(); * v.anzeigen(v.regale); * * //kasse.fehlbestand_anzeigen(v); * if(v.leereRegale >= 5) * { * kasse.nachfuellen_anfordern(ref v, ref l, lagermensch); * } * * // WriteLine("{0}\t{1}", v.regale[440].aktuellerInhalt, v.regale[440].nachfuellen); * ReadLine(); * v.anzeigen(v.regale); * l.anzeigen(l.regale); * // Console.WriteLine(); * DiscounterActor_ConsoleApplication.Kunde k3 = new DiscounterActor_ConsoleApplication.Kunde(); * k3.einkaufswagen = k3.wareEntnehmen(v, k3.einkaufsliste); * v.anzeigen(v.regale); * k3.bezahlen(ref kasse); * ReadLine(); * kasse.nachfuellen_anfordern(ref v,ref l, lagermensch); * v.anzeigen(v.regale); * l.anzeigen(l.regale); * ReadLine();*/ DiscounterActor_ConsoleApplication.Kunde[] menge = new DiscounterActor_ConsoleApplication.Kunde[20]; for (int i = 0; i < 20; i++) { menge[i] = new DiscounterActor_ConsoleApplication.Kunde(); menge[i].einkaufswagen = menge[i].wareEntnehmen(v); menge[i].bezahlen(ref kasse); if (v.leereRegale >= lagermensch.tragkraft) { kasse.nachfuellen_anfordern(ref v, ref l, lagermensch); } System.Threading.Thread.Sleep(3000); } v.anzeigen(v.regale); l.anzeigen(l.regale); ReadLine(); }