public ActionResult AddReceipt([Bind(Include = "Id,deliveryNoteItem,Customer_Id,DeliveryNote_Number,DeliveryNote_Remark,DeliveryNote_Date,MovementType_Id,Remark,IsActive,CreatedBy,CreatedDate,ChangedBy,ChangedDate")] InventoryOperationViewModel inventoryReceipt) { if (ModelState.IsValid) { var identity = (ClaimsIdentity)User.Identity; var sid = identity.Claims.Where(c => c.Type == ClaimTypes.Sid).Select(c => c.Value).SingleOrDefault(); var deliveryNoteCreted = false; for (int x = 0; x < inventoryReceipt.deliveryNoteItem.Count; x++) { //INGREDIENTMOVEMENT ELKÉSZÍTÉSE var currentIndex = x; var currentIngredientId = inventoryReceipt.deliveryNoteItem[x].Ingredient_Id; var currentIngredientQuantity = inventoryReceipt.deliveryNoteItem[currentIndex].Quantity; var ingredientMovement = new IngredientMovement { Ingredient_Id = inventoryReceipt.deliveryNoteItem[currentIndex].Ingredient_Id, MovementType_Id = inventoryReceipt.MovementType_Id, Warehouse_Id = inventoryReceipt.deliveryNoteItem[currentIndex].Warehouse_Id, Quantity = inventoryReceipt.deliveryNoteItem[currentIndex].Quantity, Remark = inventoryReceipt.Remark, IsActive = true, CreatedDate = DateTime.Now, CreatedBy = Convert.ToInt32(sid) }; db.IngredientMovements.Add(ingredientMovement); //CURRENTINGREDIENTSTOCK MÓDOSÍTÁSA var ingredientexists = db.CurrentIngredientStocks.Where(i => i.Ingredient_Id == currentIngredientId); //HA NINCS AZ ALAPANYAGBÓL, HOZZÁADJUK if (!ingredientexists.Any()) { db.CurrentIngredientStocks.Add(new CurrentIngredientStock { CreatedDate = DateTime.Now, CreatedBy = Convert.ToInt32(sid), IsActive = true, Warehouse_Id = inventoryReceipt.deliveryNoteItem[currentIndex].Warehouse_Id, Ingredient_Id = inventoryReceipt.deliveryNoteItem[currentIndex].Ingredient_Id, Quantity = inventoryReceipt.deliveryNoteItem[currentIndex].Quantity }); } //HA VAN AZ ALAPANYAGBÓL, UPDATE else { var ingredienttoupdate = db.CurrentIngredientStocks.First(i => i.Ingredient_Id == currentIngredientId); var originalingredientquantity = db.CurrentIngredientStocks.First(i => i.Ingredient_Id == currentIngredientId).Quantity; ingredienttoupdate.Quantity = originalingredientquantity + currentIngredientQuantity; ingredienttoupdate.ChangedDate = DateTime.Now; ingredienttoupdate.ChangedBy = Convert.ToInt32(sid); db.Entry(ingredienttoupdate).State = EntityState.Modified; } //SZÁLLÍTÓLEVÉL HOZZÁADÁSA var existingDeliveryNoteId = 0; if (deliveryNoteCreted == false) { var deliveryNote = new DeliveryNote { Customer_Id = inventoryReceipt.Customer_Id, Type = "receipt", Number = inventoryReceipt.DeliveryNote_Number, Remark = inventoryReceipt.DeliveryNote_Remark, IsActive = true, CreatedDate = DateTime.Now, CreatedBy = Convert.ToInt32(sid), DeliveryNoteDate = inventoryReceipt.DeliveryNote_Date }; db.DeliveryNotes.Add(deliveryNote); deliveryNoteCreted = true; existingDeliveryNoteId = deliveryNote.Id; //SZÁLLÍTÓLEVÉL TÉTELEK HOZZÁADÁSA var deliveryNoteItem = new DeliveryNoteItem { DeliveryNote = deliveryNote, IngredientMovement = ingredientMovement }; db.DeliveryNoteItems.Add(deliveryNoteItem); } else { //SZÁLLÍTÓLEVÉL TÉTELEK HOZZÁADÁSA var deliveryNoteItem = new DeliveryNoteItem { DeliveryNote_Id = existingDeliveryNoteId, IngredientMovement = ingredientMovement }; db.DeliveryNoteItems.Add(deliveryNoteItem); } } if (db.SaveChanges() > 0) { TempData["Operation"] = "success"; } else { TempData["Operation"] = "danger"; } return(RedirectToAction("Index", "CurrentIngredientStocks")); } ViewBag.MovementType_Id = new SelectList(db.MovementTypes.Where(i => i.MovementKey == "receipt"), "Id", "Name"); ViewBag.Ingredient_Id = new SelectList(db.Ingredients, "Id", "Name"); ViewBag.Warehouse_Id = new SelectList(db.Warehouses, "Id", "Name"); ViewBag.Customer_Id = new SelectList(db.Customers.Where(i => i.IsSupplier == true).OrderBy(i => i.Name), "Id", "Name"); return(View(inventoryReceipt)); }
public ActionResult AddIssue([Bind(Include = "Id,deliveryNoteItem,Customer_Id,DeliveryNote_Number,DeliveryNote_Remark,DeliveryNote_Date,MovementType_Id,Remark,IsActive,CreatedBy,CreatedDate,ChangedBy,ChangedDate")] InventoryOperationViewModel inventoryIssue) { if (ModelState.IsValid) { var identity = (ClaimsIdentity)User.Identity; var sid = identity.Claims.Where(c => c.Type == ClaimTypes.Sid).Select(c => c.Value).SingleOrDefault(); var deliveryNoteCreted = false; for (int x = 0; x < inventoryIssue.deliveryNoteItem.Count; x++) { //PRODUCTMOVEMENT ELKÉSZÍTÉSE var currentIndex = x; var currentProductId = inventoryIssue.deliveryNoteItem[currentIndex].Recipe_Id; var currentProductQuantity = inventoryIssue.deliveryNoteItem[currentIndex].Quantity; var productMovement = new ProductMovement { Recipe_Id = inventoryIssue.deliveryNoteItem[currentIndex].Recipe_Id, MovementType_Id = inventoryIssue.MovementType_Id, Warehouse_Id = inventoryIssue.deliveryNoteItem[currentIndex].Warehouse_Id, Quantity = inventoryIssue.deliveryNoteItem[currentIndex].Quantity, Remark = inventoryIssue.Remark, IsActive = true, CreatedDate = DateTime.Now, CreatedBy = Convert.ToInt32(sid) }; db.ProductMovements.Add(productMovement); //CURRENTPRODUCTSTOCK MÓDOSÍTÁSA var productexists = db.CurrentProductStocks.Where(i => i.Recipe_Id == currentProductId); //HA NINCS A TERMÉKBŐL, VAGY KEVESEBB, MINT AMENNYIT KI AKAR ADNI, HIBA if (!productexists.Any()) { TempData["Operation"] = "danger"; TempData["OperationMessage"] = string.Format("A következő termék nincs raktáron: {0}", db.Recipes.First(i => i.Id == currentProductId).Name); return(RedirectToAction("AddIssue", "InventoryOperations")); } if (currentProductQuantity > productexists.First().Quantity) { TempData["Operation"] = "danger"; TempData["OperationMessage"] = string.Format("Nem áll rendelkezésre a szükséges mennyiség ({0} t) a következő termékből: {1}", currentProductQuantity, productexists.First().Recipe.Name); return(RedirectToAction("AddIssue", "InventoryOperations")); } //HA VAN A TERMÉKBŐL ÉS ELEGENDŐ IS, UPDATE else { var producttoupdate = db.CurrentProductStocks.First(i => i.Recipe_Id == currentProductId); var originalproductquantity = db.CurrentProductStocks.First(i => i.Recipe_Id == currentProductId).Quantity; producttoupdate.Quantity = originalproductquantity - currentProductQuantity; producttoupdate.ChangedDate = DateTime.Now; producttoupdate.ChangedBy = Convert.ToInt32(sid); db.Entry(producttoupdate).State = EntityState.Modified; } //SZÁLLÍTÓLEVÉL HOZZÁADÁSA var existingDeliveryNoteId = 0; if (deliveryNoteCreted == false) { var deliveryNote = new DeliveryNote { Customer_Id = inventoryIssue.Customer_Id, Type = "issue", Number = inventoryIssue.DeliveryNote_Number, Remark = inventoryIssue.DeliveryNote_Remark, IsActive = true, CreatedDate = DateTime.Now, CreatedBy = Convert.ToInt32(sid), DeliveryNoteDate = inventoryIssue.DeliveryNote_Date }; db.DeliveryNotes.Add(deliveryNote); deliveryNoteCreted = true; existingDeliveryNoteId = deliveryNote.Id; //SZÁLLÍTÓLEVÉL TÉTELEK HOZZÁADÁSA var deliveryNoteItem = new DeliveryNoteItem { DeliveryNote = deliveryNote, ProductMovement = productMovement }; db.DeliveryNoteItems.Add(deliveryNoteItem); } else { //SZÁLLÍTÓLEVÉL TÉTELEK HOZZÁADÁSA var deliveryNoteItem = new DeliveryNoteItem { DeliveryNote_Id = existingDeliveryNoteId, ProductMovement = productMovement }; db.DeliveryNoteItems.Add(deliveryNoteItem); } } if (db.SaveChanges() > 0) { TempData["Operation"] = "success"; } else { TempData["Operation"] = "danger"; } return(RedirectToAction("Index", "CurrentProductStocks")); } ViewBag.MovementType_Id = new SelectList(db.MovementTypes.Where(i => i.MovementKey == "issue"), "Id", "Name"); ViewBag.Recipe_Id = new SelectList(db.Recipes, "Id", "Name"); ViewBag.Warehouse_Id = new SelectList(db.Warehouses, "Id", "Name"); ViewBag.Customer_Id = new SelectList(db.Customers.OrderBy(i => i.Name), "Id", "Name"); return(View(inventoryIssue)); }