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}"); } } }
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); }