Example #1
0
        private void OrderDecline_Clicked(object sender, RoutedEventArgs e)
        {
            //throw new NotImplementedException();
            //Отменён -> В обработке
            var button        = (Button)sender;
            var selectedOrder = (OrdersModel)button.DataContext;

            if (selectedOrder.Status != Constants.HANDLING)
            {
                return;
            }
            selectedOrder.Status = Constants.DECLINED;
            using (var entities = new RPPBAContext())
            {
                var entity = entities.Orders.FirstOrDefault(x => x.OrderId == selectedOrder.Id);
                entity.OrderStatus = Constants.DECLINED;
                entities.OrderHistory.Add(new OrderHistory()
                {
                    OrderId          = entity.OrderId,
                    AmountTransfer   = 0,
                    Comment          = "",
                    Order            = entity,
                    OrderStatus      = Constants.DECLINED,
                    StatusUpdateDate = DateTime.Now
                });
                entities.SaveChanges();
            }
        }
Example #2
0
        private void DeleteProduct_OnClick(object sender, RoutedEventArgs e)
        {
            var model = (ProductsModel)Products.SelectedItem;

            using (var entities = new RPPBAContext())
            {
                var product = entities.Products.Include("OrderBasket")
                              .Include("OrderBasket.Order")
                              .Include("OrderBasket.Product")
                              .Include("OrderBasket.Transaction").FirstOrDefault(x => x.ProductId == model.Id);
                if (product.ProductReservedQuantity > 0)
                {
                    MessageBox.Show("Товар зарезервирован!");
                    return;
                }
                foreach (var orderBasket in entities.OrderBasket)
                {
                    if (orderBasket.ProductId == product.ProductId)
                    {
                        orderBasket.Order.TotalSale -= orderBasket.Quantity * orderBasket.Product.ProductPrice;
                        entities.OrderBasket.Remove(orderBasket);
                    }
                }
                entities.Products.Remove(product);
                entities.SaveChanges();
                UpdateView();
            }
        }
Example #3
0
 private void CreateProduct_OnClick(object sender, RoutedEventArgs e)
 {
     using (var entities = new RPPBAContext())
     {
         if (CreateProduct.Content == "Сохранить")
         {
             var entity = entities.Products.FirstOrDefault(x => x.ProductId == prModel.Id);
             entity.ProductPrice              = Convert.ToInt32(ProductCost.Text);
             entity.ProductAvailableQuantity += Convert.ToInt32(ProductCreated.Text);
             entity.ProductName        = ProductName.Text;
             entity.ProductDescription = ProductDescription.Text;
             entities.SaveChanges();
         }
         else
         {
             entities.Products.Add(new Products()
             {
                 ProductName              = ProductName.Text,
                 ProductDescription       = ProductDescription.Text,
                 ProductPrice             = Convert.ToInt32(ProductCost.Text),
                 ProductAvailableQuantity = Convert.ToInt32(ProductCreated.Text),
                 ProductReservedQuantity  = 0,
                 ProductSoldQuantity      = 0
             });
             entities.SaveChanges();
         }
     }
     this.Close();
     mainForm.LoadData();
     mainForm.UpdateView();
 }
Example #4
0
        private void OrderApprove_Clicked(object sender, RoutedEventArgs e)
        {
            var button        = (Button)sender;
            var selectedOrder = (OrdersModel)button.DataContext;

            if (selectedOrder.Status != Constants.HANDLING && selectedOrder.Status != Constants.DECLINED)
            {
                return;
            }
            selectedOrder.Status = Constants.APPROVED;
            using (var entities = new RPPBAContext())
            {
                var entity = entities.Orders.FirstOrDefault(x => x.OrderId == selectedOrder.Id);
                entity.OrderStatus = Constants.APPROVED;
                entities.OrderHistory.Add(new OrderHistory()
                {
                    OrderId          = entity.OrderId,
                    AmountTransfer   = 0,
                    Comment          = "",
                    Order            = entity,
                    OrderStatus      = Constants.APPROVED,
                    StatusUpdateDate = DateTime.Now
                });
                entities.SaveChanges();
            }
        }
