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("Продукт с данным именем уже в списке!"); } }
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(); } }
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(); }
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(); }
private void CBProduct_SelectedIndexChanged(object sender, EventArgs e) { _Product = cBProduct.SelectedItem as ProductArrival; InitializeToProduct(); }