public ActionResult _FilterPost(JobOrderAmendmentFilterViewModel vm) { List <JobOrderRateAmendmentLineViewModel> temp = _JobOrderRateAmendmentLineService.GetJobOrderLineForMultiSelect(vm).ToList(); JobOrderAmendmentMasterDetailModel svm = new JobOrderAmendmentMasterDetailModel(); svm.JobOrderRateAmendmentLineViewModel = temp; return(PartialView("_Results", svm)); }
public ActionResult _ResultsPost(JobOrderAmendmentMasterDetailModel vm) { int Serial = _JobOrderRateAmendmentLineService.GetMaxSr(vm.JobOrderRateAmendmentLineViewModel.FirstOrDefault().JobOrderAmendmentHeaderId); var Header = new JobOrderAmendmentHeaderService(_unitOfWork).Find(vm.JobOrderRateAmendmentLineViewModel.FirstOrDefault().JobOrderAmendmentHeaderId); Dictionary <int, decimal> LineStatus = new Dictionary <int, decimal>(); JobOrderSettings Settings = new JobOrderSettingsService(_unitOfWork).GetJobOrderSettingsForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); #region BeforeSave bool BeforeSave = true; try { BeforeSave = JobOrderAmendmentDocEvents.beforeLineSaveBulkEvent(this, new JobEventArgs(vm.JobOrderRateAmendmentLineViewModel.FirstOrDefault().JobOrderAmendmentHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save"); } #endregion if (ModelState.IsValid && BeforeSave && !EventException) { foreach (var item in vm.JobOrderRateAmendmentLineViewModel.Where(m => (m.AmendedRate - m.JobOrderRate) != 0 && m.AAmended == false)) { JobOrderRateAmendmentLine line = new JobOrderRateAmendmentLine(); line.JobOrderAmendmentHeaderId = item.JobOrderAmendmentHeaderId; line.JobOrderLineId = item.JobOrderLineId; line.Qty = item.Qty; line.AmendedRate = item.AmendedRate; line.Rate = item.AmendedRate - item.JobOrderRate; line.Amount = DecimalRoundOff.amountToFixed((item.DealQty * line.Rate), Settings.AmountRoundOff); line.JobOrderRate = item.JobOrderRate; line.JobWorkerId = item.JobWorkerId; line.Sr = Serial++; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.Remark = item.Remark; LineStatus.Add(line.JobOrderLineId, line.Rate); line.ObjectState = Model.ObjectState.Added; db.JobOrderRateAmendmentLine.Add(line); //_JobOrderRateAmendmentLineService.Create(line); } if (Header.Status != (int)StatusConstants.Drafted && Header.Status != (int)StatusConstants.Import) { Header.Status = (int)StatusConstants.Modified; Header.ModifiedBy = User.Identity.Name; Header.ModifiedDate = DateTime.Now; } Header.ObjectState = Model.ObjectState.Modified; db.JobOrderAmendmentHeader.Add(Header); new JobOrderLineStatusService(_unitOfWork).UpdateJobRateOnAmendmentMultiple(LineStatus, Header.DocDate, ref db); try { JobOrderAmendmentDocEvents.onLineSaveBulkEvent(this, new JobEventArgs(vm.JobOrderRateAmendmentLineViewModel.FirstOrDefault().JobOrderAmendmentHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Results", vm)); } try { JobOrderAmendmentDocEvents.afterLineSaveBulkEvent(this, new JobEventArgs(vm.JobOrderRateAmendmentLineViewModel.FirstOrDefault().JobOrderAmendmentHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.JobOrderAmendmentHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }