Example #1
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Удалить.
 /// Отвечает за удаление записи таблицы.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void deleteB_Click(object sender, EventArgs e)
 {
     //если строка выбрана
     if (receiptDGV.SelectedRows.Count > 0)
     {
         //формирование удаляемого продукт из строки
         Product product = Product.ProductFromRow(receiptDGV.SelectedRows[0], receipt);
         //вывод диалогового окна
         if (product != null && MessageBox.Show("Вы действительно хотите удалить строку:\n" +
                                                $"| {product.Name} | {product.Quantity} | {product.Price} | " +
                                                $"{product.Row_Summ} |", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
         {
             using (var db = new KassaDBContext())
             {
                 //удаление из БД из таблицы Purchase
                 var purchase = db.Purchase.Where(p => p.ProductId == product.Id && p.ReceiptId == receipt.Id).FirstOrDefault();
                 db.Purchase.Remove(purchase);
                 db.SaveChanges();
                 //удаление из состава чека
                 receipt.Purchase.Remove(purchase);
                 receipt.Products.Remove(product);
                 receipt.CalculateSumm();
                 //удаление из DataGridView
                 receiptDGV.Rows.Remove(receiptDGV.SelectedRows[0]);
                 //восстановление остатка
                 CountController.Recover(product.Id, product.Quantity);
             }
         }
     }
 }
Example #2
0
 /// <summary>
 /// Метод обрабатывает событие загрузки формы.
 /// Отвечает вызов сравнения остатков и создание объекта чека.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void Main_Load(object sender, EventArgs e)
 {
     //сверка остатков по всем товарам
     CountController.ReconciliationAll();
     //добавление нового чека в БД в таблицу Receipt
     using (var db = new KassaDBContext())
     {
         receipt = new Receipt();
         receipt = db.Receipt.Add(receipt);
         db.SaveChanges();
         timer.Start();
     }
 }
Example #3
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Ввод.
 /// Отвечает за проверку корректности и сохранение изменённых данных.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void addProductB_Click(object sender, EventArgs e)
 {
     try
     {
         using (var db = new KassaDBContext())
         {
             if (countNUD.Value != 0 && discountTB.Text != "")
             {
                 //создание продукта с изменёнными данными
                 Product product = new Product()
                 {
                     Id         = OldProduct.Id,
                     Name       = OldProduct.Name,
                     Quantity   = (int)countNUD.Value,
                     Price      = OldProduct.Price,
                     Discount   = double.Parse(discountTB.Text),
                     NDS        = OldProduct.NDS,
                     Department = (int)departmentNUD.Value,
                     Type       = OldProduct.Type
                 };
                 product.RowSummCalculate();
                 product.Quantity -= OldProduct.Quantity;
                 //если изменённое количесвто не превышает остаток
                 if (CountController.Check(product))
                 {
                     product.Quantity += OldProduct.Quantity;
                     //изменение данных на форме Main
                     int index = ((Main)Owner).receipt.Products.IndexOf(
                         ((Main)Owner).receipt.Products.Where(p => p.Name == product.Name).FirstOrDefault());
                     ((Main)Owner).receipt.Products[index] = product;
                     ((Main)Owner).DGV_Refresh();
                     //обновление данных в БД в таблице Purchase
                     var oldP = db.Purchase.Where(pur => pur.ProductId == product.Id && pur.ReceiptId == ((Main)Owner).receipt.Id).FirstOrDefault();
                     oldP.Count = product.Quantity;
                     oldP.Summa = (decimal)product.Row_Summ;
                     db.SaveChanges();
                 }
                 Close();
             }
             else
             {
                 MessageBox.Show("Заполните все данные о товаре!");
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(TextFormat.GetExceptionMessage(ex));
     }
 }
Example #4
0
    // Start is called before the first frame update
    void Start()
    {
        dataSaver  = GetComponent <DataSaver>();
        player1Con = player1.GetComponent <playerCon>();
        player2Con = player1.GetComponent <playerCon>();
        Material material = loadObject.GetComponent <MeshRenderer>().material;

        material.SetFloat("_ScrollSpeed", loadScroolSpeed);

        rocks = new List <GameObject>();
        spwan = false;

        timerc   = timer.GetComponent <TimerController>();
        counterc = counter.GetComponent <CountController>();
    }
Example #5
0
 /// <summary>
 /// Метод обрабатывает событие закрытия формы.
 /// Отвечает за удаление старого и создание нового чека
 /// при отказе работать с текущими позициями.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void Payment_FormClosing(object sender, FormClosingEventArgs e)
 {
     using (var db = new KassaDBContext())
     {
         //если в диалоговом окне выбрано Нет
         if (MessageBox.Show("Продолжить работу с этими позициями?", "", MessageBoxButtons.YesNo) == DialogResult.No)
         {
             ((Main)Owner).receipt = new Receipt();
             ((Main)Owner).receiptDGV.Rows.Clear(); //очистка таблицы на главной форме
             var r = db.Receipt.Where(p => p.Id == CurrentReceipt.Id && p.Paid == false).FirstOrDefault();
             if (r != null)
             {
                 CountController.Reconciliation(CurrentReceipt); //сверка остатков
             }
             db.Receipt.Add(((Main)Owner).receipt);              //добавление нового чека
             db.SaveChanges();
         }
     }
 }
Example #6
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Ввод.
 /// Отвечает за вывод выбранного продукта в таблицу формы Main.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void enterB_Click(object sender, EventArgs e)
 {
     try
     {
         using (var db = new KassaDBContext())
         {
             Product  product;
             Purchase purchase;
             //если продукт выбран
             if (productsDGV.SelectedRows.Count > 0)
             {
                 foreach (DataGridViewRow r in productsDGV.SelectedRows)
                 {
                     //формирование продукта из строки DataGridView
                     product = Product.ProductFromRow(r, null);
                     if (product.ShelfLife < DateTime.Now)
                     {
                         if (MessageBox.Show($"Срок годности товара \"{product.Name}\" истёк {product.ShelfLife:dd.MM.yyyy}!\n\n" +
                                             $"Действительно добавить товар в чек?", "Предупреждение", MessageBoxButtons.YesNo) == DialogResult.No)
                         {
                             return;
                         }
                     }
                     if (product != null)
                     {
                         product.Quantity = (int)countNUD.Value;
                         product.RowSummCalculate();
                         //если количество не превышает остаток
                         if (CountController.Check(product))
                         {
                             bool added = false;
                             //перебор содержимого состава чека на форме Main
                             foreach (Product p in ((Main)Owner).receipt.Products)
                             {
                                 //если товар уже добавлен в чек новая позиция не создаётся
                                 if (p.Name == product.Name)
                                 {
                                     if (p.Type == 1)//учитываются только товары, без услуг
                                     {
                                         //обновляется запись в БД в таблице Purchase
                                         var oldP = db.Purchase.Where(pur => pur.ProductId == p.Id && pur.ReceiptId == ((Main)Owner).receipt.Id).FirstOrDefault();
                                         oldP.Count += product.Quantity;
                                         oldP.Summa += product.Row_Summ;
                                         //к существующей позиции добавляется количество и сумма
                                         p.Quantity += product.Quantity;
                                         p.Row_Summ += product.Row_Summ;
                                         ((Main)Owner).DGV_Refresh();
                                         db.SaveChanges();
                                     }
                                     added = true;
                                 }
                             }
                             //если товар не добавлен
                             if (!added)
                             {
                                 //создаётся новая позиция в чеке
                                 ((Main)Owner).receipt.Products.Add(product);
                                 ((Main)Owner).DGV_Refresh();
                                 //данные добавляются в БД в таблицу Purchase
                                 purchase = new Purchase()
                                 {
                                     ProductId = product.Id,
                                     Count     = product.Quantity,
                                     Summa     = product.Row_Summ,
                                     Date      = DateTime.Now,
                                     ReceiptId = ((Main)Owner).receipt.Id,
                                     Receipt   = db.Receipt.Where(rec => rec.Id == ((Main)Owner).receipt.Id).FirstOrDefault()
                                 };
                                 ((Main)Owner).receipt.Purchase.Add(purchase);
                                 db.Purchase.Add(purchase);
                                 db.SaveChanges();
                             }
                             //обновление данных формы
                             ViewResult(null);
                             Close();
                         }
                     }
                 }
             }
             else
             {
                 MessageBox.Show("Строка не выбрана!");
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(TextFormat.GetExceptionMessage(ex));
     }
 }
Example #7
0
 private void OnMouseDown()
 {
     CountController.UpdateCounter(1);
     Destroy(gameObject);
 }
Example #8
0
 /// <summary>
 /// Метод обрабатывает событие закрытия формы.
 /// Отвечает за вызов сравнения остатков.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void Main_FormClosing(object sender, FormClosingEventArgs e)
 {
     //сверка остатков по товарам, добавленным в чек
     CountController.Reconciliation(receipt);
 }