Example #5
0
        private void CreateOrder_OnClick(object sender, RoutedEventArgs e)
        {
            if (CreateOrder.Content == "Зарезервировать")
            {
                //Если одобрен
                //Если меньше количества оставшихся -> alert
                //Добавляется к зарезервировано, а из остатка -зарезервированные
                var model = (OrdersModel)Orders.SelectedItem;
                if (model.Status != Constants.APPROVED)
                {
                    return;
                }
                using (var entities = new RPPBAContext())
                {
                    var entity = entities.Orders.Include("OrderBasketOrder")
                                 .Include("OrderBasketOrder.Product")
                                 .Include("Organization")
                                 .Include("Address")
                                 .Include("OrderHistory")
                                 .Include("Address.City")
                                 .Include("Address.City.Country")
                                 .Include("Address.City.Country.Region").FirstOrDefault(x => x.TransactionId == model.Id);

                    foreach (var orderBasket in entity.OrderBasketOrder)
                    {
                        if (orderBasket.Product.ProductAvailableQuantity < orderBasket.Quantity)
                        {
                            var messageString = "Указанное количество " + orderBasket.Product.ProductName + " недоступно для заказа. Вы можете зарезервировать " + orderBasket.Product.ProductAvailableQuantity + " " + orderBasket.Product.ProductName + "";
                            MessageBox.Show(messageString);
                            return;
                        }
                        orderBasket.Product.ProductReservedQuantity  += orderBasket.Quantity;
                        orderBasket.Product.ProductAvailableQuantity -= orderBasket.Quantity;
                    }
                    entity.Organization.Balance.CurrentBalance += entity.TotalSale;
                    entities.OrderHistory.Add(new OrderHistory()
                    {
                        OrderId          = entity.OrderId,
                        AmountTransfer   = entity.TotalSale,
                        Comment          = "",
                        Order            = entity,
                        OrderStatus      = Constants.RESERVED,
                        StatusUpdateDate = DateTime.Now
                    });
                    entity.OrderStatus = model.Status;
                    model.Status       = Constants.RESERVED;
                    entities.SaveChanges();
                    Status.Content = "Статус: " + Constants.RESERVED;
                    LoadData();
                }
            }
            else
            {
                OrderForm orderForm = new OrderForm(this);
                orderForm.Show();
                LoadData();
            }
        }
Example #6
0
        private void Clients_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (Clients.SelectedItem == null)
            {
                return;
            }
            else
            {
                var selectedOrder = (OrganizationsModel)Clients.SelectedItem;
                ParticularClient.Visibility = Visibility.Visible;
                CreateClient.Content        = "Редактировать данные";
                DeleteClient.Visibility     = Visibility.Visible;
                ClientsName.Content         = selectedOrder.Name;
                ClientsAddress.Content      = "Адрес: " + selectedOrder.Address;
                ClientsBalance.Content      = "Баланс: " + (selectedOrder.Balance > 0 ? "+" : "") + selectedOrder.Balance;
                ClientsBank.Content         = "Счёт: " + selectedOrder.Account;
                ClientsDiscount.Content     = "Скидка: " + selectedOrder.Discount + "%";
                ClientsPhone.Content        = "Телефон: " + selectedOrder.Phone;
                ClientsContact.Content     += "Представитель: " + selectedOrder.Director;
                _organizationsOrders        = new ObservableCollection <OrdersModel>();
                using (var entities = new RPPBAContext())
                {
                    var client = entities.Organizations.Include("Orders")
                                 .Include("Orders.OrderBasketOrder.Product")
                                 .Include("Orders.Address")
                                 .Include("Orders.OrderHistory")
                                 .Include("Orders.Address.City")
                                 .Include("Orders.Address.City.Country")
                                 .Include("Orders.Address.City.Country.Region").First(x => x.OrganizationId == selectedOrder.Id);
                    int i = 1;
                    foreach (var order in client.Orders)
                    {
                        _organizationsOrders.Add(new OrdersModel()
                        {
                            Address = order.Address.City.Country.CountryName + ", " + order.Address.City.Country.Region.RegionName +
                                      ", г." + order.Address.City.CityName + ", ул." + order.Address.StreetName + ", д." + order.Address.BuildingInt,
                            Status  = order.OrderStatus,
                            Number  = i,
                            Sum     = (decimal)order.TotalSale,
                            Client  = order.Organization.OrganizationName,
                            Comment = order.Comment,
                            Date    = (DateTime)order.ShippingDate,
                            Id      = order.OrderId,
                            Phone   = order.Organization.OrganizationPhoneInt
                        });
                        i++;
                    }

                    ClientOrders.ItemsSource = _organizationsOrders;
                }
            }
        }
