コード例 #1
0
ファイル: CreateBill.cs プロジェクト: jan-kelemen/FER
        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;
        }
コード例 #2
0
ファイル: CreateOrEditBill.cs プロジェクト: jan-kelemen/FER
        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);
        }
コード例 #3
0
ファイル: CreateOrEditBill.cs プロジェクト: jan-kelemen/FER
        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);
        }
コード例 #4
0
ファイル: EditBill.cs プロジェクト: jan-kelemen/FER
        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);
        }
コード例 #5
0
ファイル: EditBill.cs プロジェクト: jan-kelemen/FER
 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")}");
     }
 }
コード例 #6
0
ファイル: EditBill.cs プロジェクト: jan-kelemen/FER
 private void deleteBill(Bill bill)
 {
     BillRepository.Instance.Delete(bill);
 }
コード例 #7
0
ファイル: CreateOrEditBill.cs プロジェクト: jan-kelemen/FER
 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();
 }
コード例 #8
0
ファイル: CreateOrEditBill.cs プロジェクト: jan-kelemen/FER
 protected void writeBill(Bill bill)
 {
     ReadTopValue();
     printBill(bill);
     Console.WriteLine("...");
     ScrollToTop();
     Console.ReadLine();
 }