public ActionResult Edit(string id) { ReceivingModel receiving = new ReceivingModel(service.GetSingle(id, AuthenticationHelper.CompanyId.Value)); receiving.ReceivingDetail = service.GetAllReceivingDetail(receiving.Id).Select(x => new ReceivingDetailModel(x, true)).ToList(); if (receiving.ReceivingDetail != null && receiving.ReceivingDetail.Count() > 0) { foreach (var detail in receiving.ReceivingDetail) { PurchaseOrderDetail currentPODetail = poService.GetSinglePODetail(detail.PODetailId); List <ReceivingDetail> totalReceived = service.GetAllByPODetailId(detail.PODetailId).Where(rec => rec.ReceiptId < Convert.ToInt64(id)).ToList(); detail.BalanceQty = currentPODetail.Quantity - (totalReceived.Count() > 0 ? (totalReceived.Sum(rec => rec.Quantity) + detail.ThisPurchaseQty) : detail.ThisPurchaseQty); detail.OrderQty = currentPODetail.Quantity; detail.PurchaseQty = totalReceived.Count() > 0 ? totalReceived.Sum(rec => rec.Quantity) : 0; detail.ThisPurchaseQty = detail.ThisPurchaseQty; } } SessionHelper.Receiving = receiving; receiving.POs = poService.GetAllPO(AuthenticationHelper.CompanyId.Value, SessionHelper.SOBId). Select(x => new SelectListItem { Text = x.PONo, Value = x.Id.ToString() }).ToList(); ViewBag.PO = poService.GetSingle(receiving.POId.ToString(), AuthenticationHelper.CompanyId.Value); return(View("Edit", receiving)); }