Example #7
0
 private void LoginButton_OnClick(object sender, RoutedEventArgs e)
 {
     using (var entities = new RPPBAContext())
     {
         if (entities.System.Any(x => x.Login.ToLower().Equals(Login.Text.ToLower()) && x.Password.Equals(Password.Password)))
         {
             MainForm mainForm = new MainForm(entities.System.First(x => x.Login.ToLower().Equals(Login.Text.ToLower())));
             mainForm.Show();
             this.Close();
         }
         else
         {
             MessageBox.Show("Ошибка входа. Проверьте введенные данные");
         }
     }
 }
Example #8
0
        private void UpdateCost_OnClick(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (openFileDialog.ShowDialog() == true)
            {
                var cost = File.ReadAllText(openFileDialog.FileName).Split("\r\n");
                foreach (var s in cost)
                {
                    var costs = s.Split(" ");
                    using (var entities = new RPPBAContext())
                    {
                        var entity = entities.Products.FirstOrDefault(x => x.ProductId == Convert.ToInt32(costs[0]));
                        entity.ProductPrice = Convert.ToInt32(costs[1]);
                        entities.SaveChanges();
                    }
                }
                LoadData();
            }
        }
Example #9
0
        private void SaveDiscounts_OnClick(object sender, RoutedEventArgs e)
        {
            using (var entities = new RPPBAContext())
            {
                foreach (var discountProgramModel in removingDiscountPrograms)
                {
                    if (discountProgramModel.Id != 0)
                    {
                        entities.DiscountPrograms.Remove(
                            entities.DiscountPrograms.First(x => x.DiscountId == discountProgramModel.Id));
                    }
                }

                foreach (var discountProgramModel in _discountPrograms)
                {
                    if (discountProgramModel.Id != 0)
                    {
                        var discountProgram = entities.DiscountPrograms.FirstOrDefault(x => x.DiscountId == discountProgramModel.Id);
                        discountProgram.Discount = discountProgramModel.Discount;
                        discountProgram.EndSum   = discountProgramModel.End;
                        discountProgram.StartSum = discountProgramModel.Begin;
                        entities.SaveChanges();
                    }
                    else
                    {
                        var discountProgram = new DiscountProgram()
                        {
                            Discount = discountProgramModel.Discount,
                            EndSum   = discountProgramModel.End,
                            StartSum = discountProgramModel.Begin
                        };
                        entities.Add(discountProgram);
                        entities.SaveChanges();
                    }
                }
                entities.SaveChanges();
                AddDiscount.Visibility = Visibility.Hidden;
                DiscountProgramsEditable.Visibility = Visibility.Hidden;
                LoadData();
            }
        }
Example #10
0
 private void OrdersBack_OnClick(object sender, RoutedEventArgs e)
 {
     using (var entities = new RPPBAContext())
     {
         var selected = entities.Orders.Include("OrderBasketOrder")
                        .Include("Organization")
                        .Include("OrderBasketOrder.Product")
                        .Include("Address")
                        .Include("OrderHistory")
                        .Include("Address.City")
                        .Include("Address.City.Country")
                        .Include("Address.City.Country.Region").FirstOrDefault(x => x.OrderId == Convert.ToInt32(OrderID.Content.ToString().Replace("Заказ №", "")));
         if (selected.OrderStatus == Constants.SHIPPED_APPROVED)
         {
             return;
         }
         if (selected.OrderStatus == Constants.RESERVED || selected.OrderStatus == Constants.PAYED)
         {
             foreach (var orderBasket in selected.OrderBasketOrder)
             {
                 orderBasket.Product.ProductReservedQuantity  -= orderBasket.Quantity;
                 orderBasket.Product.ProductAvailableQuantity += orderBasket.Quantity;
             }
         }
         selected.Organization.Balance.CurrentBalance -= selected.TotalSale;
         entities.OrderHistory.Add(new OrderHistory()
         {
             OrderId          = selected.OrderId,
             AmountTransfer   = selected.OrderStatus == Constants.RESERVED ? -selected.TotalSale : 0,
             Comment          = "",
             Order            = selected,
             OrderStatus      = Constants.SHIPPED_DECLINED,
             StatusUpdateDate = DateTime.Now
         });
         Status.Content       = "Статус: " + Constants.SHIPPED_DECLINED;
         selected.OrderStatus = Constants.SHIPPED_DECLINED;
         entities.SaveChanges();
         LoadData();
     }
 }
