예제 #1
0
 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);
 }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
파일: Program.cs 프로젝트: GreenHair/csharp
        // 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();
        }