public void Update(JobReceiveLine s) { s.ObjectState = ObjectState.Modified; _JobReceiveLineRepository.Update(s); }
public ActionResult ConfirmedJobReceives(List <JobReceiveQAWizardViewModel> ConfirmedList, int DocTypeId, string UserRemark, int QAById) { //System.Web.HttpContext.Current.Session["BalanceQtyAmendmentWizardOrders"] = ConfirmedList; //return Json(new { Success = "URL", Data = "/JobReceiveQAWizard/Create/" + DocTypeId }, JsonRequestBehavior.AllowGet); if (ConfirmedList.Count() > 0 && ConfirmedList.GroupBy(m => m.JobWorkerId).Count() > 1) { return(Json(new { Success = false, Data = " Multiple Headers are selected. " }, JsonRequestBehavior.AllowGet)); } else if (ConfirmedList.Count() == 0) { return(Json(new { Success = false, Data = " No Records are selected. " }, JsonRequestBehavior.AllowGet)); } else { int DivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"]; int SiteId = (int)System.Web.HttpContext.Current.Session["SiteId"]; bool BeforeSave = true; int Serial = 1; List <JobReceiveQALineViewModel> LineStatus = new List <JobReceiveQALineViewModel>(); try { BeforeSave = JobReceiveQADocEvents.beforeWizardSaveEvent(this, new JobEventArgs(0), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); return(Json(new { Success = false, Data = message }, JsonRequestBehavior.AllowGet)); } if (!BeforeSave) { TempData["CSEXC"] += "Failed validation before save"; } int Cnt = 0; int Sr = 0; JobReceiveQASettings Settings = new JobReceiveQASettingsService(db).GetJobReceiveQASettingsForDocument(DocTypeId, DivisionId, SiteId); int?MaxLineId = 0; if (ModelState.IsValid && BeforeSave && !EventException) { JobReceiveQAHeader pt = new JobReceiveQAHeader(); //Getting Settings pt.SiteId = SiteId; pt.JobWorkerId = ConfirmedList.FirstOrDefault().JobWorkerId; pt.DivisionId = DivisionId; pt.QAById = QAById; pt.ProcessId = Settings.ProcessId; pt.Remark = UserRemark; pt.DocTypeId = DocTypeId; pt.DocDate = DateTime.Now; pt.DocNo = new DocumentTypeService(_unitOfWork).FGetNewDocNo("DocNo", ConfigurationManager.AppSettings["DataBaseSchema"] + ".JobReceiveQAHeaders", pt.DocTypeId, pt.DocDate, pt.DivisionId, pt.SiteId); pt.ModifiedBy = User.Identity.Name; pt.ModifiedDate = DateTime.Now; pt.CreatedBy = User.Identity.Name; pt.CreatedDate = DateTime.Now; pt.Status = (int)StatusConstants.Drafted; pt.ObjectState = Model.ObjectState.Added; db.JobReceiveQAHeader.Add(pt); var SelectedJobReceives = ConfirmedList; var JobReceiveLineIds = SelectedJobReceives.Select(m => m.JobReceiveLineId).ToArray(); var JobReceiveBalanceRecords = (from p in db.ViewJobReceiveBalanceForQA where JobReceiveLineIds.Contains(p.JobReceiveLineId) select p).AsNoTracking().ToList(); var JobReceiveRecords = (from p in db.JobReceiveLine.Include(m => m.JobOrderLine) where JobReceiveLineIds.Contains(p.JobReceiveLineId) select p).AsNoTracking().ToList(); foreach (var item in SelectedJobReceives) { JobReceiveLine Recline = JobReceiveRecords.Where(m => m.JobReceiveLineId == item.JobReceiveLineId).FirstOrDefault(); var balRecline = JobReceiveBalanceRecords.Where(m => m.JobReceiveLineId == item.JobReceiveLineId).FirstOrDefault(); if (item.InspectionQty <= JobReceiveBalanceRecords.Where(m => m.JobReceiveLineId == item.JobReceiveLineId).FirstOrDefault().BalanceQty) { JobReceiveQALine line = new JobReceiveQALine(); line.JobReceiveQAHeaderId = pt.JobReceiveQAHeaderId; line.JobReceiveLineId = item.JobReceiveLineId; line.QAQty = balRecline.BalanceQty; line.UnitConversionMultiplier = Recline.JobOrderLine.UnitConversionMultiplier; line.Qty = item.Qty; line.DealQty = line.Qty * line.UnitConversionMultiplier; line.FailQty = line.QAQty - line.Qty; line.FailDealQty = line.FailQty * line.UnitConversionMultiplier; line.InspectedQty = item.InspectionQty; line.PenaltyAmt = item.PenaltyAmount; line.Remark = item.Remark; line.ProductUidId = Recline.ProductUidId; line.Sr = Serial++; line.JobReceiveQALineId = Cnt; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; LineStatus.Add(Mapper.Map <JobReceiveQALineViewModel>(line)); line.ObjectState = Model.ObjectState.Added; db.JobReceiveQALine.Add(line); Cnt = Cnt + 1; } } new JobReceiveLineStatusService(_unitOfWork).UpdateJobReceiveQtyQAMultiple(LineStatus, pt.DocDate, ref db); try { JobReceiveQADocEvents.onWizardSaveEvent(this, new JobEventArgs(pt.JobReceiveQAHeaderId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); return(Json(new { Success = false, Data = message }, JsonRequestBehavior.AllowGet)); } try { JobReceiveQADocEvents.afterWizardSaveEvent(this, new JobEventArgs(pt.JobReceiveQAHeaderId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(new ActiivtyLogViewModel { DocTypeId = pt.DocTypeId, DocId = pt.JobReceiveQAHeaderId, ActivityType = (int)ActivityTypeContants.Added, User = User.Identity.Name, DocNo = pt.DocNo, DocDate = pt.DocDate }); return(Json(new { Success = "URL", Data = "/JobReceiveQAHeader/Submit/" + pt.JobReceiveQAHeaderId }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { Success = false, Data = "ModelState is Invalid" }, JsonRequestBehavior.AllowGet)); } } }
public JobReceiveLine Create(JobReceiveLine S) { S.ObjectState = ObjectState.Added; _JobReceiveLineRepository.Add(S); return(S); }
public void Delete(JobReceiveLine s) { _JobReceiveLineRepository.Delete(s); }
public void Update(DyeingViewModel vmDyeing, string UserName) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); JobReceiveHeader temp = Find(vmDyeing.JobReceiveHeaderId); JobReceiveLine line = _JobReceiveLineService.GetJobReceiveLineListForHeader(vmDyeing.JobReceiveHeaderId).FirstOrDefault(); JobReceiveHeader ExRec = Mapper.Map <JobReceiveHeader>(temp); int?PersonId = (from L in _unitOfWork.Repository <JobOrderLine>().Instance join He in _unitOfWork.Repository <JobOrderHeaderExtended>().Instance on L.JobOrderHeaderId equals He.JobOrderHeaderId where L.JobOrderLineId == vmDyeing.JobOrderLineId select He).FirstOrDefault().PersonId; int status = temp.Status; if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; } temp.DocDate = vmDyeing.DocDate; temp.ProcessId = vmDyeing.ProcessId; temp.JobWorkerId = vmDyeing.JobWorkerId; temp.MachineId = vmDyeing.MachineId; temp.JobReceiveById = vmDyeing.JobReceiveById; temp.DocNo = vmDyeing.DocNo; temp.Remark = vmDyeing.Remark; temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = UserName; temp.ObjectState = Model.ObjectState.Modified; Update(temp); StockViewModel StockViewModel = new StockViewModel(); //Posting in Stock StockViewModel.StockHeaderId = temp.StockHeaderId ?? 0; StockViewModel.StockId = line.StockId ?? 0; StockViewModel.DocHeaderId = temp.JobReceiveHeaderId; StockViewModel.DocLineId = null; StockViewModel.DocTypeId = temp.DocTypeId; StockViewModel.StockHeaderDocDate = temp.DocDate; StockViewModel.StockDocDate = temp.DocDate; StockViewModel.DocNo = temp.DocNo; StockViewModel.DivisionId = temp.DivisionId; StockViewModel.SiteId = temp.SiteId; StockViewModel.CurrencyId = null; StockViewModel.HeaderProcessId = null; StockViewModel.PersonId = PersonId; StockViewModel.ProductId = vmDyeing.ProductId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = null; StockViewModel.GodownId = vmDyeing.GodownId; StockViewModel.ProcessId = null; StockViewModel.LotNo = vmDyeing.LotNo; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = vmDyeing.Qty; StockViewModel.Rate = 0; StockViewModel.ExpiryDate = null; StockViewModel.Specification = null; StockViewModel.Dimension1Id = vmDyeing.Dimension1Id; StockViewModel.Dimension2Id = vmDyeing.Dimension2Id; StockViewModel.Remark = temp.Remark; StockViewModel.ProductUidId = null; StockViewModel.Status = 0; StockViewModel.CreatedBy = UserName; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = UserName; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = _stockService.StockPostDB(ref StockViewModel); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = temp, }); if (temp.StockHeaderId != null && temp.StockHeaderId != 0) { StockHeader StockHeader = new StockHeaderService(_unitOfWork).Find((int)temp.StockHeaderId); StockHeader.DocDate = temp.DocDate; StockHeader.DocNo = temp.DocNo; new StockHeaderService(_unitOfWork).Update(StockHeader); } line.JobReceiveHeaderId = temp.JobReceiveHeaderId; line.JobOrderLineId = vmDyeing.JobOrderLineId; line.JobOrderLineId = vmDyeing.JobOrderLineId; line.Qty = vmDyeing.Qty; line.Sr = 1; line.LossQty = 0; line.DealQty = vmDyeing.Qty; line.DealUnitId = vmDyeing.UnitId; line.UnitConversionMultiplier = 1; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = UserName; line.ModifiedBy = UserName; line.ObjectState = Model.ObjectState.Modified; _JobReceiveLineService.Update(line); JobReceiveHeaderExtended HeaderExtended = _JobReceiveHeaderExtendedService.Find(temp.JobReceiveHeaderId); HeaderExtended.JobReceiveHeaderId = temp.JobReceiveHeaderId; HeaderExtended.StartDateTime = vmDyeing.StartDateTime.Value.AddHours(vmDyeing.StartDateTimeHour).AddMinutes(vmDyeing.StartDateTimeMinute); if (vmDyeing.CompletedDateTime != null) { HeaderExtended.CompletedDateTime = vmDyeing.CompletedDateTime.Value.AddHours(vmDyeing.CompletedDateTimeHour).AddMinutes(vmDyeing.CompletedDateTimeMinute); } HeaderExtended.LoadingTime = vmDyeing.LoadingTime; HeaderExtended.IsQCRequired = vmDyeing.IsQCRequired; HeaderExtended.DyeingType = vmDyeing.DyeingType; HeaderExtended.ObjectState = Model.ObjectState.Modified; _JobReceiveHeaderExtendedService.Update(HeaderExtended); XElement Modifications = _modificationCheck.CheckChanges(LogList); _unitOfWork.Save(); _logger.LogActivityDetail(logVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.JobReceiveHeaderId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); }
public DyeingViewModel Create(DyeingViewModel vmDyeing, string UserName) { JobReceiveHeader s = Mapper.Map <DyeingViewModel, JobReceiveHeader>(vmDyeing); int?PersonId = (from L in _unitOfWork.Repository <JobOrderLine>().Instance join He in _unitOfWork.Repository <JobOrderHeaderExtended>().Instance on L.JobOrderHeaderId equals He.JobOrderHeaderId where L.JobOrderLineId == vmDyeing.JobOrderLineId select He).FirstOrDefault().PersonId; s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = UserName; s.ModifiedBy = UserName; s.Status = (int)StatusConstants.Drafted; StockViewModel StockViewModel = new StockViewModel(); //Posting in Stock StockViewModel.StockHeaderId = s.StockHeaderId ?? 0; StockViewModel.DocHeaderId = s.JobReceiveHeaderId; StockViewModel.DocLineId = null; StockViewModel.DocTypeId = s.DocTypeId; StockViewModel.StockHeaderDocDate = s.DocDate; StockViewModel.StockDocDate = DateTime.Now.Date; StockViewModel.DocNo = s.DocNo; StockViewModel.DivisionId = s.DivisionId; StockViewModel.SiteId = s.SiteId; StockViewModel.CurrencyId = null; StockViewModel.HeaderProcessId = null; StockViewModel.PersonId = PersonId; StockViewModel.ProductId = vmDyeing.ProductId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = null; StockViewModel.GodownId = vmDyeing.GodownId; StockViewModel.ProcessId = null; StockViewModel.LotNo = vmDyeing.LotNo; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = vmDyeing.Qty; StockViewModel.Rate = 0; StockViewModel.ExpiryDate = null; StockViewModel.Specification = null; StockViewModel.Dimension1Id = vmDyeing.Dimension1Id; StockViewModel.Dimension2Id = vmDyeing.Dimension2Id; StockViewModel.Remark = s.Remark; StockViewModel.ProductUidId = null; StockViewModel.Status = 0; StockViewModel.CreatedBy = UserName; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = UserName; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = _stockService.StockPostDB(ref StockViewModel); if (s.StockHeaderId == null) { s.StockHeaderId = StockViewModel.StockHeaderId; } s.ObjectState = Model.ObjectState.Added; Create(s); //Line Save JobReceiveLine line = new JobReceiveLine(); line.JobReceiveHeaderId = s.JobReceiveHeaderId; line.JobOrderLineId = vmDyeing.JobOrderLineId; line.Qty = vmDyeing.Qty; line.PassQty = vmDyeing.Qty; line.Sr = 1; line.LotNo = vmDyeing.LotNo; line.LossQty = 0; line.DealQty = vmDyeing.Qty; line.DealUnitId = vmDyeing.UnitId; line.UnitConversionMultiplier = 1; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = UserName; line.ModifiedBy = UserName; line.StockId = StockViewModel.StockId; line.ObjectState = Model.ObjectState.Added; _JobReceiveLineService.Create(line); _JobReceiveLineStatusService.CreateLineStatus(line.JobReceiveLineId); JobReceiveHeaderExtended HeaderExtended = new JobReceiveHeaderExtended(); HeaderExtended.JobReceiveHeaderId = s.JobReceiveHeaderId; HeaderExtended.StartDateTime = vmDyeing.StartDateTime.Value.AddHours(vmDyeing.StartDateTimeHour).AddMinutes(vmDyeing.StartDateTimeMinute); if (vmDyeing.CompletedDateTime != null) { HeaderExtended.CompletedDateTime = vmDyeing.CompletedDateTime.Value.AddHours(vmDyeing.CompletedDateTimeHour).AddMinutes(vmDyeing.CompletedDateTimeMinute); } HeaderExtended.LoadingTime = vmDyeing.LoadingTime; HeaderExtended.IsQCRequired = vmDyeing.IsQCRequired; HeaderExtended.DyeingType = vmDyeing.DyeingType; HeaderExtended.ObjectState = Model.ObjectState.Added; _JobReceiveHeaderExtendedService.Create(HeaderExtended); //End Line Save _unitOfWork.Save(); vmDyeing.JobReceiveHeaderId = s.JobReceiveHeaderId; _logger.LogActivityDetail(logVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.JobReceiveHeaderId, ActivityType = (int)ActivityTypeContants.Added, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); return(vmDyeing); }
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 })); }
public ActionResult PostSummary(JobReceiveSummaryDetailViewModel vm) { //TempData["CSEXC"] = "Customize Test Exception"; List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); bool Modified = false; int Id = vm.JobReceiveHeaderId; var Header = _JobReceiveHeaderService.Find(Id); var JobReceives = (from p in db.JobReceiveLine join t in db.JobOrderLine on p.JobOrderLineId equals t.JobOrderLineId where p.JobReceiveHeaderId == Id group t by new { t.ProductId, t.JobOrderHeaderId } into g select g.Key).ToList(); foreach (var item in vm.JobReceiveSummaryViewModel) { // Receive Line which has return also and return has no weight then receive weight should be 0. //var ReceiveWithReturnLines = from p in db.JobReceiveLine // join t in db.JobOrderLine on p.JobOrderLineId equals t.JobOrderLineId // join t2 in db.JobReceiveLineStatus on p.JobReceiveLineId equals t2.JobReceiveLineId into table // from tab in table.DefaultIfEmpty() // where t.JobOrderHeaderId == item.JobOrderHeaderId && p.PassQty > 0 && p.JobReceiveHeaderId == Id && t.ProductId == item.ProductId // && (p.PassQty - (tab.ReturnQty ?? 0)) == 0 // select p; //foreach (var item3 in ReceiveWithReturnLines) //{ // item3.Weight = 0; // item3.ObjectState = Model.ObjectState.Modified; // _JobReceiveLineService.Update(item3); //} var ReceiveLines = (from p in db.JobReceiveLine join t in db.JobOrderLine on p.JobOrderLineId equals t.JobOrderLineId join t2 in db.JobReceiveLineStatus on p.JobReceiveLineId equals t2.JobReceiveLineId into table from tab in table.DefaultIfEmpty() where t.JobOrderHeaderId == item.JobOrderHeaderId && p.PassQty > 0 && p.JobReceiveHeaderId == Id && t.ProductId == item.ProductId && (p.PassQty - (tab.ReturnQty ?? 0)) > 0 select p).ToList(); bool ValidationError = ReceiveLines.Where(m => m.Weight > 0).Any() && ReceiveLines.Where(m => m.Weight == 0).Any(); if (ReceiveLines != null && ReceiveLines.Count > 0) { decimal Weight = item.Weight; decimal XWeight = ReceiveLines.Sum(m => m.Weight); decimal PassQty = ReceiveLines.Sum(m => m.PassQty); if (Weight != XWeight) { int i = 0; decimal WeightShortage = 0; decimal IndividualWeight = Math.Round((Weight / PassQty), 2); if (i == 0 && IndividualWeight * PassQty != Weight) { WeightShortage = (Weight - (IndividualWeight * PassQty)); } foreach (var item2 in ReceiveLines) { JobReceiveLine ExRec = new JobReceiveLine(); ExRec = Mapper.Map <JobReceiveLine>(item2); item2.Weight = IndividualWeight * item2.PassQty + (i == 0 ? WeightShortage : 0); item2.ModifiedBy = User.Identity.Name; item2.ModifiedDate = DateTime.Now; item2.ObjectState = Model.ObjectState.Modified; LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = item2, }); _JobReceiveLineService.Update(item2); i++; 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.ModifiedDate = DateTime.Now; 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 })); }
public ActionResult Post(JobReceiveHeaderViewModel svm) { bool TimePlanValidation = true; string ExceptionMsg = ""; bool Continue = true; JobReceiveHeader s = Mapper.Map <JobReceiveHeaderViewModel, JobReceiveHeader>(svm); List <WeavingReceiveWizardViewModel> JobOrdersAndQtys = (List <WeavingReceiveWizardViewModel>)System.Web.HttpContext.Current.Session["BarCodesWeavingWizardJobOrder"]; if (JobOrdersAndQtys.Count() <= 0) { ModelState.AddModelError("", "No Records Selected"); } int JobWorkerCnt = (from l in JobOrdersAndQtys group l by l.JobWorkerId into g select new { JobWorkerId = g.Key, }).Distinct().Count(); if (JobWorkerCnt > 1) { ModelState.AddModelError("", "Select any one Job Worker Orders."); } s.JobWorkerId = JobOrdersAndQtys.FirstOrDefault().JobWorkerId; svm.JobWorkerId = JobOrdersAndQtys.FirstOrDefault().JobWorkerId; #region DocTypeTimeLineValidation try { if (svm.JobReceiveHeaderId <= 0) { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue); } else { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; TimePlanValidation = false; } if (!TimePlanValidation) { TempData["CSEXC"] += ExceptionMsg; } #endregion if (ModelState.IsValid && (TimePlanValidation || Continue)) { if (svm.JobReceiveHeaderId <= 0) { if (JobOrdersAndQtys.Count() > 0) { s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; s.Status = (int)StatusConstants.Drafted; _JobReceiveHeaderService.Create(s); int Cnt = 0; int Sr = 0; JobReceiveSettings Settings = new JobReceiveSettingsService(_unitOfWork).GetJobReceiveSettingsForDocument(s.DocTypeId, s.DivisionId, s.SiteId); int ProductUidCountForJobOrderLine = 0; int pk = 0; var JobOrderLineIds = JobOrdersAndQtys.Select(m => m.JobOrderLineId).ToArray(); var BalQtyandUnits = (from p in db.ViewJobOrderBalance join t in db.Product on p.ProductId equals t.ProductId where JobOrderLineIds.Contains(p.JobOrderLineId) select new { BalQty = p.BalanceQty, JobOrderLineId = p.JobOrderLineId, UnitId = t.UnitId, }).ToList(); if (ModelState.IsValid) { foreach (var SelectedJobOrderLine in JobOrdersAndQtys) { if (SelectedJobOrderLine.JobOrderLineId > 0) { if (SelectedJobOrderLine.ToProductUidName != "" && SelectedJobOrderLine.ToProductUidName != null && SelectedJobOrderLine.FromProductUidName != "" && SelectedJobOrderLine.FromProductUidName != null) { if (SelectedJobOrderLine.Qty != (Convert.ToInt32(SelectedJobOrderLine.ToProductUidName) - Convert.ToInt32(SelectedJobOrderLine.FromProductUidName) + 1)) { string Msg = ""; Msg = "Qty and Barcode series does not match."; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } } ProductUidCountForJobOrderLine = 0; var JobOrderLine = new JobOrderLineService(_unitOfWork).Find((SelectedJobOrderLine.JobOrderLineId)); var Product = new ProductService(_unitOfWork).Find(JobOrderLine.ProductId); var bal = BalQtyandUnits.Where(m => m.JobOrderLineId == SelectedJobOrderLine.JobOrderLineId).FirstOrDefault(); if (SelectedJobOrderLine.Qty <= bal.BalQty) { for (int i = 0; i <= SelectedJobOrderLine.Qty - 1; i++) { int?ProductUidHeaderId = null; int?ProductUidId = null; var SisterSite = (from S in db.Site where S.PersonId == s.JobWorkerId select S).FirstOrDefault(); //if (!string.IsNullOrEmpty(Settings.SqlProcGenProductUID)) if (SisterSite == null) { ProductUidHeader ProdUidHeader = new ProductUidHeader(); ProdUidHeader.ProductUidHeaderId = Cnt; ProdUidHeader.ProductId = JobOrderLine.ProductId; ProdUidHeader.Dimension1Id = JobOrderLine.Dimension1Id; ProdUidHeader.Dimension2Id = JobOrderLine.Dimension2Id; ProdUidHeader.GenDocId = s.JobReceiveHeaderId; ProdUidHeader.GenDocNo = s.DocNo; ProdUidHeader.GenDocTypeId = s.DocTypeId; ProdUidHeader.GenDocDate = s.DocDate; ProdUidHeader.GenPersonId = s.JobWorkerId; ProdUidHeader.CreatedBy = User.Identity.Name; ProdUidHeader.CreatedDate = DateTime.Now; ProdUidHeader.ModifiedBy = User.Identity.Name; ProdUidHeader.ModifiedDate = DateTime.Now; ProdUidHeader.ObjectState = Model.ObjectState.Added; new ProductUidHeaderService(_unitOfWork).Create(ProdUidHeader); ProductUidHeaderId = ProdUidHeader.ProductUidHeaderId; string ProductUidName = (Convert.ToInt32(SelectedJobOrderLine.FromProductUidName) + ProductUidCountForJobOrderLine).ToString(); ProductUid ProdUid = new ProductUid(); ProdUid.ProductUidHeaderId = ProdUidHeader.ProductUidHeaderId; ProdUid.ProductUidName = ProductUidName; ProdUid.ProductId = JobOrderLine.ProductId; ProdUid.IsActive = true; ProdUid.CreatedBy = User.Identity.Name; ProdUid.CreatedDate = DateTime.Now; ProdUid.ModifiedBy = User.Identity.Name; ProdUid.ModifiedDate = DateTime.Now; ProdUid.GenLineId = null; ProdUid.GenDocId = s.JobReceiveHeaderId; ProdUid.GenDocNo = s.DocNo; ProdUid.GenDocTypeId = s.DocTypeId; ProdUid.GenDocDate = s.DocDate; ProdUid.GenPersonId = s.JobWorkerId; ProdUid.Dimension1Id = JobOrderLine.Dimension1Id; ProdUid.Dimension2Id = JobOrderLine.Dimension2Id; ProdUid.CurrenctProcessId = s.ProcessId; ProdUid.CurrenctGodownId = s.GodownId; ProdUid.Status = "Receive"; ProdUid.LastTransactionDocId = s.JobReceiveHeaderId; ProdUid.LastTransactionDocNo = s.DocNo; ProdUid.LastTransactionDocTypeId = s.DocTypeId; ProdUid.LastTransactionDocDate = s.DocDate; ProdUid.LastTransactionPersonId = s.JobWorkerId; ProdUid.LastTransactionLineId = null; ProdUid.ProductUIDId = pk; new ProductUidService(_unitOfWork).Create(ProdUid); ProductUidId = ProdUid.ProductUIDId; } if (ProductUidId == null) { string ProductUidName = (Convert.ToInt32(SelectedJobOrderLine.FromProductUidName) + ProductUidCountForJobOrderLine).ToString(); var temp = new ProductUidService(_unitOfWork).Find(ProductUidName); if (temp != null) { ProductUidId = temp.ProductUIDId; } else { string Msg = ProductUidName + " is not a valid barcode."; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } if (temp.CurrenctGodownId != null) { string Msg = ProductUidName + " is already in Stock at Godown " + new GodownService(_unitOfWork).Find(temp.CurrenctGodownId ?? 0).GodownName; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } if (temp.LastTransactionPersonId != s.JobWorkerId) { string Msg = ProductUidName + ProductUidName + " does not belong to this Job Worker"; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } } StockViewModel StockViewModel = new StockViewModel(); if (Cnt == 0) { StockViewModel.StockHeaderId = s.StockHeaderId ?? 0; } else { if (s.StockHeaderId != null && s.StockHeaderId != 0) { StockViewModel.StockHeaderId = (int)s.StockHeaderId; } else { StockViewModel.StockHeaderId = -1; } } StockViewModel.StockId = -Cnt; StockViewModel.DocHeaderId = s.JobReceiveHeaderId; StockViewModel.DocLineId = null; StockViewModel.DocTypeId = s.DocTypeId; StockViewModel.StockHeaderDocDate = s.DocDate; StockViewModel.StockDocDate = s.DocDate; StockViewModel.DocNo = s.DocNo; StockViewModel.DivisionId = s.DivisionId; StockViewModel.SiteId = s.SiteId; StockViewModel.CurrencyId = null; StockViewModel.PersonId = s.JobWorkerId; StockViewModel.ProductId = JobOrderLine.ProductId; //StockViewModel.ProductUidId = ProdUid.ProductUIDId; StockViewModel.ProductUidId = ProductUidId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = s.GodownId; StockViewModel.HeaderProcessId = s.ProcessId; StockViewModel.GodownId = (int)s.GodownId; StockViewModel.Remark = s.Remark; StockViewModel.Status = s.Status; StockViewModel.ProcessId = s.ProcessId; StockViewModel.LotNo = null; StockViewModel.CostCenterId = SelectedJobOrderLine.CostCenterId; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = 1; StockViewModel.Rate = SelectedJobOrderLine.Rate; StockViewModel.ExpiryDate = null; StockViewModel.Specification = JobOrderLine.Specification; StockViewModel.Dimension1Id = JobOrderLine.Dimension1Id; StockViewModel.Dimension2Id = JobOrderLine.Dimension2Id; StockViewModel.CreatedBy = User.Identity.Name; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = User.Identity.Name; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPost(ref StockViewModel); if (StockPostingError != "") { string message = StockPostingError; ModelState.AddModelError("", message); return(View("Create", svm)); } if (Cnt == 0) { s.StockHeaderId = StockViewModel.StockHeaderId; } JobReceiveLine line = new JobReceiveLine(); line.StockId = StockViewModel.StockId; //line.ProductUidHeaderId = ProdUidHeader.ProductUidHeaderId; line.ProductUidHeaderId = ProductUidHeaderId; //line.ProductUidId = ProdUid.ProductUIDId; line.ProductUidId = ProductUidId; line.JobReceiveHeaderId = s.JobReceiveHeaderId; line.JobOrderLineId = JobOrderLine.JobOrderLineId; line.Qty = 1; line.PassQty = 1; line.LossQty = 0; line.UnitConversionMultiplier = JobOrderLine.UnitConversionMultiplier; line.DealQty = 1 * JobOrderLine.UnitConversionMultiplier; line.DealUnitId = JobOrderLine.DealUnitId; line.Sr = Sr++; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.JobReceiveLineId = pk; line.ObjectState = Model.ObjectState.Added; new JobReceiveLineService(_unitOfWork).Create(line); new JobReceiveLineStatusService(_unitOfWork).CreateLineStatus(line.JobReceiveLineId, ref db, false); pk++; Cnt = Cnt + 1; ProductUidCountForJobOrderLine++; } } } } } string Errormessage = ""; try { _unitOfWork.Save(); } catch (Exception ex) { Errormessage = _exception.HandleException(ex); ModelState.AddModelError("", Errormessage); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } IEnumerable <JobReceiveLine> JobReceiveLineList = new JobReceiveLineService(_unitOfWork).GetJobReceiveLineList(s.JobReceiveHeaderId); foreach (JobReceiveLine Line in JobReceiveLineList) { if (Line.ProductUidId != null) { ProductUid ProductUid = new ProductUidService(_unitOfWork).Find((int)Line.ProductUidId); ProductUid.GenDocId = Line.JobReceiveHeaderId; ProductUid.LastTransactionDocId = Line.JobReceiveHeaderId; ProductUid.GenLineId = Line.JobReceiveLineId; ProductUid.LastTransactionLineId = Line.JobReceiveLineId; new ProductUidService(_unitOfWork).Update(ProductUid); } } try { _unitOfWork.Save(); } catch (Exception ex) { Errormessage = _exception.HandleException(ex); ModelState.AddModelError("", Errormessage); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.JobReceiveHeaderId, ActivityType = (int)ActivityTypeContants.WizardCreate, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); System.Web.HttpContext.Current.Session.Remove("BarCodesWeavingWizardJobOrder"); return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Modify/" + s.JobReceiveHeaderId)); } else { return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Index/" + s.DocTypeId)); } } else { } } PrepareViewBag(); ViewBag.Mode = "Add"; //return Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Submit/"+s.JobReceiveHeaderId); return(View("Create", svm)); }