// GET: /RequisitionHeader/Create public ActionResult Create(int id)//DocumentTypeId { RequisitionHeaderViewModel p = new RequisitionHeaderViewModel(); p.DocDate = DateTime.Now; p.DivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"]; p.SiteId = (int)System.Web.HttpContext.Current.Session["SiteId"]; p.CreatedDate = DateTime.Now; //Getting Settings var settings = new MaterialRequestSettingsService(_unitOfWork).GetMaterialRequestSettingsForDocument(id, p.DivisionId, p.SiteId); if (settings == null && UserRoles.Contains("SysAdmin")) { return(RedirectToAction("Create", "MaterialRequestSettings", new { id = id }).Warning("Please create Material Request settings")); } else if (settings == null && !UserRoles.Contains("SysAdmin")) { return(View("~/Views/Shared/InValidSettings.cshtml")); } p.MaterialRequestSettings = Mapper.Map <MaterialRequestSettings, MaterialRequestSettingsViewModel>(settings); if (new RolePermissionService(_unitOfWork).IsActionAllowed(UserRoles, id, settings.ProcessId, this.ControllerContext.RouteData.Values["controller"].ToString(), "Create") == false) { return(View("~/Views/Shared/PermissionDenied.cshtml").Warning("You don't have permission to do this task.")); } PrepareViewBag(id); p.DocTypeId = id; p.DocNo = new DocumentTypeService(_unitOfWork).FGetNewDocNo("DocNo", ConfigurationManager.AppSettings["DataBaseSchema"] + ".RequisitionHeaders", p.DocTypeId, p.DocDate, p.DivisionId, p.SiteId); ViewBag.Mode = "Add"; return(View(p)); }
public ActionResult Detail(int id, string IndexType, string transactionType) { //Saving ViewBag Data:: ViewBag.transactionType = transactionType; ViewBag.IndexStatus = IndexType; RequisitionHeaderViewModel s = _RequisitionHeaderService.GetRequisitionHeader(id); //Job Order Settings var settings = new MaterialRequestSettingsService(_unitOfWork).GetMaterialRequestSettingsForDocument(s.DocTypeId, s.DivisionId, s.SiteId); if (settings == null) { return(RedirectToAction("Create", "MaterialRequestSettings", new { id = s.DocTypeId }).Warning("Please create Material Request settings")); } s.MaterialRequestSettings = Mapper.Map <MaterialRequestSettings, MaterialRequestSettingsViewModel>(settings); PrepareViewBag(s.DocTypeId); if (s == null) { return(HttpNotFound()); } if (String.IsNullOrEmpty(transactionType) || transactionType == "detail") { LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.RequisitionHeaderId, ActivityType = (int)ActivityTypeContants.Detail, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); } return(View("Create", s)); }
// GET: /RequisitionHeader/Edit/5 private ActionResult Edit(int id, string IndexType) { ViewBag.IndexStatus = IndexType; RequisitionHeaderViewModel s = _RequisitionHeaderService.GetRequisitionHeader(id); if (new RolePermissionService(_unitOfWork).IsActionAllowed(UserRoles, s.DocTypeId, null, this.ControllerContext.RouteData.Values["controller"].ToString(), "Edit") == false) { return(View("~/Views/Shared/PermissionDenied.cshtml").Warning("You don't have permission to do this task.")); } if (s == null) { return(HttpNotFound()); } #region DocTypeTimeLineValidation try { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(s), 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 ((!TimePlanValidation && !Continue)) { return(RedirectToAction("DetailInformation", new { id = id, IndexType = IndexType })); } //Job Order Settings var settings = new MaterialRequestSettingsService(_unitOfWork).GetMaterialRequestSettingsForDocument(s.DocTypeId, s.DivisionId, s.SiteId); if (settings == null && UserRoles.Contains("SysAdmin")) { return(RedirectToAction("Create", "MaterialRequestSettings", new { id = s.DocTypeId }).Warning("Please create Material Request settings")); } else if (settings == null && !UserRoles.Contains("SysAdmin")) { return(View("~/Views/Shared/InValidSettings.cshtml")); } s.MaterialRequestSettings = Mapper.Map <MaterialRequestSettings, MaterialRequestSettingsViewModel>(settings); ViewBag.Mode = "Edit"; PrepareViewBag(s.DocTypeId); if (!(System.Web.HttpContext.Current.Request.UrlReferrer.PathAndQuery).Contains("Create")) { LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.RequisitionHeaderId, ActivityType = (int)ActivityTypeContants.Detail, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); } return(View("Create", s)); }
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)); }