public override bool Run() { Display(); var bill = new Bill(); bill.Id = BillRepository.Instance.NextId; while (true) { showHelp(); var option = 0; var test = IOUtility.ReadInt(ConsoleMessages.READ_MENU_OPTION, ref option, maxValue: 3); if (!test) { return false; } if (option == 1) { addNewItem(bill); } else if (option == 2) { writeBill(bill); } else if (option == 3) { saveBill(bill); break; } } return true; }
protected void saveBill(Bill bill) { var test = BillRepository.Instance.GetById(bill.Id); if(test == null) { BillRepository.Instance.Add(bill); } else { BillRepository.Instance.Update(bill); } writeBill(bill); }
protected void addNewItem(Bill bill) { var item = new BillItem(); new ListArticles(displayHeader: false, waitInput: false).Run(); IOUtility.PrintSeparator(); ScrollToTop(); while (true) { var id = 0; var test = IOUtility.ReadInt(ConsoleMessages.READ_ARTICLE_ID, ref id); if (!test) { return; } try { var article = ArticleRepository.Instance.GetById(id); item.Article = article; break; } catch (ArgumentException e) { Console.WriteLine("Neispravan unos: " + e.Message); } } while (true) { try { if (item.Article.Type == ArticleType.Piecewise) { var quantity = 0; var test = IOUtility.ReadInt(ConsoleMessages.READ_QUANTITY, ref quantity); if (!test) { return; } item.Quantity = quantity; } else { var quantity = .0; var test = IOUtility.ReadDouble(ConsoleMessages.READ_QUANTITY, ref quantity, minValue: 0); item.Quantity = quantity; } break; } catch (ArgumentException e) { Console.WriteLine("Neispravan unos: " + e.Message); } } bill.AddItem(item); }
private void deleteItem(Bill bill) { ReadTopValue(); Console.WriteLine("Stavke: "); printBillItems(bill); IOUtility.PrintSeparator(); ScrollToTop(); var option = 0; var test = IOUtility.ReadInt(ConsoleMessages.READ_MENU_OPTION, ref option, maxValue: bill.Items.Count); if(!test) { return; } bill.RemoveItemAt(option - 1); BillRepository.Instance.Update(bill); }
private void printBillItems(Bill bill) { for (var i = 0; i < bill.Items.Count; i++) { var item = bill.GetItemAt(i); Console.WriteLine($"\t{i + 1} - {item.ToString()} - {item.Article.Charge(item.Quantity).ToString("N2")}"); } }
private void deleteBill(Bill bill) { BillRepository.Instance.Delete(bill); }
private void printBill(Bill bill) { IOUtility.PrintSeparator(); Console.WriteLine("Datum izdavanja: " + bill.Time.ToShortDateString()); Console.WriteLine("Vrijeme izdavanja: " + bill.Time.ToShortTimeString()); IOUtility.PrintSeparator(); Console.WriteLine("Stavke: "); for (var i = 0; i < bill.NumberOfItems; i++) { var item = bill.GetItemAt(i); Console.WriteLine($"\t{i + 1} - {item.ToString()} - {item.Article.Charge(item.Quantity).ToString("N2")}"); } IOUtility.PrintSeparator(); Console.WriteLine("Ukupno: " + bill.TotalCharge().ToString("N2")); IOUtility.PrintSeparator(); }
protected void writeBill(Bill bill) { ReadTopValue(); printBill(bill); Console.WriteLine("..."); ScrollToTop(); Console.ReadLine(); }