public LeaseContractViewer(ApplicationContext dbAp, MWViewContract tmpContract)
 {
     InitializeComponent();
     dataBaseAC       = dbAp;
     selectedContract = tmpContract;
     FillData();
 }
示例#2
0
        /// <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();
        }
示例#3
0
        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;
        }
示例#4
0
        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();
            }
        }
示例#5
0
        /// <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();
        }
示例#7
0
        public ReturnOrder(ApplicationContext dbAp, MWViewContract tmpOrder)
        {
            InitializeComponent();


            dataBaseAC    = dbAp;
            selectedOrder = tmpOrder;
            ///Disable all product buttons


            GetProducts();
        }
示例#8
0
        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();
            }
        }
示例#9
0
        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);
        }
示例#10
0
        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);
        }
示例#11
0
        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();
            }
        }
示例#12
0
        /// 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();
        }