Example #11
0
        private void UpdateCount_OnClick(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (openFileDialog.ShowDialog() == true)
            {
                var cost = File.ReadAllText(openFileDialog.FileName).Split("\r\n");
                foreach (var s in cost)
                {
                    var costs = s.Split(" ");
                    using (var entities = new RPPBAContext())
                    {
                        var entity = entities.Products.FirstOrDefault(x => x.ProductId == Convert.ToInt32(costs[0]));
                        entity.ProductAvailableQuantity += Convert.ToInt32(costs[1]);
                        var productsModel = _products.FirstOrDefault(x => x.Id == Convert.ToInt32(costs[0]));
                        productsModel.Completed = Convert.ToInt32(costs[1]);
                        productsModel.Left     += Convert.ToInt32(costs[1]);
                        entities.SaveChanges();
                    }
                }
            }
        }
Example #12
0
        private void DeleteClient_OnClick(object sender, RoutedEventArgs e)
        {
            var model = (OrganizationsModel)Clients.SelectedItem;

            using (var entities = new RPPBAContext())
            {
                var client = entities.Organizations.Include("Balance").Include("Discounts").FirstOrDefault(x => x.OrganizationId == model.Id);
                entities.Balance.Remove(client.Balance);
                entities.Discounts.Remove(client.Discounts);
                foreach (var order in entities.Orders.Include("OrderBasketOrder")
                         .Include("Organization")
                         .Include("OrderBasketOrder.Product")
                         .Include("Address")
                         .Include("OrderHistory")
                         .Include("Address.City")
                         .Include("Address.City.Country")
                         .Include("Address.City.Country.Region").Where(x => x.OrganizationId == client.OrganizationId))
                {
                    foreach (var orderHistory in order.OrderHistory)
                    {
                        entities.OrderHistory.Remove(orderHistory);
                    }
                    foreach (var orderBasket in order.OrderBasketOrder)
                    {
                        if (order.OrderStatus == Constants.RESERVED)
                        {
                            orderBasket.Product.ProductReservedQuantity  -= orderBasket.Quantity;
                            orderBasket.Product.ProductAvailableQuantity += orderBasket.Quantity;
                        }
                        entities.OrderBasket.Remove(orderBasket);
                    }

                    entities.Orders.Remove(order);
                }
                entities.Organizations.Remove(client);
                entities.SaveChanges();
                UpdateView();
            }
        }
Example #13
0
        private void OrderProductReserve_Clicked(object sender, RoutedEventArgs e)
        {
            var button          = (Button)sender;
            var selectedProduct = (ProductsModel)button.DataContext;

            using (var entities = new RPPBAContext())
            {
                var selected = entities.Orders.Include("OrderBasketOrder")
                               .Include("Organization")
                               .Include("OrderBasketOrder.Product")
                               .Include("Address")
                               .Include("OrderHistory")
                               .Include("Address.City")
                               .Include("Address.City.Country")
                               .Include("Address.City.Country.Region").FirstOrDefault(x => x.OrderId == Convert.ToInt32(OrderID.Content.ToString().Replace("Заказ №", "")));
                if (selected.OrderStatus != Constants.RESERVED)
                {
                    return;
                }
                var selectedProductEntity = entities.Products.First(x => x.ProductId == selectedProduct.Id);
                selectedProductEntity.ProductAvailableQuantity += selected.OrderBasketOrder
                                                                  .FirstOrDefault(x => x.ProductId == selectedProductEntity.ProductId).Quantity;
                selectedProductEntity.ProductReservedQuantity -= selected.OrderBasketOrder
                                                                 .FirstOrDefault(x => x.ProductId == selectedProductEntity.ProductId).Quantity;
                selected.Organization.Balance.CurrentBalance -= selected.TotalSale;
                entities.OrderHistory.Add(new OrderHistory()
                {
                    OrderId          = selected.OrderId,
                    AmountTransfer   = -selected.TotalSale,
                    Comment          = "",
                    Order            = selected,
                    OrderStatus      = Constants.APPROVED,
                    StatusUpdateDate = DateTime.Now
                });
                selected.OrderStatus = Constants.APPROVED;
                entities.SaveChanges();
            }
        }
