public ActionResult DeletePost(RequisitionLineViewModel vm) { bool BeforeSave = true; try { BeforeSave = MaterialRequestDocEvents.beforeLineDeleteEvent(this, new StockEventArgs(vm.RequisitionHeaderId, vm.RequisitionLineId), 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) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); //RequisitionLine RequisitionLine = _RequisitionLineService.Find(vm.RequisitionLineId); RequisitionLine RequisitionLine = (from p in db.RequisitionLine where p.RequisitionLineId == vm.RequisitionLineId select p).FirstOrDefault(); RequisitionLineStatus LineStat = (from p in db.RequisitionLineStatus where p.RequisitionLineId == vm.RequisitionLineId select p).FirstOrDefault(); RequisitionHeader header = new RequisitionHeaderService(_unitOfWork).Find(RequisitionLine.RequisitionHeaderId); RequisitionLine ExRec = new RequisitionLine(); ExRec = Mapper.Map <RequisitionLine>(RequisitionLine); LogList.Add(new LogTypeViewModel { ExObj = ExRec, }); //new RequisitionLineStatusService(_unitOfWork).Delete(RequisitionLine.RequisitionLineId); if (LineStat != null) { LineStat.ObjectState = Model.ObjectState.Deleted; db.RequisitionLineStatus.Remove(LineStat); } RequisitionLine.ObjectState = Model.ObjectState.Deleted; db.RequisitionLine.Remove(RequisitionLine); //_RequisitionLineService.Delete(RequisitionLine); if (header.Status != (int)StatusConstants.Drafted) { header.Status = (int)StatusConstants.Modified; header.ModifiedBy = User.Identity.Name; header.ModifiedDate = DateTime.Now; header.ObjectState = Model.ObjectState.Modified; db.RequisitionHeader.Add(header); //new RequisitionHeaderService(_unitOfWork).Update(header); } XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { MaterialRequestDocEvents.onLineDeleteEvent(this, new StockEventArgs(RequisitionLine.RequisitionHeaderId, RequisitionLine.RequisitionLineId), 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 { MaterialRequestDocEvents.afterLineDeleteEvent(this, new StockEventArgs(RequisitionLine.RequisitionHeaderId, RequisitionLine.RequisitionLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = header.DocTypeId, DocId = header.RequisitionHeaderId, DocLineId = RequisitionLine.RequisitionLineId, ActivityType = (int)ActivityTypeContants.Deleted, DocNo = header.DocNo, xEModifications = Modifications, DocDate = header.DocDate, DocStatus = header.Status, })); } return(Json(new { success = true })); }
public ActionResult _CreatePost(RequisitionLineViewModel svm) { RequisitionHeader temp = new RequisitionHeaderService(_unitOfWork).Find(svm.RequisitionHeaderId); RequisitionLine s = Mapper.Map <RequisitionLineViewModel, RequisitionLine>(svm); if (svm.MaterialRequestSettings != null) { if (svm.MaterialRequestSettings.isMandatoryProcessLine == true && (svm.ProcessId <= 0 || svm.ProcessId == null)) { ModelState.AddModelError("ProcessId", "The Process field is required"); } } bool BeforeSave = true; try { if (svm.RequisitionLineId <= 0) { BeforeSave = MaterialRequestDocEvents.beforeLineSaveEvent(this, new StockEventArgs(svm.RequisitionHeaderId, EventModeConstants.Add), ref db); } else { BeforeSave = MaterialRequestDocEvents.beforeLineSaveEvent(this, new StockEventArgs(svm.RequisitionHeaderId, 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.Qty <= 0) { ModelState.AddModelError("Qty", "The Qty field is required"); } if (svm.RequisitionLineId <= 0) { ViewBag.LineMode = "Create"; } else { ViewBag.LineMode = "Edit"; } if (ModelState.IsValid && BeforeSave && !EventException) { if (svm.RequisitionLineId <= 0) { s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; s.ObjectState = Model.ObjectState.Added; //_RequisitionLineService.Create(s); db.RequisitionLine.Add(s); new RequisitionLineStatusService(_unitOfWork).CreateLineStatus(s.RequisitionLineId, ref db); //RequisitionHeader header = new RequisitionHeaderService(_unitOfWork).Find(s.RequisitionHeaderId); if (temp.Status != (int)StatusConstants.Drafted) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = User.Identity.Name; temp.ObjectState = Model.ObjectState.Modified; db.RequisitionHeader.Add(temp); //new RequisitionHeaderService(_unitOfWork).Update(temp); } try { MaterialRequestDocEvents.onLineSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, s.RequisitionLineId, 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 { MaterialRequestDocEvents.afterLineSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, s.RequisitionLineId, 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.RequisitionHeaderId, DocLineId = s.RequisitionLineId, ActivityType = (int)ActivityTypeContants.Added, DocNo = temp.DocNo, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(RedirectToAction("_Create", new { id = svm.RequisitionHeaderId })); } else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); RequisitionLine templine = _RequisitionLineService.Find(s.RequisitionLineId); int Status = temp.Status; RequisitionLine ExRec = new RequisitionLine(); ExRec = Mapper.Map <RequisitionLine>(templine); templine.ProductId = s.ProductId; templine.Specification = s.Specification; templine.Dimension1Id = s.Dimension1Id; templine.Dimension2Id = s.Dimension2Id; templine.Dimension3Id = s.Dimension3Id; templine.Dimension4Id = s.Dimension4Id; templine.ProcessId = s.ProcessId; templine.DueDate = s.DueDate; templine.Remark = s.Remark; templine.Qty = s.Qty; templine.ModifiedDate = DateTime.Now; templine.ModifiedBy = User.Identity.Name; //_RequisitionLineService.Update(templine); templine.ObjectState = Model.ObjectState.Modified; db.RequisitionLine.Add(templine); if (temp.Status != (int)StatusConstants.Drafted) { temp.Status = (int)StatusConstants.Modified; temp.ModifiedBy = User.Identity.Name; temp.ModifiedDate = DateTime.Now; temp.ObjectState = Model.ObjectState.Modified; db.RequisitionHeader.Add(temp); //new RequisitionHeaderService(_unitOfWork).Update(temp); } LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = templine, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { MaterialRequestDocEvents.onLineSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, templine.RequisitionLineId, 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 { MaterialRequestDocEvents.afterLineSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, templine.RequisitionLineId, 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.RequisitionHeaderId, DocLineId = templine.RequisitionLineId, 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 Reviewed(int Id, string IndexType, string UserRemark, string IsContinue) { bool BeforeSave = true; try { BeforeSave = MaterialRequestDocEvents.beforeHeaderReviewEvent(this, new StockEventArgs(Id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } if (!BeforeSave) { TempData["CSEXC"] += "Falied validation before Review."; } RequisitionHeader pd = new RequisitionHeaderService(_unitOfWork).Find(Id); if (ModelState.IsValid && BeforeSave) { pd.ReviewCount = (pd.ReviewCount ?? 0) + 1; pd.ReviewBy += User.Identity.Name + ", "; pd.ObjectState = Model.ObjectState.Modified; context.RequisitionHeader.Add(pd); try { MaterialRequestDocEvents.onHeaderReviewEvent(this, new StockEventArgs(Id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } context.SaveChanges(); try { MaterialRequestDocEvents.afterHeaderReviewEvent(this, new StockEventArgs(Id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = pd.DocTypeId, DocId = pd.RequisitionHeaderId, ActivityType = (int)ActivityTypeContants.Reviewed, UserRemark = UserRemark, DocNo = pd.DocNo, DocDate = pd.DocDate, DocStatus = pd.Status, })); //SendEmail_POReviewd(Id); return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Success("Record Reviewed Successfully")); } return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Warning("Error in Reviewing.")); }
public ActionResult Submitted(int Id, string IndexType, string UserRemark, string IsContinue) { bool BeforeSave = true; try { BeforeSave = MaterialRequestDocEvents.beforeHeaderSubmitEvent(this, new StockEventArgs(Id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Falied validation before submit."; } RequisitionHeader pd = new RequisitionHeaderService(_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; //_RequisitionHeaderService.Update(pd); pd.ReviewBy = null; pd.ObjectState = Model.ObjectState.Modified; context.RequisitionHeader.Add(pd); try { MaterialRequestDocEvents.onHeaderSubmitEvent(this, new StockEventArgs(Id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } context.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType })); } try { MaterialRequestDocEvents.afterHeaderSubmitEvent(this, new StockEventArgs(Id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = pd.DocTypeId, DocId = pd.RequisitionHeaderId, 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(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType })); }
public ActionResult Delete(ReasonViewModel vm) { bool BeforeSave = true; try { BeforeSave = MaterialRequestDocEvents.beforeHeaderDeleteEvent(this, new StockEventArgs(vm.id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Failed validation before delete"; } if (ModelState.IsValid && BeforeSave && !EventException) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); //first find the Purchase Order Object based on the ID. (sience this object need to marked to be deleted IE. ObjectState.Deleted) //var RequisitionHeader = _RequisitionHeaderService.Find(vm.id); var RequisitionHeader = (from p in context.RequisitionHeader where p.RequisitionHeaderId == vm.id select p).FirstOrDefault(); try { MaterialRequestDocEvents.onHeaderDeleteEvent(this, new StockEventArgs(vm.id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } RequisitionHeader ExRec = new RequisitionHeader(); ExRec = Mapper.Map <RequisitionHeader>(RequisitionHeader); LogList.Add(new LogTypeViewModel { ExObj = ExRec, }); //Then find all the Purchase Order Header Line associated with the above ProductType. //var RequisitionLine = new RequisitionLineService(_unitOfWork).GetRequisitionLineforDelete(vm.id); var RequisitionLine = (from p in context.RequisitionLine where p.RequisitionHeaderId == vm.id select p).ToList(); var RequisitionIds = RequisitionLine.Select(m => m.RequisitionLineId).ToArray(); var RequisitionLineStatusRecords = (from p in context.RequisitionLineStatus where RequisitionIds.Contains(p.RequisitionLineId.Value) select p).ToList(); //Mark ObjectState.Delete to all the Purchase Order Lines. foreach (var item in RequisitionLine) { RequisitionLine ExRecLine = new RequisitionLine(); ExRecLine = Mapper.Map <RequisitionLine>(item); LogList.Add(new LogTypeViewModel { ExObj = ExRecLine, }); //new RequisitionLineStatusService(_unitOfWork).Delete(item.RequisitionLineId); var StatRecord = RequisitionLineStatusRecords.Where(m => m.RequisitionLineId == item.RequisitionLineId).FirstOrDefault(); StatRecord.ObjectState = Model.ObjectState.Deleted; context.RequisitionLineStatus.Remove(StatRecord); //new RequisitionLineService(_unitOfWork).Delete(item.RequisitionLineId); item.ObjectState = Model.ObjectState.Deleted; context.RequisitionLine.Remove(item); } // Now delete the Purhcase Order Header //new RequisitionHeaderService(_unitOfWork).Delete(RequisitionHeader); RequisitionHeader.ObjectState = Model.ObjectState.Deleted; context.RequisitionHeader.Remove(RequisitionHeader); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); //Commit the DB try { if (EventException) { throw new Exception(); } context.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; return(PartialView("_Reason", vm)); } try { MaterialRequestDocEvents.afterHeaderDeleteEvent(this, new StockEventArgs(vm.id), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = RequisitionHeader.DocTypeId, DocId = RequisitionHeader.RequisitionHeaderId, ActivityType = (int)ActivityTypeContants.Deleted, UserRemark = vm.Reason, DocNo = RequisitionHeader.DocNo, xEModifications = Modifications, DocDate = RequisitionHeader.DocDate, DocStatus = RequisitionHeader.Status, })); return(Json(new { success = true })); } return(PartialView("_Reason", vm)); }
public ActionResult Post(RequisitionHeaderViewModel svm) { RequisitionHeader s = Mapper.Map <RequisitionHeaderViewModel, RequisitionHeader>(svm); #region BeforeSave bool BeforeSave = true; try { if (svm.RequisitionHeaderId <= 0) { BeforeSave = MaterialRequestDocEvents.beforeHeaderSaveEvent(this, new StockEventArgs(svm.RequisitionHeaderId, EventModeConstants.Add), ref context); } else { BeforeSave = MaterialRequestDocEvents.beforeHeaderSaveEvent(this, new StockEventArgs(svm.RequisitionHeaderId, EventModeConstants.Edit), ref context); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Failed validation before save"; } #endregion #region DocTypeTimeLineValidation try { if (svm.RequisitionHeaderId <= 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 (svm.MaterialRequestSettings != null) { if (svm.MaterialRequestSettings.isMandatoryCostCenter == true && (svm.CostCenterId <= 0 || svm.CostCenterId == null)) { ModelState.AddModelError("CostCenterId", "The CostCenter field is required"); } } if (ModelState.IsValid && BeforeSave && !EventException && (TimePlanValidation || Continue)) { #region CreateRecord if (svm.RequisitionHeaderId <= 0) { s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; s.Status = (int)StatusConstants.Drafted; s.ObjectState = Model.ObjectState.Added; context.RequisitionHeader.Add(s); //_RequisitionHeaderService.Create(s); try { MaterialRequestDocEvents.onHeaderSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, EventModeConstants.Add), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } context.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; PrepareViewBag(svm.DocTypeId); ViewBag.Mode = "Add"; return(View("Create", svm)); } try { MaterialRequestDocEvents.afterHeaderSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, EventModeConstants.Add), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.RequisitionHeaderId, ActivityType = (int)ActivityTypeContants.Added, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); return(RedirectToAction("Modify", "MaterialRequestHeader", new { Id = s.RequisitionHeaderId }).Success("Data saved successfully")); } #endregion #region EditRecord else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); RequisitionHeader temp = _RequisitionHeaderService.Find(s.RequisitionHeaderId); RequisitionHeader ExRec = new RequisitionHeader(); ExRec = Mapper.Map <RequisitionHeader>(temp); int status = temp.Status; if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; } temp.DocDate = s.DocDate; temp.DocNo = s.DocNo; temp.PersonId = s.PersonId; temp.Remark = s.Remark; temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = User.Identity.Name; //_RequisitionHeaderService.Update(temp); temp.ObjectState = Model.ObjectState.Modified; context.RequisitionHeader.Add(temp); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = temp, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { MaterialRequestDocEvents.onHeaderSaveEvent(this, new StockEventArgs(temp.RequisitionHeaderId, EventModeConstants.Edit), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } context.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; PrepareViewBag(svm.DocTypeId); ViewBag.id = svm.DocTypeId; return(View("Create", svm)); } try { MaterialRequestDocEvents.afterHeaderSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, EventModeConstants.Edit), ref context); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.RequisitionHeaderId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(RedirectToAction("Index", new { id = svm.DocTypeId }).Success("Data saved successfully")); } #endregion } PrepareViewBag(svm.DocTypeId); ViewBag.Mode = "Add"; return(View("Create", svm)); }