public LeaseContractViewer(ApplicationContext dbAp, MWViewContract tmpContract) { InitializeComponent(); dataBaseAC = dbAp; selectedContract = tmpContract; FillData(); }
/// <summary> /// Remove Lease contract /// </summary> private void Button_Click_3(object sender, RoutedEventArgs e) { if (leaseContractDataGrid.SelectedItem == null) { return; } if (MessageBox.Show("Точно хотите удалить?", "Удалить?", MessageBoxButton.YesNo) == MessageBoxResult.No) { return; } MWViewContract mWViewContract = leaseContractDataGrid.SelectedItem as MWViewContract; LeaseContract leaseContract = dataBaseAC.LeaseContracts.Find(mWViewContract.OrderId); List <OrderProduct> orderProducts = dataBaseAC.OrderProducts.Where(op => op.Order_id == mWViewContract.OrderId).ToList(); foreach (OrderProduct orderProduct in orderProducts) { dataBaseAC.Products.Find(orderProduct.Product_id).Count += orderProduct.Count; } List <Payment> payments = dataBaseAC.Payments.Where(p => p.Order_id == mWViewContract.OrderId).ToList(); dataBaseAC.LeaseContracts.Remove(leaseContract); dataBaseAC.OrderProducts.RemoveRange(orderProducts); dataBaseAC.Payments.RemoveRange(payments); dataBaseAC.SaveChanges(); GetDbToDataGrid(); }
void GetDbToDataGrid() { int i = 0; viewContracts = new List <MWViewContract>(); foreach (LeaseContract contract in dataBaseAC.LeaseContracts) { i++; tempViewContract = new MWViewContract(); tempViewContract.OrderId = contract.Id; tempViewContract.RowNumber = i; tempClient = dataBaseAC.Clients.FirstOrDefault(client => client.Id == contract.Client_id); tempViewContract.FISH = (tempClient.Surname + " " + tempClient.Name); tempDateTime = UnixTimeStampToDateTime(contract.Create_datetime); tempViewContract.CreationDateTime = tempDateTime.ToShortDateString(); if (contract.Return_datetime == 0) { tempTimeSpan = DateTime.Now - tempDateTime; } else { tempTimeSpan = UnixTimeStampToDateTime(contract.Return_datetime) - tempDateTime; } tempViewContract.UsedDays = $"{tempTimeSpan.Days} " + ((contract.Used_days > 0) ? ($"(+{contract.Used_days})") : ("")); int usedDaysTotal = tempTimeSpan.Days + contract.Used_days; if (dataBaseAC.OrderProducts.Where(op => op.Order_id == contract.Id && op.Product_id == 5).FirstOrDefault() != null) { tempViewContract.BLease = dataBaseAC.OrderProducts.Where(op => op.Order_id == contract.Id && op.Product_id == 5).FirstOrDefault().Count.ToString(); } if (dataBaseAC.OrderProducts.Where(op => op.Order_id == contract.Id && op.Product_id == 6).FirstOrDefault() != null) { tempViewContract.LLease = dataBaseAC.OrderProducts.Where(op => op.Order_id == contract.Id && op.Product_id == 6).FirstOrDefault().Count.ToString(); } if (dataBaseAC.OrderProducts.Where(op => op.Order_id == contract.Id && op.Product_id == 4).FirstOrDefault() != null) { tempViewContract.Wheel = dataBaseAC.OrderProducts.Where(op => op.Order_id == contract.Id && op.Product_id == 4).FirstOrDefault().Count.ToString(); } tempViewContract.Phone = tempClient.Phone_number; tempViewContract.DeliveryPrice = contract.Delivery_amount; tempViewContract.DeliveryAddress = contract.Delivery_address; tempViewContract.PaidAmount = contract.Paid_amount; tempViewContract.Sum = contract.Paid_amount - (contract.Price_per_day * usedDaysTotal + contract.Delivery_amount); tempViewContract.IsDebtor = (tempViewContract.Sum < (-1 * Properties.Settings.Default.DebtLimit)) ? "1" : "0"; switch (contract.Return_datetime) { case 0: tempViewContract.OrderStatus = 0; break; default: tempViewContract.OrderStatus = 1; break; } viewContracts.Add(tempViewContract); } this.DataContext = viewContracts; }
private void closeOrder(MWViewContract mWViewContract) { if (mWViewContract.Sum < 0) { MessageBox.Show("Оплатите долг"); return; } if (!isReturnedAllProducts(mWViewContract)) { return; } CloseOrder closeOrder = new CloseOrder(); if (closeOrder.ShowDialog() == true) { ReturnedLeaseContract returnedLeaseContract = dataBaseAC.ReturnedLeaseContracts.Where(rl => rl.Order_id == mWViewContract.OrderId).FirstOrDefault(); ArchiveLeaseContract archiveLeaseContract = new ArchiveLeaseContract(); archiveLeaseContract.Order_id = returnedLeaseContract.Order_id; archiveLeaseContract.Client_id = returnedLeaseContract.Client_id; archiveLeaseContract.Contract_id = returnedLeaseContract.Contract_id; archiveLeaseContract.Paid_amount = returnedLeaseContract.Paid_amount; archiveLeaseContract.Price_per_day = returnedLeaseContract.Price_per_day; archiveLeaseContract.Delivery_amount = returnedLeaseContract.Delivery_amount; archiveLeaseContract.Delivery_address = returnedLeaseContract.Delivery_address; archiveLeaseContract.Used_days = returnedLeaseContract.Used_days; archiveLeaseContract.Create_datetime = returnedLeaseContract.Create_datetime; archiveLeaseContract.Return_datetime = returnedLeaseContract.Return_datetime; archiveLeaseContract.Close_datetime = closeOrder.CloseTimeSpan; dataBaseAC.ArchiveLeaseContracts.Add(archiveLeaseContract); dataBaseAC.ReturnedLeaseContracts.Remove(returnedLeaseContract); dataBaseAC.SaveChanges(); GetDbToDataGrid(); } }
/// <summary> /// Close order /// </summary> private void Button_Click_4(object sender, RoutedEventArgs e) { if (leaseContractDataGrid.SelectedItem == null) { return; } MWViewContract mWViewContract = leaseContractDataGrid.SelectedItem as MWViewContract; returnOrder(mWViewContract); }
private void Button_Click_6(object sender, RoutedEventArgs e) { if (leaseContractDataGrid.SelectedItem == null) { return; } MWViewContract mWViewContract = leaseContractDataGrid.SelectedItem as MWViewContract; LeaseContractViewer leaseContractViewer = new LeaseContractViewer(dataBaseAC, mWViewContract); leaseContractViewer.ShowDialog(); }
public ReturnOrder(ApplicationContext dbAp, MWViewContract tmpOrder) { InitializeComponent(); dataBaseAC = dbAp; selectedOrder = tmpOrder; ///Disable all product buttons GetProducts(); }
private void returnOrder(MWViewContract mWViewContract) { ReturnOrder returnOrder = new ReturnOrder(dataBaseAC, mWViewContract); if (returnOrder.ShowDialog() == true) { LeaseContract leaseContract = dataBaseAC.LeaseContracts.Find(mWViewContract.OrderId); if (mWViewContract.Sum < 0 || !returnOrder.IsAllProductReturned) { ReturnedLeaseContract returnedLeaseContract = new ReturnedLeaseContract(); returnedLeaseContract.Order_id = leaseContract.Id; returnedLeaseContract.Client_id = leaseContract.Client_id; returnedLeaseContract.Contract_id = leaseContract.Contract_id; returnedLeaseContract.Paid_amount = leaseContract.Paid_amount; returnedLeaseContract.Price_per_day = leaseContract.Price_per_day; returnedLeaseContract.Delivery_amount = leaseContract.Delivery_amount; returnedLeaseContract.Delivery_address = leaseContract.Delivery_address; returnedLeaseContract.Used_days = leaseContract.Used_days; returnedLeaseContract.Create_datetime = leaseContract.Create_datetime; returnedLeaseContract.Return_datetime = returnOrder.ReturnTimeSpan; returnedLeaseContract.Close_datetime = leaseContract.Close_datetime; dataBaseAC.ReturnedLeaseContracts.Add(returnedLeaseContract); } else { ArchiveLeaseContract archiveLeaseContract = new ArchiveLeaseContract(); archiveLeaseContract.Order_id = leaseContract.Id; archiveLeaseContract.Client_id = leaseContract.Client_id; archiveLeaseContract.Contract_id = leaseContract.Contract_id; archiveLeaseContract.Paid_amount = leaseContract.Paid_amount; archiveLeaseContract.Price_per_day = leaseContract.Price_per_day; archiveLeaseContract.Delivery_amount = leaseContract.Delivery_amount; archiveLeaseContract.Delivery_address = leaseContract.Delivery_address; archiveLeaseContract.Used_days = leaseContract.Used_days; archiveLeaseContract.Create_datetime = leaseContract.Create_datetime; archiveLeaseContract.Return_datetime = returnOrder.ReturnTimeSpan; archiveLeaseContract.Close_datetime = returnOrder.ReturnTimeSpan; dataBaseAC.ArchiveLeaseContracts.Add(archiveLeaseContract); } foreach (ReturnProduct returnProduct in returnOrder.ReturnProducts) { dataBaseAC.Products.Find(returnProduct.Product_id).Count += returnProduct.Count; } dataBaseAC.ReturnProducts.AddRange(returnOrder.ReturnProducts); dataBaseAC.LeaseContracts.Remove(leaseContract); dataBaseAC.SaveChanges(); GetDbToDataGrid(); } }
private void Button_Click_3(object sender, RoutedEventArgs e) { if (leaseContractDataGrid.SelectedItem == null) { return; } if (MessageBox.Show("Точно хотите вернут все продукты?", "Вернут?", MessageBoxButton.YesNo) == MessageBoxResult.No) { return; } MWViewContract mWViewContract = leaseContractDataGrid.SelectedItem as MWViewContract; returnOrder(mWViewContract); }
private bool isReturnedAllProducts(MWViewContract mWViewContract) { int orderId = mWViewContract.OrderId; List <OrderProduct> orderProducts = dataBaseAC.OrderProducts.Where(op => op.Order_id == orderId).ToList(); foreach (OrderProduct orderProduct in orderProducts) { if (dataBaseAC.ReturnProducts.Where(rp => rp.Order_id == orderId && rp.Product_id == orderProduct.Product_id && rp.Count == orderProduct.Count).FirstOrDefault() == null) { MessageBox.Show("Верните товар:" + dataBaseAC.Products.Find(orderProduct.Product_id).Name); return(false); } } return(true); }
private void returnOrder(MWViewContract mWViewContract) { //int orderId = dataBaseAC.ReturnedLeaseContracts.Where(rl => rl.Order_id == mWViewContract.OrderId).FirstOrDefault(); List <OrderProduct> orderProducts = dataBaseAC.OrderProducts.Where(op => op.Order_id == mWViewContract.OrderId).ToList(); foreach (OrderProduct orderProduct in orderProducts) { ReturnProduct returnProduct = new ReturnProduct(); returnProduct = dataBaseAC.ReturnProducts.Where(rp => rp.Order_id == orderProduct.Order_id && rp.Product_id == orderProduct.Product_id).FirstOrDefault(); int countDiff = orderProduct.Count - returnProduct.Count; dataBaseAC.Products.Find(orderProduct.Product_id).Count += countDiff; returnProduct.Count = orderProduct.Count; dataBaseAC.Entry(returnProduct).State = EntityState.Modified; dataBaseAC.SaveChanges(); } }
/// Make payment private void Button_Click_2(object sender, RoutedEventArgs e) { if (leaseContractDataGrid.SelectedItem == null) { return; } MWViewContract mWViewContract = leaseContractDataGrid.SelectedItem as MWViewContract; MakePayment makePayment = new MakePayment(mWViewContract.OrderId); if (makePayment.ShowDialog() == true) { Payment payment = makePayment.Payment; dataBaseAC.Payments.Add(payment); LeaseContract leaseContract = dataBaseAC.LeaseContracts.Find(mWViewContract.OrderId); leaseContract.Paid_amount += payment.Amount; dataBaseAC.Entry(leaseContract).State = EntityState.Modified; dataBaseAC.SaveChanges(); } GetDbToDataGrid(); }