Example #14
0
        public void LoadData()
        {
            _orders              = new ObservableCollection <OrdersModel>();
            _products            = new ObservableCollection <ProductsModel>();
            _organizations       = new ObservableCollection <OrganizationsModel>();
            _discountPrograms    = new ObservableCollection <DiscountProgramModel>();
            _orderHistories      = new ObservableCollection <OrderHistoryModel>();
            _orderProducts       = new ObservableCollection <OrderProduct>();
            _organizationsOrders = new ObservableCollection <OrdersModel>();
            using (var entities = new RPPBAContext())
            {
                if (entities.Orders != null)
                {
                    var orders = entities.Orders
                                 .Include("OrderBasketOrder")
                                 .Include("Organization")
                                 .Include("Address")
                                 .Include("OrderHistory")
                                 .Include("Address.City")
                                 .Include("Address.City.Country")
                                 .Include("Address.City.Country.Region")
                                 .AsEnumerable().ToList();
                    int i = 1;
                    foreach (var order in orders)
                    {
                        _orders.Add(new OrdersModel()
                        {
                            Address = order.Address.City.Country.CountryName + ", " + order.Address.City.Country.Region.RegionName +
                                      ", " + order.Address.City.CityName + ", " + order.Address.StreetName + ", " + order.Address.BuildingInt,
                            Status  = order.OrderStatus,
                            Number  = i,
                            Sum     = (decimal)order.TotalSale,
                            Client  = order.Organization.OrganizationName,
                            Comment = order.Comment,
                            Date    = (DateTime)order.ShippingDate,
                            Id      = order.OrderId,
                            Phone   = order.Organization.OrganizationPhoneInt
                        });
                        i++;
                    }
                }

                if (entities.Products != null)
                {
                    var products = entities.Products.AsEnumerable().ToList();
                    int i        = 1;
                    foreach (var product in products)
                    {
                        _products.Add(new ProductsModel()
                        {
                            Id          = (int)product.ProductId,
                            Cost        = (decimal)product.ProductPrice,
                            Left        = (int)product.ProductAvailableQuantity,
                            Number      = i,
                            Reserved    = (int)product.ProductReservedQuantity,
                            Name        = product.ProductName,
                            Description = product.ProductDescription,
                            Sold        = (int)product.ProductSoldQuantity
                        });
                        i++;
                    }
                }

                if (entities.Organizations != null)
                {
                    var organizations = entities.Organizations.Include("Balance")
                                        .Include("OrganizationAddress")
                                        .Include("OrganizationAddress.City")
                                        .Include("OrganizationAddress.City.Country")
                                        .Include("OrganizationAddress.City.Country.Region")
                                        .Include("Discounts").AsEnumerable().ToList();
                    int i = 1;
                    foreach (var organization in organizations)
                    {
                        _organizations.Add(new OrganizationsModel()
                        {
                            Id      = (int)organization.OrganizationId,
                            Account = organization.OrganizationPaymentAccount,
                            Address = organization.OrganizationAddress.City.Country.CountryName + ", " + organization.OrganizationAddress.City.Country.Region.RegionName +
                                      ", " + organization.OrganizationAddress.City.CityName + ", " + organization.OrganizationAddress.StreetName + ", " + organization.OrganizationAddress.BuildingInt,
                            Balance  = (decimal)organization.Balance.CurrentBalance,
                            Director = organization.OrganizationDirectorFullname,
                            Discount = organization.Discounts.Discount.ToString(),
                            Number   = i,
                            Name     = organization.OrganizationName,
                            Phone    = organization.OrganizationPhoneInt
                        });
                        i++;
                    }
                }

                if (entities.DiscountPrograms != null)
                {
                    var discountPrograms = entities.DiscountPrograms.AsEnumerable().ToList();
                    int i = 1;
                    foreach (var discountProgram in discountPrograms)
                    {
                        _discountPrograms.Add(new DiscountProgramModel()
                        {
                            Discount = (int)discountProgram.Discount,
                            Begin    = (decimal)discountProgram.StartSum,
                            End      = (decimal)discountProgram.EndSum,
                            Id       = (int)discountProgram.DiscountId
                        });
                        i++;
                    }
                }

                Orders.ItemsSource                   = _orders;
                Products.ItemsSource                 = _products;
                Clients.ItemsSource                  = _organizations;
                DiscountPrograms.ItemsSource         = _discountPrograms;
                DiscountProgramsEditable.ItemsSource = _discountPrograms;
            }
        }
