コード例 #1
0
 public ViewerObject(ProductPosition prod)
 {
     Id             = prod.product.Id;
     name           = prod.product.name;
     current_number = prod.NumberOfProduct;
     number_to      = 0;
     number_from    = 0;
 }
コード例 #2
0
    void GetPosition()
    {
        ProductPosition listModul = new ProductPosition();

        DdlPosition.Items.Clear();
        for (int i = 0; i < listModul.Text.Length; i++)
        {
            DdlPosition.Items.Add(new ListItem(listModul.Text[i], listModul.Values[i]));
        }
    }
コード例 #3
0
 private void CloseTrip_Click(object sender, RoutedEventArgs e)
 {
     if (NumberArea.Text != "")
     {
         try
         {
             int trip_id = Convert.ToInt32(NumberArea.Text);
             //Получить слоты
             Trip trip = controller.GetTrips().Where(t => t.Id == trip_id).FirstOrDefault();
             if (trip == null) throw new Exception("Не найден объект, с указанным Id. Проверьте правильность введенных данных");
             if (trip.Status.Equals("Завершён")) throw new Exception("Нельзя завершить завершённый рейс");
             if (trip.Status.Equals("Ожидает отправки")) throw new Exception("Нельзя завершить рейс, ожидающий отправки");
             ObservableCollection<TruckSlot> slots = controller.GetSlotsForTrip(trip);
             //Прибывить к наименованию на складе кол-во  со слотов
             Center centerTo = trip.To;
             foreach (TruckSlot slot in slots)
             {
                 ProductPosition position = controller.GetDBCenterProductsPosition(centerTo).Where(p => p.product.Id == slot.product.Id).FirstOrDefault();
                 position.numberOfProduct += slot.total_umber;
             }
             //Отнять с отбывшего склада
             Center centerFrom = trip.From;
             foreach (TruckSlot slot in slots)
             {
                 ProductPosition position = controller.GetDBCenterProductsPosition(centerFrom).Where(p => p.product.Id == slot.product.Id).FirstOrDefault();
                 position.numberOfProduct -= slot.total_umber;
             }
             //Удалить заказы или отнять кол-во
             foreach (TruckSlot slot in slots)
             {
                 Require require = controller.GetDBRequiers().Where(r => r.FromCenter.Id == centerFrom.Id && r.ToCenter.Id == centerTo.Id && r.product.Id == slot.product.Id).FirstOrDefault();
                 if (require != null)
                 {
                     if (require.Number == slot.total_umber)
                         controller.DelateRequier(require.Id);
                     else require.Number -= slot.total_umber;
                 }
             }
             //Удалить слоты
             controller.DelateTripsSlots(trip_id);
             //Завершить рейс
             trip.CloseTrip();
             trip.truck.closeTrip(centerTo);
             TripsWorkingArea.Content = AdminTripsTable.GetInstance();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
     else
         MessageBox.Show("Укажите Id рейса, над которым хотите совершить операцию");
 }
コード例 #4
0
        public static ContainableItem CreateOreoItem()
        {
            var oreoCategory = new ProductCategory(categoryName: "Biscuits",
                                                   description: "Biscuits with cream");
            var oreoProduct = new Product(name: "Oreo",
                                          price: 5.59m,
                                          category: oreoCategory);
            var oreoPosition = new ProductPosition(row: 3,
                                                   column: 7);
            var oreoItem = new ContainableItem(productPosition: oreoPosition,
                                               size: 5,
                                               product: oreoProduct);

            return(oreoItem);
        }
コード例 #5
0
        public static ContainableItem CreateSkittlesProduct()
        {
            var skittlesCategory = new ProductCategory(categoryName: "Biscuits",
                                                       description: "Biscuits with cream");
            var skittlesProduct = new Product(name: "Oreo",
                                              price: 5.59m,
                                              category: skittlesCategory);
            var skittlesPosition = new ProductPosition(row: 2,
                                                       column: 5);
            var skittlesItem = new ContainableItem(productPosition: skittlesPosition,
                                                   size: 2,
                                                   product: skittlesProduct);

            return(skittlesItem);
        }
コード例 #6
0
        public static ContainableItem CreatePringlesProduct()
        {
            var pringlesCategory = new ProductCategory(categoryName: "Snacks",
                                                       description: "Snacks with salt");
            var pringlesProduct = new Product(name: "Pringles",
                                              price: 7.9m,
                                              category: pringlesCategory);
            var pringlesPosition = new ProductPosition(row: 2,
                                                       column: 5);
            var pringlesItem = new ContainableItem(productPosition: pringlesPosition,
                                                   size: 3,
                                                   product: pringlesProduct);

            return(pringlesItem);
        }
コード例 #7
0
        public static ContainableItem CreateTwixProduct()
        {
            var twixCategory = new ProductCategory(categoryName: "Chocolate",
                                                   description: "Two bars of chocolate");
            var twixProduct = new Product(name: "Twix",
                                          price: 3,
                                          category: twixCategory);
            var twixPosition = new ProductPosition(row: 1,
                                                   column: 7);
            var twixItem = new ContainableItem(productPosition: twixPosition,
                                               size: 2,
                                               product: twixProduct);

            return(twixItem);
        }
コード例 #8
0
        public static ContainableItem CreateSnickersProduct()
        {
            var snickersCategory = new ProductCategory(categoryName: "Chocolate",
                                                       description: "Chocolate with caramel");
            var snickersProduct = new Product(name: "Snickers",
                                              price: 2.5m,
                                              category: snickersCategory);
            var snickersPosition = new ProductPosition(row: 1,
                                                       column: 1);
            var snickersItem = new ContainableItem(productPosition: snickersPosition,
                                                   size: 2,
                                                   product: snickersProduct);

            return(snickersItem);
        }
コード例 #9
0
    string SetPosition(string value)
    {
        string          s         = "_";
        ProductPosition listModul = new ProductPosition();

        for (int i = 0; i < listModul.Values.Length; i++)
        {
            if (listModul.Values[i] == value)
            {
                s = listModul.Text[i];
                break;
            }
        }
        return(s);
    }
コード例 #10
0
        public void Execute()
        {
            try
            {
                int             id   = Convert.ToInt32(observer.IdForDelateProductPosition.Text);
                ProductPosition prod = ReductProducts.ProductsOnStorage.Where(p => p.Id == id).FirstOrDefault();

                ReductProducts.ProductsOnStorage.Remove(prod);
                IRepController controller = new RepositoryController();
                controller.DeleteProductPositionFromDB(prod);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Товар не найден. Проверьте правильность введенного индекса");
            }
        }
コード例 #11
0
 public void Execute()
 {
     try
     {
         Product product = new Product(
             Name,
             (float)Convert.ToDouble(Length),
             (float)Convert.ToDouble(Width),
             (float)Convert.ToDouble(Height),
             (float)Convert.ToDouble(Cost),
             (float)Convert.ToDouble(Weight),
             Convert.ToInt32(Min_num),
             Unit
             );
         ProductPosition productPosition = new ProductPosition(product, employee.center, Convert.ToInt32(Number));
         controller.AddProductPositionInDB(productPosition);
         MessageBox.Show("Товар добавлен");
         //controller.AddProductInDB(product);
     }
     catch (Exception e)
     {
         MessageBox.Show("Неверный формат введенных данных. Ячейки могут содержать только целочисленные, положительные значения. Все измерения в единицах СИ");
     }
 }
コード例 #12
0
 public ContainableItem(ProductPosition productPosition, int size, Product product)
 {
     _productPosition = productPosition;
     _size            = size;
     _product         = product;
 }
コード例 #13
0
        private void CloseTrip_Click(object sender, RoutedEventArgs e)
        {
            if (NumberArea.Text != "")
            {
                try
                {
                    int trip_id = Convert.ToInt32(NumberArea.Text);
                    //Получить слоты
                    Trip trip = controller.GetTrips().Where(t => t.Id == trip_id).FirstOrDefault();
                    if (trip == null)
                    {
                        throw new Exception("Не найден объект, с указанным Id. Проверьте правильность введенных данных");
                    }
                    if (trip.Status.Equals("Завершён"))
                    {
                        throw new Exception("Нельзя завершить завершённый рейс");
                    }
                    if (trip.Status.Equals("Ожидает отправки"))
                    {
                        throw new Exception("Нельзя завершить рейс, ожидающий отправки");
                    }
                    if (trip.To.Id != employee.center.Id)
                    {
                        throw new Exception("Завершить рейс может только сотрудник центра назначения или администратор");
                    }

                    ObservableCollection <TruckSlot> slots = controller.GetSlotsForTrip(trip);
                    //Прибывить к наименованию на складе кол-во  со слотов
                    Center centerTo = trip.To;
                    foreach (TruckSlot slot in slots)
                    {
                        ProductPosition position = controller.GetDBCenterProductsPosition(centerTo).Where(p => p.product.Id == slot.product.Id).FirstOrDefault();
                        if (position != null)
                        {
                            position.numberOfProduct += slot.total_umber;
                        }
                        else
                        {
                            ICommand command = new AddProductCommand(
                                employee,
                                Convert.ToString(slot.product.Name),
                                Convert.ToString(slot.product.Length),
                                Convert.ToString(slot.product.Height),
                                Convert.ToString(slot.product.Height),
                                Convert.ToString(slot.product.Weight),
                                Convert.ToString(slot.product.Cost),
                                slot.product.Unit_of_measurment,
                                Convert.ToString(slot.product.Mominal_number),
                                Convert.ToString(slot.total_umber)
                                );
                            if (command.ifExecute())
                            {
                                command.Execute();
                            }
                        }
                    }
                    //Отнять с отбывшего склада
                    Center centerFrom = trip.From;
                    foreach (TruckSlot slot in slots)
                    {
                        ProductPosition position = controller.GetDBCenterProductsPosition(centerFrom).Where(p => p.product.Id == slot.product.Id).FirstOrDefault();
                        position.numberOfProduct -= slot.total_umber;
                    }
                    //Удалить заказы или отнять кол-во
                    foreach (TruckSlot slot in slots)
                    {
                        Require require = controller.GetDBRequiers().Where(r => r.FromCenter.Id == centerFrom.Id && r.ToCenter.Id == centerTo.Id && r.product.Id == slot.product.Id).FirstOrDefault();
                        if (require != null)
                        {
                            if (require.Number == slot.total_umber)
                            {
                                controller.DelateRequier(require.Id);
                            }
                            else
                            {
                                require.Number -= slot.total_umber;
                            }
                        }
                    }
                    //Удалить слоты
                    controller.DelateTripsSlots(trip_id);
                    //Завершить рейс
                    trip.CloseTrip();
                    trip.truck.closeTrip(centerTo);
                    TripsWorkingArea.Content = EmployeeTripsTable.GetInstance(employee);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Укажите Id рейса, над которым хотите совершить операцию");
            }
        }