Example #1
0
        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));
        }