Example #15
0
        private void Status_OnChanged(object sender, SelectionChangedEventArgs e)
        {
            //throw new NotImplementedException();
            //Статус отменён - всё равно остаётся
            //Зарезервировано меняется на оплачено, и сумма заказа добавляется к балансу
            //Отгружено - баланс с минусом кол-во в зарезервировано отменяется от значения в зарезерв. Сумма продано прибавляется на это число
            //В обработке -> отклонён
            //Всё кроме отгружено и отменён
            //Если зарезервирован - добавляется в текущий остаток, а от зарезерв. вычитается
            //Оплачен- добавляется в остаток, а от резерв. вычитается
            var comboBox      = (ComboBox)sender;
            var selectedOrder = (OrdersModel)comboBox.DataContext;
            var item          = (ComboBoxItem)e.AddedItems[0];
            var value         = item.Content;

            if ((string)value == Constants.SHIPPED_DECLINED)
            {
                using (var entities = new RPPBAContext())
                {
                    var selected = entities.Orders.Include("OrderBasketOrder")
                                   .Include("Organization")
                                   .Include("OrderBasketOrder.Product")
                                   .Include("Address")
                                   .Include("OrderHistory")
                                   .Include("Address.City")
                                   .Include("Address.City.Country")
                                   .Include("Address.City.Country.Region").FirstOrDefault(x => x.OrderId == selectedOrder.Id);
                    if (selected.OrderStatus == Constants.SHIPPED_APPROVED)
                    {
                        return;
                    }
                    if (selected.OrderStatus == Constants.RESERVED || selected.OrderStatus == Constants.PAYED)
                    {
                        foreach (var orderBasket in selected.OrderBasketOrder)
                        {
                            orderBasket.Product.ProductReservedQuantity  -= orderBasket.Quantity;
                            orderBasket.Product.ProductAvailableQuantity += orderBasket.Quantity;
                        }
                    }
                    selected.Organization.Balance.CurrentBalance -= selected.TotalSale;

                    entities.OrderHistory.Add(new OrderHistory()
                    {
                        OrderId          = selected.OrderId,
                        AmountTransfer   = selected.OrderStatus == Constants.PAYED ? -selected.TotalSale : 0,
                        Comment          = "",
                        Order            = selected,
                        OrderStatus      = Constants.SHIPPED_DECLINED,
                        StatusUpdateDate = DateTime.Now
                    });
                    selected.OrderStatus = Constants.SHIPPED_DECLINED;
                    selectedOrder.Status = Constants.SHIPPED_DECLINED;

                    entities.SaveChanges();
                    LoadData();
                }
            }
            if ((string)value == Constants.RESERVED)
            {
                using (var entities = new RPPBAContext())
                {
                    var entity = entities.Orders.Include("OrderBasketOrder")
                                 .Include("OrderBasketOrder.Product")
                                 .Include("Organization")
                                 .Include("Address")
                                 .Include("OrderHistory")
                                 .Include("Address.City")
                                 .Include("Address.City.Country")
                                 .Include("Address.City.Country.Region").FirstOrDefault(x => x.TransactionId == selectedOrder.Id);
                    double totalSum = 0;
                    foreach (var orderBasket in entity.OrderBasketOrder)
                    {
                        if (orderBasket.Product.ProductAvailableQuantity < orderBasket.Quantity)
                        {
                            var messageString = "Указанное количество " + orderBasket.Product.ProductName + " недоступно для заказа. Вы можете зарезервировать " + orderBasket.Product.ProductAvailableQuantity + " " + orderBasket.Product.ProductName + "";
                            MessageBox.Show(messageString);
                            return;
                        }
                        orderBasket.Product.ProductReservedQuantity  += orderBasket.Quantity;
                        orderBasket.Product.ProductAvailableQuantity -= orderBasket.Quantity;
                    }
                    entities.OrderHistory.Add(new OrderHistory()
                    {
                        OrderId          = entity.OrderId,
                        AmountTransfer   = entity.TotalSale,
                        Comment          = "",
                        Order            = entity,
                        OrderStatus      = Constants.RESERVED,
                        StatusUpdateDate = DateTime.Now
                    });
                    entity.OrderStatus   = Constants.RESERVED;
                    selectedOrder.Status = Constants.RESERVED;
                    entities.SaveChanges();
                    Status.Content = "Статус: " + Constants.RESERVED;
                    LoadData();
                }
            }
            if ((string)value == Constants.SHIPPED_APPROVED)
            {
                using (var entities = new RPPBAContext())
                {
                    var entity = entities.Orders.Include("OrderBasketOrder")
                                 .Include("OrderBasketOrder.Product")
                                 .Include("Organization")
                                 .Include("Address")
                                 .Include("OrderHistory")
                                 .Include("Address.City")
                                 .Include("Address.City.Country")
                                 .Include("Address.City.Country.Region").FirstOrDefault(x => x.TransactionId == selectedOrder.Id);
                    if (selectedOrder.Status != Constants.PAYED)
                    {
                        return;
                    }
                    entity.Organization.Balance.CurrentBalance -= entity.TotalSale;
                    foreach (var orderBasket in entity.OrderBasketOrder)
                    {
                        orderBasket.Product.ProductReservedQuantity -= orderBasket.Quantity;
                        orderBasket.Product.ProductSoldQuantity     += orderBasket.Quantity;
                    }
                    entities.OrderHistory.Add(new OrderHistory()
                    {
                        OrderId          = entity.OrderId,
                        AmountTransfer   = -entity.TotalSale,
                        Comment          = "",
                        Order            = entity,
                        OrderStatus      = Constants.SHIPPED_APPROVED,
                        StatusUpdateDate = DateTime.Now
                    });
                    entity.OrderStatus   = selectedOrder.Status;
                    selectedOrder.Status = Constants.SHIPPED_APPROVED;
                    entities.SaveChanges();
                    Status.Content = "Статус: " + Constants.SHIPPED_APPROVED;
                    LoadData();
                }
            }
            if ((string)value == Constants.PAYED)
            {
                using (var entities = new RPPBAContext())
                {
                    var entity = entities.Orders.Include("OrderBasketOrder")
                                 .Include("OrderBasketOrder.Product")
                                 .Include("Organization")
                                 .Include("Address")
                                 .Include("OrderHistory")
                                 .Include("Address.City")
                                 .Include("Address.City.Country")
                                 .Include("Address.City.Country.Region").FirstOrDefault(x => x.TransactionId == selectedOrder.Id);
                    if (selectedOrder.Status != Constants.RESERVED)
                    {
                        return;
                    }
                    entity.Organization.Balance.CurrentBalance += entity.TotalSale;
                    foreach (var orderBasket in entity.OrderBasketOrder)
                    {
                        orderBasket.Product.ProductReservedQuantity  -= orderBasket.Quantity;
                        orderBasket.Product.ProductAvailableQuantity += orderBasket.Quantity;
                    }
                    entities.OrderHistory.Add(new OrderHistory()
                    {
                        OrderId          = entity.OrderId,
                        AmountTransfer   = entity.TotalSale,
                        Comment          = "",
                        Order            = entity,
                        OrderStatus      = Constants.PAYED,
                        StatusUpdateDate = DateTime.Now
                    });
                    entity.OrderStatus   = selectedOrder.Status;
                    selectedOrder.Status = Constants.PAYED;
                    entities.SaveChanges();
                    Status.Content = "Статус: " + Constants.PAYED;
                    LoadData();
                }
            }
            if ((string)value == Constants.HANDLING)
            {
                using (var entities = new RPPBAContext())
                {
                    var selected = entities.Orders.Include("OrderBasketOrder")
                                   .Include("Organization")
                                   .Include("OrderBasketOrder.Product")
                                   .Include("Address")
                                   .Include("OrderHistory")
                                   .Include("Address.City")
                                   .Include("Address.City.Country")
                                   .Include("Address.City.Country.Region").FirstOrDefault(x => x.OrderId == selectedOrder.Id);
                    if (selected.OrderStatus == Constants.SHIPPED_APPROVED)
                    {
                        return;
                    }
                    if (selected.OrderStatus == Constants.RESERVED || selected.OrderStatus == Constants.PAYED)
                    {
                        foreach (var orderBasket in selected.OrderBasketOrder)
                        {
                            orderBasket.Product.ProductReservedQuantity  -= orderBasket.Quantity;
                            orderBasket.Product.ProductAvailableQuantity += orderBasket.Quantity;
                        }
                    }
                    selected.OrderStatus = Constants.HANDLING;
                    selectedOrder.Status = Constants.HANDLING;
                    entities.SaveChanges();
                    LoadData();
                }
            }
        }
