Пример #1
0
        public ActionResult _FilterPost(JobOrderAmendmentFilterViewModel vm)
        {
            List <JobOrderRateAmendmentLineViewModel> temp = _JobOrderRateAmendmentLineService.GetJobOrderLineForMultiSelect(vm).ToList();
            JobOrderAmendmentMasterDetailModel        svm  = new JobOrderAmendmentMasterDetailModel();

            svm.JobOrderRateAmendmentLineViewModel = temp;
            return(PartialView("_Results", svm));
        }
Пример #2
0
        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));
        }