public JsonResult UpdateInvoiceSale(tblSale sale, List<tblSalesDetail> salesDetail, List<int> deleted) { MasterMVCPOS.Helper.AppHelper.ReturnMessage retMessage = new AppHelper.ReturnMessage(); ASPNETMASTERPOSTEntities db = new ASPNETMASTERPOSTEntities(); retMessage.IsSuccess = true; try { if (deleted != null) { foreach (var item in deleted) { var data = db.tblSalesDetails.Where(x => x.SalesDetailId == item).FirstOrDefault(); db.tblSalesDetails.Remove(data); } } foreach (var item in salesDetail) { if (item.SalesDetailId > 0) { db.Entry(item).State = EntityState.Modified; retMessage.Message = "Update successfully!"; } else { //sale.tblSalesDetails.Add(new tblSalesDetail { ProductId = item.ProductId, UnitPrice = item.UnitPrice, Quantity = item.Quantity, LineTotal = item.LineTotal }); var prd = db.tblProductStocks.Where(x => x.ProductId == item.ProductId && x.Quantity > 0).FirstOrDefault(); prd.Quantity = prd.Quantity - item.Quantity; db.Entry(prd).State = EntityState.Modified; db.tblSalesDetails.Add(tblSaleDetail); retMessage.Message = "Save successfully!"; } } //tblsale = sale; db.Entry(tblsale).State = EntityState.Modified; db.SaveChanges(); } catch (Exception ex) { retMessage.IsSuccess = false; } return Json(retMessage, JsonRequestBehavior.AllowGet); }