Example #16
0
        private void Orders_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (Orders.SelectedItem == null)
            {
                return;
            }
            else
            {
                var selectedOrder = (OrdersModel)Orders.SelectedItem;
                ParticularOrderButtons.Visibility = Visibility.Visible;
                ParticularOrder.Visibility        = Visibility.Visible;
                CreateOrder.Content   = "Зарезервировать";
                OrderID.Content       = "Заказ №" + selectedOrder.Id.ToString();
                ClientName.Content    = "" + selectedOrder.Client;
                DepartureDate.Content = "Дата отгрузки: " + selectedOrder.Date.ToString();
                Sum.Content           = "Сумма: " + (selectedOrder.Sum > 0 ? "+" : "") + selectedOrder.Sum.ToString();
                Status.Content        = "Статус: " + selectedOrder.Status;
                Commentary.Content    = "Комментарий: " + selectedOrder.Comment;
                Address.Content       = "Адрес: " + selectedOrder.Address;
                PhoneNumber.Content   = "Телефон: " + selectedOrder.Phone;
                _orderProducts        = new ObservableCollection <OrderProduct>();
                _orderHistories       = new ObservableCollection <OrderHistoryModel>();
                using (var entities = new RPPBAContext())
                {
                    var order = entities.Orders.Include("OrderBasketOrder")
                                .Include("OrderBasketOrder.Product")
                                .Include("Organization")
                                .Include("Address")
                                .Include("OrderHistory")
                                .Include("Address.City")
                                .Include("Address.City.Country")
                                .Include("Address.City.Country.Region").First(x => x.OrderId == selectedOrder.Id);
                    int i = 1;
                    foreach (var product in order.OrderBasketOrder)
                    {
                        _orderProducts.Add(new OrderProduct()
                        {
                            Cost          = (decimal)product.Product.ProductPrice,
                            ExtraDiscount = (int)product.Order.ExtraDiscount,
                            Discount      = (int)product.Order.Discount,
                            Id            = product.ProductId,
                            Name          = product.Product.ProductName,
                            Number        = i,
                            Quantity      = (int)product.Quantity
                        });
                        i++;
                    }

                    i = 1;
                    foreach (var history in order.OrderHistory)
                    {
                        _orderHistories.Add(new OrderHistoryModel()
                        {
                            Comment = history.Comment,
                            Date    = (DateTime)history.StatusUpdateDate,
                            Id      = (int)history.OrderHistoryId,
                            Number  = i,
                            Status  = history.OrderStatus,
                            Sum     = (selectedOrder.Sum > 0 ? "+" : "") + (decimal)history.AmountTransfer
                        });
                        i++;
                    }

                    OrderProducts.ItemsSource = _orderProducts;
                    History.ItemsSource       = _orderHistories;
                }
            }
        }
