public ActionResult Create(ProductArrival pa)
        {
            try
            {
                Product _prod = db.Products.Get(pa.Ingredient.Id);
                if (_prod != null) //Если уже есть такой продукт
                {                  //пересчет цены товара
                    float newBalance   = _prod.Balance + pa.Ingredient.quantity;
                    float newSellPrice = ((_prod.Balance * _prod.SellPrice) + (pa.Ingredient.quantity * pa.Ingredient.price))
                                         / newBalance;
                    _prod.Balance             = newBalance;
                    _prod.SellPrice           = newSellPrice;
                    pa.Ingredient.productName = _prod.Name;
                    db.Products.Update(_prod);
                    //db.Entry(_prod).State = EntityState.Modified;
                }
                else
                {
                    _prod.MinBalance = 5;
                    _prod.Name       = pa.Ingredient.productName;
                    _prod.Balance    = pa.Ingredient.quantity;
                    db.Products.Create(_prod);
                }
                db.ProductsArrival.Create(pa);
                db.Save();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
        private void ButSave_Click(object sender, EventArgs e)
        {
            if (tBPrice.Text == "" || tBBalance.Text == "")
            {
                ShowError("Не все обязательные поля заполнены!");
            }
            else
            {
                if (main.addedProducts.Where(x => x.Name == (cBProduct.SelectedItem as ProductDTO).Name).Count() == 0)
                {
                    ProductDTO     productInDb = MainForm.DB.Products.Get((cBProduct.SelectedItem as ProductDTO).Id);
                    ProductArrival product     = new ProductArrival();
                    product.Id      = productInDb.Id;
                    product.Name    = productInDb.Name;
                    product.Balance = float.Parse(tBBalance.Text);
                    product.Price   = float.Parse(tBPrice.Text);
                    product.TypeId  = productInDb.TypeId;
                    product.UnitId  = productInDb.UnitId;

                    main.addedProducts.Add(product);
                    MessageBox.Show("Продукт успешно добавлен");
                    this.Close();
                }
                ShowError("Продукт с данным именем уже в списке!");
            }
        }
예제 #3
0
 private void DGVProducts_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex == 4)
     {
         ProductArrival product = (ProductArrival)dGVProducts.CurrentRow.Tag;
         if (MessageBox.Show("Удалить " + product.Name + " ?", "Подтверждение удаления", MessageBoxButtons.YesNo) == DialogResult.Yes)
         {
             addedProducts.Remove(product);
         }
         ReloadedData();
     }
 }
예제 #4
0
        private void AddProduct(ProductArrival product)
        {
            Stream stream = new FileStream(Application.StartupPath + "\\Local Data\\" + (cBInvoices.SelectedItem as InvoiceDTO).FileName, FileMode.Open);
            List <ProductArrival> listInvoiceProducts = new BinaryFormatter().Deserialize(stream) as List <ProductArrival>;
            ProductArrival        productInInvoice    = listInvoiceProducts.Single(x => x.Id == product.Id);

            productInInvoice.Balance -= product.Balance;
            listInvoiceProducts.Remove(listInvoiceProducts.Single(x => x.Id == product.Id));
            listInvoiceProducts.Add(productInInvoice);
            stream.Close();

            stream = new FileStream(Application.StartupPath + "\\Local Data\\" + (cBInvoices.SelectedItem as InvoiceDTO).FileName, FileMode.OpenOrCreate);
            var serializer = new BinaryFormatter();

            serializer.Serialize(stream, listInvoiceProducts);
            stream.Close();
        }
예제 #5
0
        private void AddProduct(ProductArrival product)
        {
            ProductDTO dbProduct  = MainForm.DB.Products.Get(product.Id);
            float      newBalance = (float)(dbProduct.Balance + product.Balance);

            dbProduct.Sum     = (float)Math.Round(product.getSumRound() + dbProduct.Sum, 2);
            dbProduct.Balance = newBalance;
            MainForm.DB.Products.Update(dbProduct);
            MainForm.DB.Save();
            Stream stream = new FileStream(Application.StartupPath + "\\Local Data\\" + (cBContracts.SelectedItem as ContractDTO).FileName, FileMode.Open);
            List <ProductArrival> listContractProducts = new BinaryFormatter().Deserialize(stream) as List <ProductArrival>;
            ProductArrival        productInContract    = listContractProducts.Single(x => x.Id == product.Id);

            productInContract.Balance = (float)(productInContract.Balance - product.Balance);
            listContractProducts.Remove(listContractProducts.Single(x => x.Id == product.Id));
            listContractProducts.Add(productInContract);
            stream.Close();

            stream = new FileStream(Application.StartupPath + "\\Local Data\\" + (cBContracts.SelectedItem as ContractDTO).FileName, FileMode.OpenOrCreate);
            var serializer = new BinaryFormatter();

            serializer.Serialize(stream, listContractProducts);
            stream.Close();
        }
예제 #6
0
 private void CBProduct_SelectedIndexChanged(object sender, EventArgs e)
 {
     _Product = cBProduct.SelectedItem as ProductArrival;
     InitializeToProduct();
 }