Beispiel #1
0
        public async void DeleteBill(int id)
        {
            await BillService.DeleteAsync(id);

            var item = Bills.Single(b => b.Id == id);

            Bills.Remove(item);
            StateHasChanged();
        }
        private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (!BillMenuOpened)
            {
                ListBox list = (ListBox)sender;

                if (list.SelectedIndex > -1)
                {
                    BillMenuOpened = true;
                    DBConnection.Bill BillItem = (DBConnection.Bill)list.SelectedItem;
                    Bill_Overview     BO       = new Bill_Overview(_DBConnection, BillItem);
                    BO.Owner = this;
                    BO.ShowDialog();

                    switch (BO.HasChanges)
                    {
                    case BillCloseOption.Cancel:
                        break;

                    case BillCloseOption.Delete:
                        Bills.Remove(BillItem);
                        _DBConnection.DB_RemoveBill(BillItem.Id);
                        RefreshBillListItems();
                        CalculateReviews();
                        _DBConnection.RefreshTemplates();
                        break;

                    case BillCloseOption.Save:

                        _DBConnection.DB_UpdateBill(BO.Bill);

                        for (int i = 0; i < Bills.Count; i++)
                        {
                            if (Bills[i] == BillItem)
                            {
                                Bills[i] = BO.Bill;
                                break;
                            }
                        }
                        RefreshBillListItems();
                        CalculateReviews();
                        _DBConnection.RefreshTemplates();
                        break;
                    }


                    list.SelectedIndex = -1;
                }
            }
            else
            {
                BillMenuOpened = !BillMenuOpened;
            }
        }
        public async void DeleteBill()
        {
            var response = await Dal.DeleteAsync(RestUrl + _selectedBill.IdBill);

            if (response.IsSuccessStatusCode)
            {
                Revenue -= _selectedBill.Car.Price - _selectedBill.Discount;
                RaisePropertyChanged("Revenue");
                Bills.Remove(_selectedBill);
                RaisePropertyChanged("Calculate");
                RaisePropertyChanged("DeleteBill");

                SelectedBill = new Bill();
            }
        }
Beispiel #4
0
        public void DeleteBill(int billId)
        {
            var billingItems = BillingItems.Where(b => b.BillId == billId).ToList();

            if (!billingItems.Any())
            {
                BillingItems.RemoveRange(billingItems);
            }

            var bill = Bills.Single(b => b.BillId == billId);

            if (bill == null)
            {
                throw new Exception($"Not able find the bill for billId {billId}");
            }

            Bills.Remove(bill);

            SaveChanges();
        }
Beispiel #5
0
        /// <summary>
        /// Withdraw an amount of money from the register.
        /// </summary>
        /// <param name="amount">Amount of money to be withdrawn.</param>
        /// <returns>Response message for display to user.</returns>
        public Response Withdraw(int amount)
        {
            Response response = new Response();

            if (amount > 0)
            {
                // amount = 100 * (amount / 100) + 50 * (amount / 50) + 20 * (amount / 20) + 10 * (amount / 10) + 5 * (amount / 5) + 1 * (amount / 1)

                List <BillBase> sieve = Bills.OrderByDescending(item => item.Value).ToList();

                if (sieve.Count == 0)
                {
                    response.Message += "\n";
                    response.Message += "Failure: Insufficient Funds";
                    response.Message += "\n";
                    return(response);
                }

                int remainingAmount = amount;

                List <BillBase> withdraw = new List <BillBase>();

                while (remainingAmount != 0)
                {
                    BillBase biggestBill = sieve.FirstOrDefault();

                    if (biggestBill != null)
                    {
                        if (remainingAmount - biggestBill.Value < 0)
                        {
                            sieve.RemoveAll(item => item.Code == biggestBill.Code);
                        }
                        else
                        {
                            withdraw.Add(biggestBill);
                            sieve.Remove(biggestBill);

                            remainingAmount -= biggestBill.Value;
                        }
                    }
                    else
                    {
                        response.Message += "\n";
                        response.Message += "Failure: Insufficient Funds";
                        response.Message += "\n";
                        return(response);
                    }
                }

                if (remainingAmount == 0)
                {
                    response.Message += "\n";
                    response.Message += "Success: Dispensed $" + Convert.ToString(amount);
                    response.Message += "\n";

                    foreach (BillBase bill in withdraw)
                    {
                        Bills.Remove(bill);
                    }

                    response.Message += FullInventory().Message;
                }
            }

            return(response);
        }