private void PrepareViewBag(StockLineViewModel vm) { ViewBag.DeliveryUnitList = new UnitService(_unitOfWork).GetUnitList().ToList(); StockHeaderViewModel H = new StockHeaderService(_unitOfWork).GetStockHeader(vm.StockHeaderId); ViewBag.DocNo = H.DocTypeName + "-" + H.DocNo; }
public ActionResult RateConversion_OnSubmit(int Id, string ReturnUrl) { StockHeader Header = new StockHeaderService(_unitOfWork).Find(Id); string ConnectionString = (string)System.Web.HttpContext.Current.Session["DefaultConnectionString"]; try { DataSet ds = new DataSet(); //using (SqlConnection sqlConnection = new SqlConnection(ConnectionString)) //{ // sqlConnection.Open(); // using (SqlCommand cmd = new SqlCommand("" + ConfigurationManager.AppSettings["DataBaseSchema"] + ".Mig_RateConversionLedgerPosting")) // { // cmd.CommandType = CommandType.StoredProcedure; // cmd.Connection = sqlConnection; // cmd.Parameters.AddWithValue("@StockHeaderId", Id); // cmd.CommandTimeout = 1000; // cmd.ExecuteNonQuery(); // } //} } catch (Exception ex) { Header.Status = (int)StatusConstants.Drafted; new StockHeaderService(_unitOfWork).Update(Header); _unitOfWork.Save(); throw ex; } return(Redirect(ReturnUrl)); }
public ActionResult _Create(int Id) //Id ==>Sale Order Header Id { StockHeader H = new StockHeaderService(_unitOfWork).Find(Id); StockLineViewModel s = new StockLineViewModel(); //Getting Settings var settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(H.DocTypeId, H.DivisionId, H.SiteId); s.StockHeaderSettings = Mapper.Map <StockHeaderSettings, StockHeaderSettingsViewModel>(settings); s.DocumentTypeSettings = new DocumentTypeSettingsService(_unitOfWork).GetDocumentTypeSettingsForDocument(H.DocTypeId); s.PersonId = H.PersonId; s.StockHeaderId = H.StockHeaderId; s.GodownId = H.GodownId; ViewBag.Status = H.Status; PrepareViewBag(s); if (!string.IsNullOrEmpty((string)TempData["CSEXCL"])) { ViewBag.CSEXCL = TempData["CSEXCL"]; TempData["CSEXCL"] = null; } ViewBag.LineMode = "Create"; return(PartialView("_Create", s)); }
public ActionResult _ForRequisition(int id, int sid) { RequisitionFiltersForIssue vm = new RequisitionFiltersForIssue(); StockHeader Header = new StockHeaderService(_unitOfWork).Find(id); vm.DocumentTypeSettings = new DocumentTypeSettingsService(_unitOfWork).GetDocumentTypeSettingsForDocument(Header.DocTypeId); vm.StockHeaderId = id; vm.PersonId = sid; return(PartialView("_Filters", vm)); }
public ActionResult _FilterPost(StockLineFilterViewModel vm) { List <StockLineViewModel> temp = _StockLineService.GetJobConsumptionForFilters(vm).ToList(); StockMasterDetailModel svm = new StockMasterDetailModel(); svm.StockLineViewModel = temp; StockHeader Header = new StockHeaderService(_unitOfWork).Find(vm.StockHeaderId); StockHeaderSettings settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); svm.StockHeaderSettings = Mapper.Map <StockHeaderSettings, StockHeaderSettingsViewModel>(settings); return(PartialView("_Results", svm)); }
public ActionResult _FilterPost(RequisitionFiltersForIssue vm, string All) { List <StockLineViewModel> temp = _StockLineService.GetRequisitionsForFilters(vm, (string.IsNullOrEmpty(All) ? false : true)).ToList(); StockMasterDetailModel svm = new StockMasterDetailModel(); svm.StockLineViewModel = temp; //Getting Settings var Header = new StockHeaderService(_unitOfWork).Find(vm.StockHeaderId); svm.StockHeaderSettings = Mapper.Map <StockHeaderSettings, StockHeaderSettingsViewModel>(new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId)); return(PartialView("_Results", svm)); }
private ActionResult _Delete(int id) { StockLineViewModel temp = _StockLineService.GetStockLineForIssue(id); if (temp == null) { return(HttpNotFound()); } #region DocTypeTimeLineValidation try { TimePlanValidation = DocumentValidation.ValidateDocumentLine(new DocumentUniqueId { LockReason = temp.LockReason }, User.Identity.Name, out ExceptionMsg, out Continue); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; TimePlanValidation = false; } if (!TimePlanValidation) { TempData["CSEXCL"] += ExceptionMsg; } #endregion if ((TimePlanValidation || Continue)) { ViewBag.LineMode = "Delete"; } StockHeader H = new StockHeaderService(_unitOfWork).Find(temp.StockHeaderId); //Getting Settings var settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(H.DocTypeId, H.DivisionId, H.SiteId); temp.StockHeaderSettings = Mapper.Map <StockHeaderSettings, StockHeaderSettingsViewModel>(settings); temp.DocumentTypeSettings = new DocumentTypeSettingsService(_unitOfWork).GetDocumentTypeSettingsForDocument(H.DocTypeId); temp.GodownId = H.GodownId; PrepareViewBag(temp); return(PartialView("_Create", temp)); }
public ActionResult _Multi(int id, int sid, int?CosCenteId, int ProcId) { StockLineFilterViewModel vm = new StockLineFilterViewModel(); StockHeader Header = new StockHeaderService(_unitOfWork).Find(id); StockHeaderSettings Settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); vm.StockHeaderSettings = Mapper.Map <StockHeaderSettings, StockHeaderSettingsViewModel>(Settings); vm.StockHeaderId = id; vm.JobWorkerId = sid; vm.CostCenterId = CosCenteId; vm.ProcessId = ProcId; return(PartialView("_Filters", vm)); }
public decimal GetExcessStock(int ProductId, int?Dim1, int?Dim2, int?ProcId, string Lot, int StockHeaderId, string ProcName) { StockHeader Header = new StockHeaderService(_unitOfWork).Find(StockHeaderId); decimal EXS = 0; using (SqlConnection sqlConnection = new SqlConnection((string)System.Web.HttpContext.Current.Session["DefaultConnectionString"])) { sqlConnection.Open(); SqlCommand Totalf = new SqlCommand("SELECT " + (string.IsNullOrEmpty(ProcName) ? "Web.FStockBalance" : ProcName) + "( " + ProductId + ", " + (!Dim1.HasValue ? "NULL" : "" + Dim1 + "") + ", " + (!Dim2.HasValue ? "NULL" : "" + Dim2 + "") + ", " + (!ProcId.HasValue ? "NULL" : "" + ProcId + "") + ", " + (string.IsNullOrEmpty(Lot) ? "NULL" : Lot) + ", " + Header.SiteId + ", NULL" + ", " + (!Header.GodownId.HasValue ? "NULL" : "" + Header.GodownId + "") + ")", sqlConnection); EXS = Convert.ToDecimal(Totalf.ExecuteScalar() == DBNull.Value ? 0 : Totalf.ExecuteScalar()); } return(EXS); }
public ActionResult _Detail(int id) { StockLineViewModel temp = _StockLineService.GetJobConsumptionLine(id); if (temp == null) { return(HttpNotFound()); } StockHeader H = new StockHeaderService(_unitOfWork).Find(temp.StockHeaderId); //Getting Settings var settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(H.DocTypeId, H.DivisionId, H.SiteId); temp.StockHeaderSettings = Mapper.Map <StockHeaderSettings, StockHeaderSettingsViewModel>(settings); temp.GodownId = H.GodownId; PrepareViewBag(temp); return(PartialView("_Create", temp)); }
public ActionResult Submitted(int Id, string IndexType, string UserRemark, string IsContinue) { bool BeforeSave = true; try { BeforeSave = JobConsumptionDocEvents.beforeHeaderSubmitEvent(this, new StockEventArgs(Id), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Falied validation before submit."; } StockHeader pd = new StockHeaderService(_unitOfWork).Find(Id); if (ModelState.IsValid && BeforeSave && !EventException) { if (User.Identity.Name == pd.ModifiedBy || UserRoles.Contains("Admin")) { int ActivityType; pd.Status = (int)StatusConstants.Submitted; ActivityType = (int)ActivityTypeContants.Submitted; pd.ReviewBy = null; pd.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(pd); try { JobConsumptionDocEvents.onHeaderSubmitEvent(this, new StockEventArgs(Id), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType })); } try { JobConsumptionDocEvents.afterHeaderSubmitEvent(this, new StockEventArgs(Id), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = pd.DocTypeId, DocId = pd.StockHeaderId, ActivityType = ActivityType, UserRemark = UserRemark, DocNo = pd.DocNo, DocDate = pd.DocDate, DocStatus = pd.Status, })); return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Success("Record Submitted Successfully")); } else { return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Warning("Record can be submitted by user " + pd.ModifiedBy + " only.")); } } return(View()); }
public ActionResult _ResultsPost(StockMasterDetailModel vm) { StockHeader temp = new StockHeaderService(_unitOfWork).Find(vm.StockLineViewModel.FirstOrDefault().StockHeaderId); StockHeaderSettings Settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(temp.DocTypeId, temp.DivisionId, temp.SiteId); bool BeforeSave = true; try { BeforeSave = JobConsumptionDocEvents.beforeLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save"); } int Cnt = 0; if (ModelState.IsValid && BeforeSave && !EventException) { foreach (var item in vm.StockLineViewModel) { if (item.Qty != 0 && (Settings.isMandatoryLineCostCenter == true ? item.CostCenterId.HasValue : 1 == 1)) { StockLine line = new StockLine(); line.StockHeaderId = item.StockHeaderId; line.Qty = item.Qty; line.ProductId = item.ProductId; line.LotNo = item.LotNo; line.Dimension1Id = item.Dimension1Id; line.Dimension2Id = item.Dimension2Id; line.Dimension3Id = item.Dimension3Id; line.Dimension4Id = item.Dimension4Id; line.CostCenterId = item.CostCenterId; line.FromProcessId = item.FromProcessId; line.Specification = item.Specification; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.DocNature = (item.Qty < 0 ? StockNatureConstants.Receive : StockNatureConstants.Issue); StockProcessViewModel StockProcessViewModel = new StockProcessViewModel(); if (temp.StockHeaderId != null && temp.StockHeaderId != 0)//If Transaction Header Table Has Stock Header Id Then It will Save Here. { StockProcessViewModel.StockHeaderId = (int)temp.StockHeaderId; } else if (Cnt > 0)//If function will only post in stock process then after first iteration of loop the stock header id will go -1 { StockProcessViewModel.StockHeaderId = -1; } else//If function will only post in stock process then this statement will execute.For Example Job consumption. { StockProcessViewModel.StockHeaderId = 0; } StockProcessViewModel.StockProcessId = -Cnt; StockProcessViewModel.DocHeaderId = temp.StockHeaderId; StockProcessViewModel.DocLineId = line.StockLineId; StockProcessViewModel.DocTypeId = temp.DocTypeId; StockProcessViewModel.StockHeaderDocDate = temp.DocDate; StockProcessViewModel.StockProcessDocDate = temp.DocDate; StockProcessViewModel.DocNo = temp.DocNo; StockProcessViewModel.DivisionId = temp.DivisionId; StockProcessViewModel.SiteId = temp.SiteId; StockProcessViewModel.CurrencyId = null; StockProcessViewModel.PersonId = temp.PersonId; StockProcessViewModel.ProductId = item.ProductId; StockProcessViewModel.HeaderFromGodownId = null; StockProcessViewModel.HeaderGodownId = temp.GodownId; StockProcessViewModel.HeaderProcessId = temp.ProcessId; StockProcessViewModel.GodownId = temp.GodownId; StockProcessViewModel.Remark = temp.Remark; StockProcessViewModel.Status = temp.Status; StockProcessViewModel.ProcessId = temp.ProcessId; StockProcessViewModel.LotNo = null; StockProcessViewModel.CostCenterId = item.CostCenterId; //StockProcessViewModel.Qty_Iss = item.Qty; //StockProcessViewModel.Qty_Rec = 0; if (item.Qty > 0) { StockProcessViewModel.Qty_Rec = item.Qty; StockProcessViewModel.Qty_Iss = 0; } else if (item.Qty < 0) { StockProcessViewModel.Qty_Rec = 0; StockProcessViewModel.Qty_Iss = Math.Abs(item.Qty); } StockProcessViewModel.Rate = item.Rate; StockProcessViewModel.ExpiryDate = null; StockProcessViewModel.Specification = item.Specification; StockProcessViewModel.Dimension1Id = item.Dimension1Id; StockProcessViewModel.Dimension2Id = item.Dimension2Id; StockProcessViewModel.Dimension3Id = item.Dimension3Id; StockProcessViewModel.Dimension4Id = item.Dimension4Id; StockProcessViewModel.CreatedBy = User.Identity.Name; StockProcessViewModel.CreatedDate = DateTime.Now; StockProcessViewModel.ModifiedBy = User.Identity.Name; StockProcessViewModel.ModifiedDate = DateTime.Now; string StockProcessPostingError = ""; StockProcessPostingError = new StockProcessService(_unitOfWork).StockProcessPostDB(ref StockProcessViewModel, ref db); if (StockProcessPostingError != "") { string message = StockProcessPostingError; ModelState.AddModelError("", message); return(PartialView("_Results", vm)); } line.StockProcessId = StockProcessViewModel.StockProcessId; line.ObjectState = Model.ObjectState.Added; db.StockLine.Add(line); //_StockLineService.Create(line); Cnt = Cnt + 1; } } if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedBy = User.Identity.Name; temp.ModifiedDate = DateTime.Now; temp.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(temp); } try { JobConsumptionDocEvents.onLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Results", vm)); } try { JobConsumptionDocEvents.afterLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.StockHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = temp.DocNo, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }
public ActionResult _CreatePost(StockLineViewModel svm) { StockHeader temp = new StockHeaderService(_unitOfWork).Find(svm.StockHeaderId); StockLine s = Mapper.Map <StockLineViewModel, StockLine>(svm); if (svm.StockHeaderSettings != null) { if (svm.StockHeaderSettings.isMandatoryProcessLine == true && (svm.FromProcessId <= 0 || svm.FromProcessId == null)) { ModelState.AddModelError("FromProcessId", "The Process field is required"); } if (svm.Rate <= 0) { ModelState.AddModelError("Rate", "The Rate field is required"); } if (svm.StockHeaderSettings.isMandatoryLineCostCenter == true && !(svm.CostCenterId.HasValue)) { ModelState.AddModelError("CostCenterId", "The CostCenter field is required"); } } bool BeforeSave = true; try { if (svm.StockLineId <= 0) { BeforeSave = RateConversionDocEvents.beforeLineSaveEvent(this, new StockEventArgs(svm.StockHeaderId, EventModeConstants.Add), ref db); } else { BeforeSave = RateConversionDocEvents.beforeLineSaveEvent(this, new StockEventArgs(svm.StockHeaderId, EventModeConstants.Edit), ref db); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save."); } if (svm.StockLineId <= 0) { ViewBag.LineMode = "Create"; } else { ViewBag.LineMode = "Edit"; } if (ModelState.IsValid && BeforeSave && !EventException) { if (svm.StockLineId <= 0) { StockProcessViewModel StockProcessViewModel = new StockProcessViewModel(); StockHeader StockHeader = new StockHeaderService(_unitOfWork).Find(temp.StockHeaderId); //Posting in StockProcess if (StockHeader.StockHeaderId != null) { StockProcessViewModel.StockHeaderId = StockHeader.StockHeaderId; } else { StockProcessViewModel.StockHeaderId = 0; } StockProcessViewModel.StockHeaderId = temp.StockHeaderId; StockProcessViewModel.DocHeaderId = temp.StockHeaderId; StockProcessViewModel.DocLineId = s.StockLineId; StockProcessViewModel.DocTypeId = temp.DocTypeId; StockProcessViewModel.StockHeaderDocDate = temp.DocDate; StockProcessViewModel.StockProcessDocDate = temp.DocDate; StockProcessViewModel.DocNo = temp.DocNo; StockProcessViewModel.DivisionId = temp.DivisionId; StockProcessViewModel.SiteId = temp.SiteId; StockProcessViewModel.CurrencyId = null; StockProcessViewModel.HeaderProcessId = null; StockProcessViewModel.PersonId = temp.PersonId; StockProcessViewModel.ProductId = s.ProductId; StockProcessViewModel.HeaderFromGodownId = temp.FromGodownId; StockProcessViewModel.HeaderGodownId = temp.GodownId; StockProcessViewModel.GodownId = temp.GodownId ?? 0; StockProcessViewModel.ProcessId = s.FromProcessId; StockProcessViewModel.LotNo = s.LotNo; StockProcessViewModel.CostCenterId = temp.CostCenterId; if (s.Qty < 0) { StockProcessViewModel.Qty_Rec = Math.Abs(s.Qty); StockProcessViewModel.Qty_Iss = 0; } else if (s.Qty > 0) { StockProcessViewModel.Qty_Iss = Math.Abs(s.Qty); StockProcessViewModel.Qty_Rec = 0; } StockProcessViewModel.Rate = s.Rate; StockProcessViewModel.ExpiryDate = null; StockProcessViewModel.Specification = s.Specification; StockProcessViewModel.Dimension1Id = s.Dimension1Id; StockProcessViewModel.Dimension2Id = s.Dimension2Id; StockProcessViewModel.Dimension3Id = s.Dimension3Id; StockProcessViewModel.Dimension4Id = s.Dimension4Id; StockProcessViewModel.Remark = s.Remark; StockProcessViewModel.Status = temp.Status; StockProcessViewModel.CreatedBy = temp.CreatedBy; StockProcessViewModel.CreatedDate = DateTime.Now; StockProcessViewModel.ModifiedBy = temp.ModifiedBy; StockProcessViewModel.ModifiedDate = DateTime.Now; string StockProcessPostingError = ""; StockProcessPostingError = new StockProcessService(_unitOfWork).StockProcessPostDB(ref StockProcessViewModel, ref db); if (StockProcessPostingError != "") { ModelState.AddModelError("", StockProcessPostingError); return(PartialView("_Create", svm)); } s.StockProcessId = StockProcessViewModel.StockProcessId; s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; s.DocNature = StockNatureConstants.Receive; s.ObjectState = Model.ObjectState.Added; //_StockLineService.Create(s); db.StockLine.Add(s); //StockHeader header = new StockHeaderService(_unitOfWork).Find(s.StockHeaderId); if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = User.Identity.Name; temp.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(temp); //new StockHeaderService(_unitOfWork).Update(temp); } try { RateConversionDocEvents.onLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, s.StockLineId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; PrepareViewBag(svm); return(PartialView("_Create", svm)); } try { RateConversionDocEvents.afterLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, s.StockLineId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.StockHeaderId, DocLineId = s.StockLineId, ActivityType = (int)ActivityTypeContants.Added, DocNo = temp.DocNo, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(RedirectToAction("_Create", new { id = svm.StockHeaderId })); } else { StockLine templine = _StockLineService.Find(s.StockLineId); List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); StockLine ExRec = new StockLine(); ExRec = Mapper.Map <StockLine>(templine); if (templine.StockProcessId != null) { StockProcessViewModel StockProcessViewModel = new StockProcessViewModel(); StockHeader StockHeader = new StockHeaderService(_unitOfWork).Find(temp.StockHeaderId); //Posting in StockProcess if (StockHeader.StockHeaderId != null) { StockProcessViewModel.StockHeaderId = StockHeader.StockHeaderId; } else { StockProcessViewModel.StockHeaderId = 0; } StockProcessViewModel.StockProcessId = templine.StockProcessId ?? 0; StockProcessViewModel.DocHeaderId = templine.StockHeaderId; StockProcessViewModel.DocLineId = templine.StockLineId; StockProcessViewModel.DocTypeId = temp.DocTypeId; StockProcessViewModel.StockHeaderDocDate = temp.DocDate; StockProcessViewModel.StockProcessDocDate = temp.DocDate; StockProcessViewModel.DocNo = temp.DocNo; StockProcessViewModel.DivisionId = temp.DivisionId; StockProcessViewModel.SiteId = temp.SiteId; StockProcessViewModel.CurrencyId = null; StockProcessViewModel.HeaderProcessId = temp.ProcessId; StockProcessViewModel.PersonId = temp.PersonId; StockProcessViewModel.ProductId = s.ProductId; StockProcessViewModel.HeaderFromGodownId = null; StockProcessViewModel.HeaderGodownId = temp.GodownId; StockProcessViewModel.GodownId = temp.GodownId; StockProcessViewModel.ProcessId = temp.ProcessId; StockProcessViewModel.LotNo = templine.LotNo; StockProcessViewModel.CostCenterId = templine.CostCenterId; if (s.Qty < 0) { StockProcessViewModel.Qty_Rec = Math.Abs(s.Qty); StockProcessViewModel.Qty_Iss = 0; } else if (s.Qty > 0) { StockProcessViewModel.Qty_Iss = Math.Abs(s.Qty); StockProcessViewModel.Qty_Rec = 0; } StockProcessViewModel.Rate = templine.Rate; StockProcessViewModel.ExpiryDate = null; StockProcessViewModel.Specification = templine.Specification; StockProcessViewModel.Dimension1Id = templine.Dimension1Id; StockProcessViewModel.Dimension2Id = templine.Dimension2Id; StockProcessViewModel.Dimension3Id = templine.Dimension3Id; StockProcessViewModel.Dimension4Id = templine.Dimension4Id; StockProcessViewModel.Remark = s.Remark; StockProcessViewModel.Status = temp.Status; StockProcessViewModel.CreatedBy = templine.CreatedBy; StockProcessViewModel.CreatedDate = templine.CreatedDate; StockProcessViewModel.ModifiedBy = User.Identity.Name; StockProcessViewModel.ModifiedDate = DateTime.Now; string StockProcessPostingError = ""; StockProcessPostingError = new StockProcessService(_unitOfWork).StockProcessPostDB(ref StockProcessViewModel, ref db); if (StockProcessPostingError != "") { ModelState.AddModelError("", StockProcessPostingError); return(PartialView("_Create", svm)); } } templine.Qty = s.Qty; templine.Remark = s.Remark; templine.Amount = s.Qty * s.Rate; templine.ModifiedDate = DateTime.Now; templine.ModifiedBy = User.Identity.Name; //_StockLineService.Update(templine); templine.ObjectState = Model.ObjectState.Modified; db.StockLine.Add(templine); if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedBy = User.Identity.Name; temp.ModifiedDate = DateTime.Now; temp.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(temp); //new StockHeaderService(_unitOfWork).Update(temp); } if (templine.CostCenterId.HasValue && templine.CostCenterId > 0) { var CostCenterStatus = db.CostCenterStatus.Find(templine.CostCenterId); if (CostCenterStatus != null) { //For Reducing Old Amount if (ExRec.Amount > 0) { CostCenterStatus.AmountDr = CostCenterStatus.AmountDr - ExRec.Amount; } else { CostCenterStatus.AmountCr = CostCenterStatus.AmountCr - ExRec.Amount; } //For Adding New Amount if (templine.Amount > 0) { CostCenterStatus.AmountDr = CostCenterStatus.AmountDr + templine.Amount; } else { CostCenterStatus.AmountCr = CostCenterStatus.AmountCr + templine.Amount; } CostCenterStatus.ObjectState = Model.ObjectState.Modified; db.CostCenterStatus.Add(CostCenterStatus); } } LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = templine, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { RateConversionDocEvents.onLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, templine.StockLineId, EventModeConstants.Edit), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; PrepareViewBag(svm); return(PartialView("_Create", svm)); } try { RateConversionDocEvents.afterLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, templine.StockLineId, EventModeConstants.Edit), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } //Saving the Activity Log LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = templine.StockHeaderId, DocLineId = templine.StockLineId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); //End of Saving the Activity Log return(Json(new { success = true })); } } PrepareViewBag(svm); return(PartialView("_Create", svm)); }
public ActionResult _CreatePost(StockLineViewModel svm) { StockHeader temp = new StockHeaderService(_unitOfWork).Find(svm.StockHeaderId); StockLine s = Mapper.Map <StockLineViewModel, StockLine>(svm); if (svm.StockHeaderSettings != null) { if (svm.StockHeaderSettings.isMandatoryProcessLine == true && (svm.FromProcessId <= 0 || svm.FromProcessId == null)) { ModelState.AddModelError("FromProcessId", "The Process field is required"); } if (svm.StockHeaderSettings.isMandatoryRate == true && svm.Rate <= 0) { ModelState.AddModelError("Rate", "The Rate field is required"); } if (svm.StockHeaderSettings.isMandatoryLineCostCenter == true && !svm.CostCenterId.HasValue) { ModelState.AddModelError("CostCenterId", "The Cost Center field is required"); } } bool BeforeSave = true; try { if (svm.StockLineId <= 0) { BeforeSave = StockIssueDocEvents.beforeLineSaveEvent(this, new StockEventArgs(svm.StockHeaderId, EventModeConstants.Add), ref db); } else { BeforeSave = StockIssueDocEvents.beforeLineSaveEvent(this, new StockEventArgs(svm.StockHeaderId, EventModeConstants.Edit), ref db); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save."); } if (svm.ProductId <= 0) { ModelState.AddModelError("ProductId", "The Product field is required"); } if (svm.StockLineId <= 0) { ViewBag.LineMode = "Create"; } else { ViewBag.LineMode = "Edit"; } if (ModelState.IsValid && BeforeSave && !EventException) { if (svm.StockLineId <= 0) { s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.DocNature = StockNatureConstants.Issue; s.ModifiedBy = User.Identity.Name; s.ProductUidId = svm.ProductUidId; s.Sr = _StockLineService.GetMaxSr(s.StockHeaderId); s.ObjectState = Model.ObjectState.Added; db.StockLine.Add(s); if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = User.Identity.Name; db.StockHeader.Add(temp); } try { StockIssueDocEvents.onLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, s.StockLineId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; PrepareViewBag(svm); return(PartialView("_Create", svm)); } try { StockIssueDocEvents.afterLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, s.StockLineId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.StockHeaderId, DocLineId = s.StockLineId, ActivityType = (int)ActivityTypeContants.Added, DocNo = temp.DocNo, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(RedirectToAction("_Create", new { id = svm.StockHeaderId })); } else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); int status = temp.Status; StockLine templine = _StockLineService.Find(s.StockLineId); StockLine ExRec = new StockLine(); ExRec = Mapper.Map <StockLine>(templine); templine.ProductId = s.ProductId; templine.ProductUidId = s.ProductUidId; templine.RequisitionLineId = s.RequisitionLineId; templine.Specification = s.Specification; templine.Dimension1Id = s.Dimension1Id; templine.Dimension2Id = s.Dimension2Id; templine.Dimension3Id = s.Dimension3Id; templine.Dimension4Id = s.Dimension4Id; templine.CostCenterId = s.CostCenterId; templine.DocNature = StockNatureConstants.Issue; templine.Rate = s.Rate; templine.Amount = s.Amount; templine.LotNo = s.LotNo; templine.FromProcessId = s.FromProcessId; templine.Remark = s.Remark; templine.Qty = s.Qty; templine.Remark = s.Remark; templine.ReferenceDocId = s.ReferenceDocId; templine.ReferenceDocTypeId = s.ReferenceDocTypeId; templine.ModifiedDate = DateTime.Now; templine.ModifiedBy = User.Identity.Name; templine.ObjectState = Model.ObjectState.Modified; db.StockLine.Add(templine); //if (templine.RequisitionLineId.HasValue) // new RequisitionLineStatusService(_unitOfWork).UpdateRequisitionQtyOnIssue(templine.RequisitionLineId.Value, templine.StockLineId, temp.DocDate, templine.Qty, ref db, true); if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedBy = User.Identity.Name; temp.ModifiedDate = DateTime.Now; temp.ObjectState = Model.ObjectState.Modified; } db.StockHeader.Add(temp); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = templine, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { StockIssueDocEvents.onLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, templine.StockLineId, EventModeConstants.Edit), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; PrepareViewBag(svm); return(PartialView("_Create", svm)); } try { StockIssueDocEvents.afterLineSaveEvent(this, new StockEventArgs(s.StockHeaderId, templine.StockLineId, EventModeConstants.Edit), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } //Saving the Activity Log LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = templine.StockHeaderId, DocLineId = templine.StockLineId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); //End of Saving the Activity Log return(Json(new { success = true })); } } PrepareViewBag(svm); return(PartialView("_Create", svm)); }
public ActionResult _ResultsPost(StockMasterDetailModel vm) { int Cnt = 0; StockHeader Header = new StockHeaderService(_unitOfWork).Find(vm.StockLineViewModel.FirstOrDefault().StockHeaderId); StockHeaderSettings Settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); bool BeforeSave = true; try { BeforeSave = RateConversionDocEvents.beforeLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save"); } if (ModelState.IsValid && BeforeSave && !EventException) { var CostCenterRecords = (from p in vm.StockLineViewModel where p.CostCenterId != null group p by p.CostCenterId into g select g).ToList(); var CostCenterIds = CostCenterRecords.Select(m => m.Key).ToArray(); var DBCostCenterStatus = (from p in db.CostCenterStatus where CostCenterIds.Contains(p.CostCenterId) select p).ToArray(); foreach (var item in vm.StockLineViewModel) { if (item.Qty != 0 && item.Rate > 0 && (Settings.isMandatoryLineCostCenter == true ? item.CostCenterId.HasValue : 1 == 1)) { StockLine line = new StockLine(); StockProcessViewModel StockProcessViewModel = new StockProcessViewModel(); if (Header.StockHeaderId != null && Header.StockHeaderId != 0)//If Transaction Header Table Has Stock Header Id Then It will Save Here. { StockProcessViewModel.StockHeaderId = (int)Header.StockHeaderId; } else if (Cnt > 0)//If function will only post in stock process then after first iteration of loop the stock header id will go -1 { StockProcessViewModel.StockHeaderId = -1; } else//If function will only post in stock process then this statement will execute.For Example Job consumption. { StockProcessViewModel.StockHeaderId = 0; } StockProcessViewModel.StockProcessId = -Cnt; StockProcessViewModel.DocHeaderId = Header.StockHeaderId; StockProcessViewModel.DocLineId = line.StockLineId; StockProcessViewModel.DocTypeId = Header.DocTypeId; StockProcessViewModel.StockHeaderDocDate = Header.DocDate; StockProcessViewModel.StockProcessDocDate = Header.DocDate; StockProcessViewModel.DocNo = Header.DocNo; StockProcessViewModel.DivisionId = Header.DivisionId; StockProcessViewModel.SiteId = Header.SiteId; StockProcessViewModel.CurrencyId = null; StockProcessViewModel.PersonId = Header.PersonId; StockProcessViewModel.ProductId = item.ProductId; StockProcessViewModel.HeaderFromGodownId = null; StockProcessViewModel.HeaderGodownId = Header.GodownId; StockProcessViewModel.HeaderProcessId = Header.ProcessId; StockProcessViewModel.GodownId = Header.GodownId; StockProcessViewModel.Remark = Header.Remark; StockProcessViewModel.Status = Header.Status; StockProcessViewModel.ProcessId = Header.ProcessId; StockProcessViewModel.LotNo = null; StockProcessViewModel.CostCenterId = (item.CostCenterId == null ? Header.CostCenterId : item.CostCenterId); if (item.Qty < 0) { StockProcessViewModel.Qty_Rec = Math.Abs(item.Qty); StockProcessViewModel.Qty_Iss = 0; } else if (item.Qty > 0) { StockProcessViewModel.Qty_Iss = Math.Abs(item.Qty); StockProcessViewModel.Qty_Rec = 0; } StockProcessViewModel.Rate = item.Rate; StockProcessViewModel.ExpiryDate = null; StockProcessViewModel.Specification = item.Specification; StockProcessViewModel.Dimension1Id = item.Dimension1Id; StockProcessViewModel.Dimension2Id = item.Dimension2Id; StockProcessViewModel.Dimension3Id = item.Dimension3Id; StockProcessViewModel.Dimension4Id = item.Dimension4Id; StockProcessViewModel.CreatedBy = User.Identity.Name; StockProcessViewModel.CreatedDate = DateTime.Now; StockProcessViewModel.ModifiedBy = User.Identity.Name; StockProcessViewModel.ModifiedDate = DateTime.Now; string StockProcessPostingError = ""; StockProcessPostingError = new StockProcessService(_unitOfWork).StockProcessPostDB(ref StockProcessViewModel, ref db); if (StockProcessPostingError != "") { string message = StockProcessPostingError; ModelState.AddModelError("", message); return(PartialView("_Results", vm)); } line.StockProcessId = StockProcessViewModel.StockProcessId; line.StockHeaderId = item.StockHeaderId; line.Qty = item.Qty; line.ProductId = item.ProductId; line.LotNo = item.LotNo; line.Rate = (decimal)item.Rate; line.Amount = Math.Round((decimal)item.Rate * item.Qty, Settings.LineRoundOff ?? 0); line.Dimension1Id = item.Dimension1Id; line.Dimension2Id = item.Dimension2Id; line.Dimension3Id = item.Dimension3Id; line.Dimension4Id = item.Dimension4Id; line.DocNature = StockNatureConstants.Receive; line.CostCenterId = item.CostCenterId; line.FromProcessId = item.FromProcessId; line.Specification = item.Specification; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.ObjectState = Model.ObjectState.Added; //_StockLineService.Create(line); db.StockLine.Add(line); Cnt = Cnt + 1; } } 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.StockHeader.Add(Header); } //ForUpdating CostCenterStatus Values// foreach (var item in DBCostCenterStatus) { var CostCenterAmounts = db.StockLine.Local.Where(m => m.CostCenterId == item.CostCenterId).ToList(); if (CostCenterAmounts != null) { if (CostCenterAmounts.Sum(m => m.Amount) > 0) { item.AmountDr = (item.AmountDr ?? 0) + CostCenterAmounts.Sum(m => m.Amount); } else if (CostCenterAmounts.Sum(m => m.Amount) < 0) { item.AmountDr = (item.AmountDr ?? 0) + CostCenterAmounts.Sum(m => m.Amount); } item.ObjectState = Model.ObjectState.Modified; db.CostCenterStatus.Add(item); } } try { RateConversionDocEvents.onLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Results", vm)); } try { RateConversionDocEvents.afterLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.StockHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }
public ActionResult DeletePost(StockLineViewModel vm) { bool BeforeSave = true; try { BeforeSave = RateConversionDocEvents.beforeLineDeleteEvent(this, new StockEventArgs(vm.StockHeaderId, vm.StockLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Validation failed before delete."; } if (BeforeSave && !EventException) { int?StockProcessId = 0; int?CostCenterId = null; List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); StockLine StockLine = (from p in db.StockLine where p.StockLineId == vm.StockLineId select p).FirstOrDefault(); CostCenterId = StockLine.CostCenterId; LogList.Add(new LogTypeViewModel { ExObj = Mapper.Map <StockLine>(StockLine), }); StockProcessId = StockLine.StockProcessId; //_StockLineService.Delete(StockLine); StockLine.ObjectState = Model.ObjectState.Deleted; db.StockLine.Remove(StockLine); if (StockProcessId != null) { new StockProcessService(_unitOfWork).DeleteStockProcessDB((int)StockProcessId, ref db, true); } StockHeader header = new StockHeaderService(_unitOfWork).Find(StockLine.StockHeaderId); if (header.Status != (int)StatusConstants.Drafted) { header.Status = (int)StatusConstants.Modified; header.ModifiedDate = DateTime.Now; header.ModifiedBy = User.Identity.Name; header.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(header); //new StockHeaderService(_unitOfWork).Update(header); } if (CostCenterId.HasValue && CostCenterId.Value > 0) { var CostCenterStatus = db.CostCenterStatus.Find(CostCenterId); if (CostCenterStatus != null && StockLine.Amount > 0) { if (StockLine.Amount > 0) { CostCenterStatus.AmountDr = CostCenterStatus.AmountDr - StockLine.Amount; } else { CostCenterStatus.AmountCr = CostCenterStatus.AmountCr - StockLine.Amount; } CostCenterStatus.ObjectState = Model.ObjectState.Modified; db.CostCenterStatus.Add(CostCenterStatus); } } XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { RateConversionDocEvents.onLineDeleteEvent(this, new StockEventArgs(StockLine.StockHeaderId, StockLine.StockLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; ViewBag.LineMode = "Delete"; return(PartialView("_Create", vm)); } try { RateConversionDocEvents.afterLineDeleteEvent(this, new StockEventArgs(StockLine.StockHeaderId, StockLine.StockLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = header.DocTypeId, DocId = header.StockHeaderId, DocLineId = StockLine.StockLineId, ActivityType = (int)ActivityTypeContants.Deleted, DocNo = header.DocNo, xEModifications = Modifications, DocDate = header.DocDate, DocStatus = header.Status, })); } return(Json(new { success = true })); }
public ActionResult CreatePost(PackingHeaderViewModel vm) { #region DocTypeTimeLineValidation try { if (vm.PackingHeaderId <= 0) { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(vm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue); } else { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(vm), 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)) { #region CreateRecord if (vm.PackingHeaderId == 0) { PackingHeader Packingheader = Mapper.Map <PackingHeaderViewModel, PackingHeader>(vm); Packingheader.BuyerId = vm.BuyerId; Packingheader.CreatedBy = User.Identity.Name; Packingheader.ModifiedBy = User.Identity.Name; Packingheader.CreatedDate = DateTime.Now; Packingheader.ModifiedDate = DateTime.Now; Packingheader.ObjectState = Model.ObjectState.Added; _PackingHeaderService.Create(Packingheader); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; PrepareViewBag(vm.DocTypeId); ViewBag.Mode = "Add"; return(View("Create", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Packingheader.DocTypeId, DocId = Packingheader.PackingHeaderId, ActivityType = (int)ActivityTypeContants.Added, DocNo = Packingheader.DocNo, DocDate = Packingheader.DocDate, DocStatus = Packingheader.Status, })); return(RedirectToAction("Modify", new { id = Packingheader.PackingHeaderId }).Success("Data saved Successfully")); } #endregion #region EditRecord else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); PackingHeader Packingheader = _PackingHeaderService.Find(vm.PackingHeaderId); PackingHeader ExRec = Mapper.Map <PackingHeader>(Packingheader); StockHeader StockHeader = new StockHeaderService(_unitOfWork).Find(Packingheader.StockHeaderId ?? 0); int status = Packingheader.Status; if (Packingheader.Status != (int)StatusConstants.Drafted) { Packingheader.Status = (int)StatusConstants.Modified; } Packingheader.DocNo = vm.DocNo; Packingheader.DocDate = vm.DocDate; Packingheader.BuyerId = vm.BuyerId; Packingheader.GodownId = vm.GodownId; Packingheader.Remark = vm.Remark; Packingheader.ModifiedDate = DateTime.Now; Packingheader.ModifiedBy = User.Identity.Name; _PackingHeaderService.Update(Packingheader); if (StockHeader != null) { StockHeader.DocDate = vm.DocDate; StockHeader.PersonId = vm.BuyerId; StockHeader.GodownId = vm.GodownId; StockHeader.Remark = vm.Remark; StockHeader.ModifiedDate = DateTime.Now; StockHeader.ModifiedBy = User.Identity.Name; new StockHeaderService(_unitOfWork).Update(StockHeader); } LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = Packingheader, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; PrepareViewBag(vm.DocTypeId); ViewBag.Mode = "Edit"; return(View("Create", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Packingheader.DocTypeId, DocId = Packingheader.PackingHeaderId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = Packingheader.DocNo, xEModifications = Modifications, DocDate = Packingheader.DocDate, DocStatus = Packingheader.Status, })); return(RedirectToAction("Index", new { id = vm.DocTypeId }).Success("Data saved successfully")); } #endregion } PrepareViewBag(vm.DocTypeId); ViewBag.Mode = "Add"; return(View("Create", vm)); }
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 ActionResult DeletePost(StockLineViewModel vm) { bool BeforeSave = true; try { BeforeSave = StockIssueDocEvents.beforeLineDeleteEvent(this, new StockEventArgs(vm.StockHeaderId, vm.StockLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Validation failed before delete."; } if (BeforeSave && !EventException) { int?ProdUid = 0; List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); //StockLine StockLine = _StockLineService.Find(vm.StockLineId); StockLine StockLine = (from p in db.StockLine where p.StockLineId == vm.StockLineId select p).FirstOrDefault(); StockHeader header = new StockHeaderService(_unitOfWork).Find(StockLine.StockHeaderId); LogList.Add(new LogTypeViewModel { ExObj = Mapper.Map <StockLine>(StockLine), }); ProdUid = StockLine.ProductUidId; if (StockLine.RequisitionLineId.HasValue) { new RequisitionLineStatusService(_unitOfWork).UpdateRequisitionQtyOnIssue(StockLine.RequisitionLineId.Value, StockLine.StockLineId, header.DocDate, 0, ref db, true); } StockLine.ObjectState = Model.ObjectState.Deleted; db.StockLine.Remove(StockLine); if (header.Status != (int)StatusConstants.Drafted && header.Status != (int)StatusConstants.Import) { header.Status = (int)StatusConstants.Modified; header.ModifiedDate = DateTime.Now; header.ModifiedBy = User.Identity.Name; header.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(header); } //if (ProdUid != null && ProdUid > 0) //{ // ProductUidDetail ProductUidDetail = new ProductUidService(_unitOfWork).FGetProductUidLastValues((int)ProdUid, "Stock Head-" + vm.StockHeaderId.ToString()); // ProductUid ProductUid = new ProductUidService(_unitOfWork).Find((int)ProdUid); // ProductUid.LastTransactionDocDate = ProductUidDetail.LastTransactionDocDate; // ProductUid.LastTransactionDocId = ProductUidDetail.LastTransactionDocId; // ProductUid.LastTransactionDocNo = ProductUidDetail.LastTransactionDocNo; // ProductUid.LastTransactionDocTypeId = ProductUidDetail.LastTransactionDocTypeId; // ProductUid.LastTransactionPersonId = ProductUidDetail.LastTransactionPersonId; // ProductUid.CurrenctGodownId = ProductUidDetail.CurrenctGodownId; // ProductUid.CurrenctProcessId = ProductUidDetail.CurrenctProcessId; // ProductUid.ObjectState = Model.ObjectState.Modified; // db.ProductUid.Add(ProductUid); //} XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { StockIssueDocEvents.onLineDeleteEvent(this, new StockEventArgs(StockLine.StockHeaderId, StockLine.StockLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; ViewBag.LineMode = "Delete"; return(PartialView("_Create", vm)); } try { StockIssueDocEvents.afterLineDeleteEvent(this, new StockEventArgs(StockLine.StockHeaderId, StockLine.StockLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = header.DocTypeId, DocId = header.StockHeaderId, DocLineId = StockLine.StockLineId, ActivityType = (int)ActivityTypeContants.Deleted, DocNo = header.DocNo, xEModifications = Modifications, DocDate = header.DocDate, DocStatus = header.Status, })); } return(Json(new { success = true })); }
public ActionResult _ResultsPost(StockMasterDetailModel vm) { int Cnt = 0; int pk = 0; int Serial = _StockLineService.GetMaxSr(vm.StockLineViewModel.FirstOrDefault().StockHeaderId); Dictionary <int, decimal> LineStatus = new Dictionary <int, decimal>(); StockHeader Header = new StockHeaderService(_unitOfWork).Find(vm.StockLineViewModel.FirstOrDefault().StockHeaderId); StockHeaderSettings Settings = new StockHeaderSettingsService(_unitOfWork).GetStockHeaderSettingsForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); if (Settings.isMandatoryLineCostCenter == true && vm.StockLineViewModel.Where(m => m.CostCenterId == null).Any()) { ModelState.AddModelError("", "CostCenter is mandatory"); } decimal Qty = vm.StockLineViewModel.Where(m => m.Rate > 0).Sum(m => m.Qty); bool BeforeSave = true; try { BeforeSave = StockIssueDocEvents.beforeLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save"); } if (ModelState.IsValid && BeforeSave && !EventException) { foreach (var item in vm.StockLineViewModel) { //if (item.Qty > 0 && ((Settings.isMandatoryRate.HasValue && Settings.isMandatoryRate == true )? item.Rate > 0 : 1 == 1)) if (item.Qty > 0) { StockLine line = new StockLine(); line.StockHeaderId = item.StockHeaderId; line.RequisitionLineId = item.RequisitionLineId; line.ProductId = item.ProductId; line.Dimension1Id = item.Dimension1Id; line.Dimension2Id = item.Dimension2Id; line.Dimension3Id = item.Dimension3Id; line.Dimension4Id = item.Dimension4Id; line.Specification = item.Specification; line.CostCenterId = item.CostCenterId; line.Qty = item.Qty; line.DocNature = StockNatureConstants.Issue; line.Rate = item.Rate ?? 0; line.Amount = (line.Qty * line.Rate); line.ReferenceDocId = item.ReferenceDocId; line.ReferenceDocTypeId = item.ReferenceDocTypeId; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.StockLineId = pk; line.Sr = Serial++; line.ObjectState = Model.ObjectState.Added; db.StockLine.Add(line); pk++; Cnt = Cnt + 1; if (line.RequisitionLineId.HasValue) { LineStatus.Add(line.RequisitionLineId.Value, line.Qty); } } } //new RequisitionLineStatusService(_unitOfWork).UpdateRequisitionQtyIssueMultiple(LineStatus, Header.DocDate, ref db); 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.StockHeader.Add(Header); try { StockIssueDocEvents.onLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Results", vm)); } try { StockIssueDocEvents.afterLineSaveBulkEvent(this, new StockEventArgs(vm.StockLineViewModel.FirstOrDefault().StockHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.StockHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }
public ActionResult Reviewed(int Id, string IndexType, string UserRemark, string IsContinue) { bool BeforeSave = true; try { BeforeSave = JobConsumptionDocEvents.beforeHeaderReviewEvent(this, new StockEventArgs(Id), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } if (!BeforeSave) { TempData["CSEXC"] += "Falied validation before Review."; } StockHeader pd = new StockHeaderService(_unitOfWork).Find(Id); if (ModelState.IsValid && BeforeSave) { pd.ReviewCount = (pd.ReviewCount ?? 0) + 1; pd.ReviewBy += User.Identity.Name + ", "; pd.ObjectState = Model.ObjectState.Modified; db.StockHeader.Add(pd); //_unitOfWork.Save(); try { JobConsumptionDocEvents.onHeaderReviewEvent(this, new StockEventArgs(Id), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } db.SaveChanges(); try { JobConsumptionDocEvents.afterHeaderReviewEvent(this, new StockEventArgs(Id), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = pd.DocTypeId, DocId = pd.StockHeaderId, ActivityType = (int)ActivityTypeContants.Reviewed, UserRemark = UserRemark, DocNo = pd.DocNo, DocDate = pd.DocDate, DocStatus = pd.Status, })); //SendEmail_POApproved(Id); return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Success("Reviewed Successfully.")); } return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Warning("Error in Reviewing.")); }