public JsonResult SaveSaleItems(List <SaleReturnValidation> saleReturn) { SaleReturn newSaleReturn = new SaleReturn(); newSaleReturn.TotalBeforePercentage = saleReturn.Select(x => x.TotalBeforePercentage).FirstOrDefault(); decimal?totalAfterPercentage = saleReturn.Select(x => x.TotalAfterPercentage).FirstOrDefault(); newSaleReturn.TotalAfterPercentage = saleReturn.Select(x => x.TotalAfterPercentage).FirstOrDefault(); newSaleReturn.SpecialDiscount = saleReturn.Select(x => x.SpecialDiscount).FirstOrDefault(); newSaleReturn.AmountPaid = saleReturn.Select(x => x.AmountPaid).FirstOrDefault(); newSaleReturn.Arears = saleReturn.Select(x => x.Arears).FirstOrDefault(); newSaleReturn.DateOfSaleReturn = DateTime.Now; context.SaleReturns.Add(newSaleReturn); context.SaveChanges(); foreach (var n in saleReturn) { SaleReturnItem saleReturnItem = new SaleReturnItem(); var itemID = context.Items.Where(x => x.Name == n.Name).Select(x => x.ID).FirstOrDefault(); saleReturnItem.SaleReturnID = newSaleReturn.ID; saleReturnItem.ItemID = itemID; saleReturnItem.SalePercentage = n.SalePercentage; saleReturnItem.Quantity = n.Quantity; saleReturnItem.LoosePack = n.LoosePack; context.SaleReturnItems.Add(saleReturnItem); context.SaveChanges(); var Item = context.Items.Where(x => x.ID == itemID).FirstOrDefault(); if (n.LoosePack == "P") { Item.TotalStock += n.Quantity; } else if (n.LoosePack == "L") { Item.LooseQuantitySold += n.Quantity; if (Item.LooseQuantitySold >= n.PiecesPerPack) { int?packReturned = Item.LooseQuantitySold / n.PiecesPerPack; int?looseQuantityleftAfterPackomission = Item.LooseQuantitySold % n.PiecesPerPack; Item.TotalStock += packReturned; Item.LooseQuantitySold = looseQuantityleftAfterPackomission; } } //TODO: remove last line. just to save saleprice at run time Item.SalePrice = n.SalePrice; context.SaveChanges(); } return(Json(true)); }
private void detach_SaleReturnItems(SaleReturnItem entity) { this.SendPropertyChanging("SaleReturnItems"); entity.ItemInstance = null; }