public static void SkrivUtKvittoTillFil(Kvitto kvitto)
 {
     if (!File.Exists(kvitto.Path))
     {
         using (StreamWriter sw = File.CreateText(kvitto.Path))
         {
         }
     }
     using (StreamWriter sw = File.AppendText(kvitto.Path))
     {
         sw.WriteLine($"#{kvitto.Nummer}¨    {kvitto.Datum.Hour}:{kvitto.Datum.Minute}:{kvitto.Datum.Second}");
         foreach (var p in kvitto.Produkter)
         {
             if (p.Rea)
             {
                 sw.WriteLine($"{p.Namn} {p.Antal} {p.HämtaPrisTyp()} * {p.ReaPris} = {p.TotalPris}");
             }
             else
             {
                 sw.WriteLine($"{p.Namn} {p.Antal} {p.HämtaPrisTyp()} * {p.OrginalPris} = {p.TotalPris}");
             }
         }
         if (kvitto.Rabatt)
         {
             sw.WriteLine($"Items total: {kvitto.TotalPris}\nRabatt: {kvitto.RabattPris - kvitto.TotalPris}\nTotal:¨{kvitto.RabattPris}");
         }
         else
         {
             sw.WriteLine($"Total:¨{kvitto.TotalPris}");
         }
     }
 }
Exemple #2
0
        static void Main(string[] args)
        {
            var lager = new Lager();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("KASSA\n1. Ny kund\n2. Adminverktyg\n3. Avsluta");
                Console.Write("Menyval: ");
                string huvudMenyVal = Console.ReadLine();
                if (huvudMenyVal == "1")
                {
                    var kvitto = new Kvitto();
                    while (true)
                    {
                        Console.Clear();
                        kvitto.VisaKvitto();
                        Kvitto.VisaKommandon();
                        string kommando     = Console.ReadLine();
                        var    kommandoKoll = new KommandoKoll(kommando, lager, kvitto);
                        Console.WriteLine($"{kommandoKoll.Meddelande}");
                        if (kommandoKoll.Pay)
                        {
                            Thread.Sleep(2000);
                            break;
                        }
                        else if (kommandoKoll.Meddelande != null)
                        {
                            Thread.Sleep(2000);
                        }
                    }
                }
                else if (huvudMenyVal == "2")
                {
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine($"ADMINVERKTYG\n1. Skapa produkt\n2. Redigera produkt\n3. Rea-sätt produkt\n4. Sök kvitto\n5. Tillbaka");
                        Console.Write("Menyval: ");
                        string adminMenyVal = Console.ReadLine();
                        if (adminMenyVal == "1")
                        {
                            Adminverktyg.SkapaNyLagerProdukt(lager);
                        }
                        else if (adminMenyVal == "2")
                        {
                            Adminverktyg.RedigeraLagerProdukt(lager);
                        }
                        else if (adminMenyVal == "3")
                        {
                            Adminverktyg.ReaSättLagerProdukt(lager);
                        }
                        else if (adminMenyVal == "4")
                        {
                            Adminverktyg.SökKvitto();
                        }
                        else if (adminMenyVal == "5")
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine("Ogiltig input!");
                            Thread.Sleep(2000);
                        }
                    }
                }
                else if (huvudMenyVal == "3")
                {
                    Console.WriteLine("Avslutar...");
                    Thread.Sleep(2000);
                    break;
                }
                else
                {
                    Console.WriteLine("Ogiltig input!");
                    Thread.Sleep(2000);
                }
            }
        }
        private void KommandoStringParse(string kommandoInput, Lager lager, Kvitto kvitto) //Validerar kommando input och kollar om produkt id'n existerar i lager
        {
            string[] splittad = kommandoInput.Split(' ');
            int      produktid;
            int      antal;

            if (splittad.Length == 2 && int.TryParse(splittad[0], out produktid) && int.TryParse(splittad[1], out antal))
            {
                if (!lager.ProduktFinnsILager(produktid))
                {
                    Meddelande = "Produkten existerar ej!";
                }
                else if (antal < 1)
                {
                    Meddelande = "Antal måste vara 1 eller mer!";
                }
                else
                {
                    var nyProdukt = new Produkt(lager.HämtaLagerProdukt(produktid));
                    if (!kvitto.ProduktFinnsIKvitto(nyProdukt.ID) && !nyProdukt.AntalBlirÖverMax(antal))
                    {
                        nyProdukt.Antal = antal;
                        kvitto.Produkter.Add(new Produkt(nyProdukt));
                    }
                    else if (kvitto.ProduktFinnsIKvitto(nyProdukt.ID))
                    {
                        var kvittoProdukt = kvitto.HämtaProduktIKvitto(nyProdukt.ID);
                        if (!kvittoProdukt.AntalBlirÖverMax(antal))
                        {
                            kvittoProdukt.Antal += antal;
                        }
                        else
                        {
                            Meddelande          = $"Max {kvittoProdukt.MaxAntal} {kvittoProdukt.HämtaPrisTyp()} per kund! Kunden får ej köpa {kvittoProdukt.Antal + antal} {kvittoProdukt.HämtaPrisTyp()}";
                            kvittoProdukt.Antal = kvittoProdukt.MaxAntal;
                        }
                    }
                    else
                    {
                        Meddelande      = $"Max {nyProdukt.MaxAntal} {nyProdukt.HämtaPrisTyp()} per kund!  Kunden får ej köpa {nyProdukt.Antal + antal} {nyProdukt.HämtaPrisTyp()}";
                        nyProdukt.Antal = nyProdukt.MaxAntal;
                        kvitto.Produkter.Add(new Produkt(nyProdukt));
                    }
                }
            }
            else if (splittad.Length == 2 && splittad[0] == "RETURN" && int.TryParse(splittad[1], out produktid))
            {
                if (!kvitto.ProduktFinnsIKvitto(produktid))
                {
                    Meddelande = "Produkt finns ej i kvitto";
                }
                else
                {
                    var kvittoProdukt = kvitto.HämtaProduktIKvitto(produktid);
                    Meddelande = $"Tar bort produkt med id: {produktid}";
                    kvitto.TaBortProdukt(kvittoProdukt);
                }
            }
            else if (kommandoInput == "PAY")
            {
                if (kvitto.Produkter.Count < 1)
                {
                    Meddelande = "Lägg till produkter först";
                }
                else
                {
                    Pay = true;
                    IOFunktioner.SkrivUtKvittoTillFil(kvitto);
                    Meddelande = "Skriver ut kvitto...";
                }
            }
            else
            {
                Meddelande = "Ogiltigt kommando!";
            }
        }
 public KommandoKoll(string kommandoInput, Lager lager, Kvitto kvitto)
 {
     KommandoStringParse(kommandoInput, lager, kvitto);
 }