Example #17
0
 private void AddClient_OnClick(object sender, RoutedEventArgs e)
 {
     using (var entities = new RPPBAContext())
     {
         var address = Address.Text.Split(", ");
         //Country
         //Region
         //City
         //Street
         //House
         if (AddClient.Content == "Сохранить")
         {
             var entity = entities.Organizations.Include("OrganizationAddress")
                          .Include("OrganizationAddress.City")
                          .Include("OrganizationAddress.City.Country")
                          .Include("OrganizationAddress.City.Country.Region")
                          .Include("Balance")
                          .Include("Discounts").FirstOrDefault(x => x.OrganizationId == orgModel.Id);
             entity.OrganizationName                                   = Name.Text;
             entity.OrganizationPaymentAccount                         = Bank.Text;
             entity.OrganizationDirectorFullname                       = Contact.Text;
             entity.OrganizationPhoneInt                               = Phone.Text;
             entity.OrganizationAddress.StreetName                     = address[3];
             entity.OrganizationAddress.BuildingInt                    = address[4];
             entity.OrganizationAddress.City.CityName                  = address[2];
             entity.OrganizationAddress.City.Country.CountryName       = address[0];
             entity.OrganizationAddress.City.Country.Region.RegionName = address[1];
             entity.Discounts.Discount                                 = Convert.ToInt32(Discount.Text);
             entities.SaveChanges();
         }
         else
         {
             var model = new Organizations()
             {
                 OrganizationName             = Name.Text,
                 OrganizationPaymentAccount   = Bank.Text,
                 OrganizationDirectorFullname = Contact.Text,
                 OrganizationPhoneInt         = Phone.Text,
                 OrganizationAddress          = new Addresses()
                 {
                     StreetName  = address[3],
                     BuildingInt = address[4],
                     City        = new Cities()
                     {
                         CityName = address[2],
                         Country  = new Countries()
                         {
                             CountryName = address[0],
                             Region      = new Regions()
                             {
                                 RegionName = address[1]
                             }
                         }
                     }
                 },
             };
             entities.Organizations.Add(model);
             entities.SaveChanges();
             model = entities.Organizations.FirstOrDefault(x =>
                                                           x.OrganizationName == model.OrganizationName &&
                                                           x.OrganizationPaymentAccount == model.OrganizationPaymentAccount);
             model.Discounts = new Discounts()
             {
                 Discount = 0
             };
             model.Balance = new Balance()
             {
                 CurrentBalance = 0
             };
             entities.SaveChanges();
         }
     }
     this.Close();
     mainForm.LoadData();
     mainForm.UpdateView();
 }