public ActionResult GetBarCodesForIAP(int id) { var Header = _JobReceiveHeaderService.Find(id); var JobReceives = (from p in db.JobReceiveLine join t in db.JobOrderLine on p.JobOrderLineId equals t.JobOrderLineId join rl in db.JobReturnLine on p.JobReceiveLineId equals rl.JobReceiveLineId into retlinetable from rlintab in retlinetable.DefaultIfEmpty() join t2 in db.Product on t.ProductId equals t2.ProductId join t3 in db.Units on t.DealUnitId equals t3.UnitId join t4 in db.ProductUid on p.ProductUidId equals t4.ProductUIDId where p.JobReceiveHeaderId == id orderby p.Sr select new JobReceiveIAPSummaryViewModel { ProductName = t2.ProductName, ProductUidId = t4.ProductUIDId, ProductUidName = t4.ProductUidName, DealQty = t.UnitConversionMultiplier * p.PassQty, DealUnitName = t3.UnitName, MaxDecPlaces = t3.DecimalPlaces, IncentiveAmt = p.IncentiveAmt ?? 0, PenalityAmt = p.PenaltyAmt, Remark = p.Remark, IsReturned = (rlintab != null) }).ToList(); JobReceiveIAPSummaryDetailViewModel vm = new JobReceiveIAPSummaryDetailViewModel(); vm.JobReceiveHeaderId = id; vm.DocTypeId = Header.DocTypeId; vm.DocData = Header.DocDate; vm.JobWorkerId = Header.JobWorkerId; vm.JobReceiveIAPSummaryViewModel = JobReceives; PrepareViewBag(id); if (JobReceives.Count == 0) { return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Index/" + Header.DocTypeId)); } else { return(View("SummaryIAP", vm)); } }
public ActionResult PostIAPSummary(JobReceiveIAPSummaryDetailViewModel vm) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); bool Modified = false; int Id = vm.JobReceiveHeaderId; var Header = _JobReceiveHeaderService.Find(Id); int[] BarCodes = vm.JobReceiveIAPSummaryViewModel.Select(m => m.ProductUidId).ToArray(); var ReceiveLines = (from p in db.JobReceiveLine where p.JobReceiveHeaderId == Id && p.ProductUidId != null && BarCodes.Contains(p.ProductUidId.Value) select p); foreach (var item in vm.JobReceiveIAPSummaryViewModel) { var ReceiveLine = ReceiveLines.Where(m => m.ProductUidId == item.ProductUidId).FirstOrDefault(); if (ReceiveLine.PenaltyAmt != item.PenalityAmt || (ReceiveLine.IncentiveAmt != item.IncentiveAmt) || ReceiveLine.Remark != item.Remark) { JobReceiveLine ExRec = new JobReceiveLine(); ExRec = Mapper.Map <JobReceiveLine>(ReceiveLine); ReceiveLine.PenaltyAmt = item.PenalityAmt; ReceiveLine.IncentiveAmt = item.IncentiveAmt; ReceiveLine.Remark = item.Remark; ReceiveLine.ModifiedBy = User.Identity.Name; ReceiveLine.ModifiedDate = DateTime.Now; ReceiveLine.ObjectState = Model.ObjectState.Modified; LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = ReceiveLine, }); _JobReceiveLineService.Update(ReceiveLine); Modified = true; } } if ((Header.Status != (int)StatusConstants.Drafted && Header.Status != (int)StatusConstants.Import) && Modified) { Header.Status = (int)StatusConstants.Modified; Header.ModifiedBy = User.Identity.Name; } Header.ObjectState = Model.ObjectState.Modified; new JobReceiveHeaderService(_unitOfWork).Update(Header); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); PrepareViewBag(vm.JobReceiveHeaderId); return(Json(new { Success = false })); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.JobReceiveHeaderId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = Header.DocNo, xEModifications = Modifications, DocDate = Header.DocDate, DocStatus = Header.Status, })); string RetUrl = ""; if (Header.Status == (int)StatusConstants.Drafted || Header.Status == (int)StatusConstants.Import) { RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Modify/" + Header.JobReceiveHeaderId); } else if (Header.Status == (int)StatusConstants.Submitted || Header.Status == (int)StatusConstants.ModificationSubmitted || Header.Status == (int)StatusConstants.Modified) { RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/ModifyAfter_Submit/" + Header.JobReceiveHeaderId); } else if (Header.Status == (int)StatusConstants.Approved || Header.Status == (int)StatusConstants.Closed) { RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/ModifyAfter_Approve/" + Header.JobReceiveHeaderId); } else { RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Index/" + Header.DocTypeId); } return(Json(new { Success = true, Url = RetUrl })); }