public bool DeleteDeliveryNoteItem(DeliveryNoteItem model) { try { model.Delete(); return(true); } catch (Exception ex) { string error = ""; CommonMethods.getError(ex, ref error); throw new Exception(CommonMethods.ConcatenateErrorIN_DB(DB_Exception.res_27, error, CommonMethods.GetCurrentMethodName())); } }
public int SaveDeliveryNoteItem(DeliveryNoteItem model, int userID = 0) { try { model.tsUpdate = DateTime.Now; model.tsUpdateUserID = userID; if (model.DeliveryNoteItemID == 0) { model.tsInsert = DateTime.Now; model.tsInsertUserID = userID; } model.Save(); return(model.DeliveryNoteItemID); } catch (Exception ex) { string error = ""; CommonMethods.getError(ex, ref error); throw new Exception(CommonMethods.ConcatenateErrorIN_DB(DB_Exception.res_26, error, CommonMethods.GetCurrentMethodName())); } }
public ActionResult EditIssue(DTOEditIssue r) { 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; var existingDeliveryNote = db.DeliveryNotes.Find(r.Id); //DELIVERYNOTE UPDATE existingDeliveryNote.DeliveryNoteDate = (DateTime)r.DeliveryNote.DeliveryNoteDate; existingDeliveryNote.Customer_Id = r.DeliveryNote.Customer_Id; existingDeliveryNote.Number = r.DeliveryNote.Number; existingDeliveryNote.Remark = r.DeliveryNote.Remark; existingDeliveryNote.IsActive = r.DeliveryNote.IsActive; existingDeliveryNote.ChangedBy = Convert.ToInt32(sid); existingDeliveryNote.ChangedDate = DateTime.Now; db.Entry(existingDeliveryNote).State = EntityState.Modified; for (int x = 0; x < r.DeliveryNote.DeliveryNoteItems.Count; x++) { //PRODUCTMOVEMENT UPDATE var currentIndex = x; var currentRecipeId = r.DeliveryNote.DeliveryNoteItems[currentIndex].Recipe_Id; var currentWarehouseId = r.DeliveryNote.DeliveryNoteItems[currentIndex].Warehouse_Id; var currentProductQuantity = r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity; if (r.DeliveryNote.DeliveryNoteItems[currentIndex].ProductMovementIsActive || r.DeliveryNote.DeliveryNoteItems[currentIndex].Id == 0) { //HA VAN MÁR PRODUCTMOVEMENT -- UPDATE if (r.DeliveryNote.DeliveryNoteItems[currentIndex].ProductMovement_Id != null) { var existingProductMovement = db.ProductMovements.Find(r.DeliveryNote.DeliveryNoteItems[currentIndex].ProductMovement_Id); var originalQuantity = existingProductMovement.Quantity; //HA NEM EGYEZNEK A MENNYISÉGEK VAGY A RAKTÁR, UPDATE if ( existingProductMovement.Quantity != r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity || existingProductMovement.Warehouse_Id != r.DeliveryNote.DeliveryNoteItems[currentIndex].Warehouse_Id ) { existingProductMovement.Quantity = (decimal)r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity; existingProductMovement.Warehouse_Id = (int)r.DeliveryNote.DeliveryNoteItems[currentIndex].Warehouse_Id; existingProductMovement.IsActive = r.DeliveryNote.DeliveryNoteItems[currentIndex] .ProductMovementIsActive; existingProductMovement.ChangedBy = Convert.ToInt32(sid); existingProductMovement.ChangedDate = DateTime.Now; db.Entry(existingProductMovement).State = EntityState.Modified; var quantityDifference = originalQuantity - (decimal)r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity; //HA VAN MENNYISÉG VÁLTOZÁS, PRODUCTSTOCK MÓDOSÍTÁSA if (quantityDifference != 0) { var currentProductStock = db.CurrentProductStocks.SingleOrDefault(c => c.Recipe_Id == currentRecipeId && c.Warehouse_Id == currentWarehouseId); currentProductStock.Quantity = currentProductStock.Quantity + quantityDifference; currentProductStock.ChangedBy = Convert.ToInt32(sid); currentProductStock.ChangedDate = DateTime.Now; db.Entry(currentProductStock).State = EntityState.Modified; } } } //HA MÉG NINCS PRODUCTMOVEMENT -- CREATE else { var productMovement = new ProductMovement { Recipe_Id = (int)r.DeliveryNote.DeliveryNoteItems[currentIndex].Recipe_Id, MovementType_Id = db.MovementTypes.SingleOrDefault(c => c.MovementKey == "issue").Id, Warehouse_Id = (int)r.DeliveryNote.DeliveryNoteItems[currentIndex].Warehouse_Id, Quantity = (decimal)r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity, Remark = r.DeliveryNote.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 == currentRecipeId); //HA NINCS A TERMÉKBŐL, HOZZÁADJUK if (!productexists.Any()) { db.CurrentProductStocks.Add(new CurrentProductStock { CreatedDate = DateTime.Now, CreatedBy = Convert.ToInt32(sid), IsActive = true, Recipe_Id = (int)r.DeliveryNote.DeliveryNoteItems[currentIndex].Recipe_Id, Warehouse_Id = (int)r.DeliveryNote.DeliveryNoteItems[currentIndex].Warehouse_Id, Quantity = -(decimal)r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity, }); } //HA VAN A TERMÉKBŐL, UPDATE else { var producttoupdate = db.CurrentProductStocks.First(i => i.Recipe_Id == currentRecipeId && i.Warehouse_Id == currentWarehouseId); var originalproductquantity = db.CurrentProductStocks.First(i => i.Recipe_Id == currentRecipeId && i.Warehouse_Id == currentWarehouseId).Quantity; var quantityDifference = originalproductquantity - (decimal)r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity; producttoupdate.Quantity = (decimal)(originalproductquantity + quantityDifference); producttoupdate.ChangedDate = DateTime.Now; producttoupdate.ChangedBy = Convert.ToInt32(sid); db.Entry(producttoupdate).State = EntityState.Modified; } //SZÁLLÍTÓLEVÉL TÉTELEK HOZZÁADÁSA var existingDeliveryNoteId = r.DeliveryNote.Id; var deliveryNoteItem = new DeliveryNoteItem { DeliveryNote_Id = existingDeliveryNoteId, ProductMovement = productMovement }; db.DeliveryNoteItems.Add(deliveryNoteItem); } } else { //HA TÖRÖLTEK SORT A SZÁLLÍTÓLEVÉLRŐL //DELIVERYNOTEITEM TÖRLÉSE var deliveryNoteItemToDelete = db.DeliveryNoteItems.Find(r.DeliveryNote.DeliveryNoteItems[currentIndex].Id); var affectedProductMovementId = deliveryNoteItemToDelete.ProductMovement_Id; db.Entry(deliveryNoteItemToDelete).State = EntityState.Deleted; //PRODUCTMOVEMENT ISACTIVE=0 var productMovementToDelete = db.ProductMovements.Find(affectedProductMovementId); var affectedRecipeId = productMovementToDelete.Recipe_Id; productMovementToDelete.IsActive = false; productMovementToDelete.ChangedBy = Convert.ToInt32(sid); productMovementToDelete.ChangedDate = DateTime.Now; db.Entry(productMovementToDelete).State = EntityState.Modified; //CURRENTPRODUCTSTOCK MÓDOSÍTÁSA var affectedCurrentProductStock = db.CurrentProductStocks.First(i => i.Recipe_Id == affectedRecipeId && i.Warehouse_Id == currentWarehouseId); var originalproductquantity = db.CurrentProductStocks.First(i => i.Recipe_Id == affectedRecipeId && i.Warehouse_Id == currentWarehouseId).Quantity; affectedCurrentProductStock.Quantity = (decimal)(originalproductquantity + (decimal)r.DeliveryNote.DeliveryNoteItems[currentIndex].Quantity); affectedCurrentProductStock.ChangedBy = Convert.ToInt32(sid); affectedCurrentProductStock.ChangedDate = DateTime.Now; db.Entry(affectedCurrentProductStock).State = EntityState.Modified; } } if (db.SaveChanges() > 0) { TempData["Operation"] = "success"; } else { TempData["Operation"] = "danger"; } return(RedirectToAction("Index", "CurrentProductStocks")); } return(View(r)); }
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)); }
public void SaveSummaryToDeliveryNoteItem(List <SummaryItemModel> model, int deliveryNoteID, int locationID, int supplierID, List <Item> atomes, int userID = 0) { try { using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork()) { foreach (var obj in model) { DeliveryNoteItem item = new DeliveryNoteItem(uow); item.DeliveryNoteItemID = 0; item.DeliveryNoteID = GetDeliveryNoteByID(deliveryNoteID, uow); item.MeasuringUnitID = measureRepo.GetMeasuringUnitByCode(obj.UnitOfMeasure, uow); item.PSN = obj.PSN; item.SID = obj.SID; item.SupplierProductCode = obj.ProducerProductCode; item.SupplierProductName = obj.ProducerProductName.Contains(" ") ? obj.ProducerProductName.Substring(0, obj.ProducerProductName.IndexOf(" ")) : obj.ProducerProductName; //poiščemo artikel v šifrantu po imenu če obstaja. Če ne dodamo novega var productItem = productRepo.GetProductByName(item.SupplierProductName, uow); if (productItem != null) { item.ProductID = productItem; } else // produkta še ni v bazi zato ustvarimo novega { Product prod = new Product(session); prod.ProductID = 0; prod.MeasuringUnitID = measureRepo.GetMeasuringUnitByCode(obj.UnitOfMeasure, session); prod.Name = item.SupplierProductName; prod.Notes = "Avtomatsko dodani artikel iz strani sistema ETT!"; prod.SupplierCode = item.SupplierProductCode; prod.CategoryID = categoryRepo.GetCategorieDefault(session); prod.SupplierID = clientRepo.GetClientByID(supplierID); int id = productRepo.SaveProduct(prod); item.ProductID = uow.GetObjectByKey <Product>(id); } var inventoryProd = productRepo.GetInventroyStockByProductIDAndLocationID(item.ProductID.ProductID, locationID, uow); var atome = atomes.Where(a => !String.IsNullOrEmpty(a.PackagesSIDs) && a.PackagesSIDs.Contains(obj.SID)).FirstOrDefault(); decimal atomeQuantity = 0M; if (atome != null) { atomeQuantity = atome.Quantity; } int atomeCount = atomes.Count(a => !String.IsNullOrEmpty(a.PackagesSIDs) && a.PackagesSIDs.Contains(obj.SID)); if (inventoryProd != null) { inventoryProd.Quantity += (atomeCount * atomeQuantity); inventoryProd.QuantityPcs += atomeCount; } else { InventoryStock inventory = new InventoryStock(session); inventory.InventoryStockID = 0; inventory.LocationID = locationRepo.GetLocationByID(locationID, session); inventory.Notes = "Avtomatsko dodano vodenje zaloge"; inventory.ProductID = productRepo.GetProductByID(item.ProductID.ProductID, session); inventory.Quantity = (atomeCount * atomeQuantity); inventory.QuantityPcs = atomeCount; productRepo.SaveInventoryStock(inventory); } //item.ProductID = ? Kako shraniti referenco na šifratn produktov ? Dinamično grajenje šifranta produktov ali?? item.Length = obj.Length; item.NEW = obj.NEW; item.ItemQuantity = obj.ItemQuantity; item.CountOfTradeUnits = obj.CountOfTradeUnits; item.PackagingLevel = obj.PackagingLevel; item.ProductionDate = obj.ProductionDate; item.ProductItemCount = obj.ProductItemCount; item.Notes = obj.Notes; item.tsUpdate = DateTime.Now; item.tsUpdateUserID = userID; item.tsInsert = DateTime.Now; item.tsInsertUserID = userID; } uow.CommitChanges(); } } catch (Exception ex) { string error = ""; CommonMethods.getError(ex, ref error); throw new Exception(CommonMethods.ConcatenateErrorIN_DB(DB_Exception.res_26, error, CommonMethods.GetCurrentMethodName())); } }