using Neo.Afx.ComponentModel; using Neo.Afx.Mvc; using Neo.Afx.Security; using Neo.Afx.Services.Integration; using Neo.Afx.Services.Notifications.Entities; using Neo.Afx.Services.Workflows.Entities; using Neo.Afx.ViewModels; using Neo.LegitimateLicences.AccreditationIssueRequest.Models.Database; using Neo.LegitimateLicences.Common; using Neo.LegitimateLicences.Common.Helpers; using Neo.LegitimateLicences.Data.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Neo.LegitimateLicences.AccreditationIssueRequest { public partial class AccreditationIssueRequestController { #region Form public ActionResult Form() { var isNew = WebHelper.ItemID == -1; var itemId = WebHelper.ItemID; ////var activeUserTask = WorkflowHelper.GetActiveUserTask(Profile.UserID, Entity.Application, itemId); var model = new AccreditationIssueRequestFormModel { UserSecurables = (Profile.Securables != null) ? Profile.Securables.ToList() : new List() ////IsActivityVisible = !isNew, ////IsSettingsVisible = false, ////IsCommentsVisible = !isNew, ////IsSearchVisible = true }; var db = new AccreditationIssueDatabase(); model.Data = db.GetAccreditationIssueForm(itemId, Profile.UserID); model.Lookups = GetLookupsForFormGetLookupsFormView(); model.WorkflowInstance = WorkflowHelper.GetWorkflowInstanceView(WebHelper.EntityID, WebHelper.ItemID, Profile.UserID); ViewBag.IsReadOnly = ((Vw_WorkflowInstance)model.WorkflowInstance).WorkflowInstanceStatusID == 2; /*2=completed*/ ////if (!isNew) ////{ //// var vwAppDetailsFull = Database.GetAppDetailView(WebHelper.ItemID); //// if (SecurityHelper.UserHasRole(Profile.Roles, Role.FileFinalisationVerifier) && EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.FileFinalisation) && EnumHelper.IsInList(vwAppDetailsFull.AppDetailSubStatusID, AppDetailSubStatus.FileFinalisation_AwaitingFileFinalisation) && activeUserTask == null && !vwAppDetailsFull.Tags.Contains("Escalated")) //// { //// var appDetailID = (long)WebHelper.ItemID; //// if (appDetailID > 0) //// { //// Database.VerificationRequestTask(Profile.UserID, -1, appDetailID); //re-assign task to current user of required //// activeUserTask = WorkflowHelper.GetActiveUserTask(Profile.UserID, Entity.Application, itemId); //// } //// } //// model.CanViewNDotApprovalLetters = vwAppDetailsFull.ApplicationSourceID == (short)ApplicationSourceEnum.Permit; //// if (vwAppDetailsFull.OperatingLicenceSystemID == 2 /* Legiti-mate */ && vwAppDetailsFull.ApplicationSourceID == (short)ApplicationSourceEnum.OperatingLicence) //// { //// model.CanViewAdditionalLegitimate = true; //// if(vwAppDetailsFull.OLLegitimateOLNumber.IndexOf("LKNKZN") > -1) //// { //// model.CanViewAdditionalLegitimate_OLAS = true; //// } //// if(vwAppDetailsFull.OLPermitNumber != null) //// { //// model.CanViewAdditionalLegitimate_Permit = true; //// } //// } //// else //// { //// model.CanViewAdditionalOlas = vwAppDetailsFull.ApplicationSourceID == (short)ApplicationSourceEnum.OperatingLicence; //// } //// if (SecurityHelper.UserHasRole(Profile.Roles, Role.ApplicationWorkflowAdministrator)) //// { //// model.CanViewSubmit = true; //// } //// else if (!SecurityHelper.UserHasRole(Profile.Roles, Role.ProcessAnalyst, Role.RiskManager, Role.ComplianceOfficer)) //// { //// model.CanViewSubmit = (activeUserTask != null) && EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.IncompleteApplication, AppDetailStatus.Inspection, AppDetailStatus.VehicleDeregistration, AppDetailStatus.Payment, AppDetailStatus.VehicleScrapping, AppDetailStatus.FileFinalisation); //// } //// else //// { //// model.CanViewSubmit = (activeUserTask != null) && EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.VehicleDeregistration, AppDetailStatus.IncompleteApplication, AppDetailStatus.Verification, AppDetailStatus.FileHandling, AppDetailStatus.InspectionFileHandling, AppDetailStatus.QualityControl, AppDetailStatus.Inspection, AppDetailStatus.VehicleVerification, AppDetailStatus.Payment, AppDetailStatus.FileFinalisation, AppDetailStatus.VehicleScrapping); //// } //// if(vwAppDetailsFull.AppDetailSubStatusID != (decimal) AppDetailSubStatus.Inspection_AwaitingScheduling //// && vwAppDetailsFull.AppDetailSubStatusID != (decimal) AppDetailSubStatus.Inspection_AwaitingInspectionPreCheck) //// { //// var inspectionPreChecksFulls = Database.Context.Vw_InspectionPreChecks_Full.Count(a => a.AppDetailID == itemId); //// if (inspectionPreChecksFulls > 0) //// { //// model.CanViewInspectionDetails = EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.Inspection, AppDetailStatus.VehicleVerification, AppDetailStatus.VehicleDeregistration, AppDetailStatus.InspectionFileHandling, AppDetailStatus.Payment, AppDetailStatus.VehicleScrapping, AppDetailStatus.Finalised, AppDetailStatus.FileFinalisation); //// } //// } //// model.CanViewDeregistration = EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.VehicleDeregistration, AppDetailStatus.InspectionFileHandling, AppDetailStatus.Payment, AppDetailStatus.VehicleScrapping, AppDetailStatus.Finalised, AppDetailStatus.FileFinalisation); //// if(EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.Payment)) //// { //// model.CanViewPayment = EnumHelper.IsInList(vwAppDetailsFull.AppDetailSubStatusID, AppDetailSubStatus.Payment_AwaitingPaymentConfirmation); //// } //// else //// { //// model.CanViewPayment = EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.VehicleScrapping, AppDetailStatus.Finalised, AppDetailStatus.FileFinalisation); //// } //// if(EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.VehicleScrapping)) //// { //// model.CanViewScrapping = EnumHelper.IsInList(vwAppDetailsFull.AppDetailSubStatusID, AppDetailSubStatus.Scrapping_AwaitingScrapping); //// } //// else //// { //// model.CanViewScrapping = EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.Finalised, AppDetailStatus.FileFinalisation); //// } //// if (activeUserTask != null) //// { //// model.CanViewRiskAudits = activeUserTask.WorkflowTemplateStepNumber > 1; //// } //// else if (SecurityHelper.UserHasRole(Profile.Roles, Role.RiskManager, Role.ComplianceOfficer)) //// { //// model.CanViewRiskAudits = true; //// } //// model.CanViewFileFinalisation = EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.Finalised, AppDetailStatus.FileFinalisation); //// if (SecurityHelper.UserHasRole(Profile.Roles, Role.DataCapturer)) //// { //// model.CanViewDocuments = (activeUserTask != null); //// model.CanViewApplicationForm = (activeUserTask != null); //// } //// else{ //// model.CanViewDocuments = true; //// model.CanViewApplicationForm = true; //// } //// model.CanViewAdditionData = true; //// if (EnumHelper.IsInList(vwAppDetailsFull.AppDetailStatusID, AppDetailStatus.Finalised, AppDetailStatus.Migrated) && !SecurityHelper.UserHasRole(Profile.Roles, Role.ApplicationWorkflowAdministrator, Role.ProcessAnalyst, Role.OperationsManager, Role.FundsManager, Role.RiskManager, Role.ComplianceOfficer, Role.ReadOnly)) //// { //// model.CanViewAdditionalOlas = false; //// model.CanViewNDotApprovalLetters = false; //// model.CanViewSubmit = false; //// model.CanViewInspectionDetails = false; //// model.CanViewDeregistration = false; //// model.CanViewScrapping = false; //// model.CanViewPayment = false; //// model.CanViewRiskAudits = false; //// model.CanViewFileFinalisation = false; //// model.CanViewApplicationForm = false; //// model.CanViewDocuments = false; //// model.CanViewAdditionData = false; //// } ////} return View("Form", model); } #endregion #region GetLookups public List GetLookupsForFormGetLookupsFormView() { var lookups = new List(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); lookups.Add(new LookupList("NewOLVehicleTypes", integrationStore.GetDataEntities("VehicleTypes", string.Empty))); lookups.Add(new LookupList("NewOLIDTypes", integrationStore.GetDataEntities("IDTypes", string.Empty))); lookups.Add(new LookupList("NewOLBusinessTypes", integrationStore.GetDataEntities("BusinessTypes", string.Empty))); lookups.Add(new LookupList("NewOLCarryingCapacities", integrationStore.GetDataEntities("CarryingCapacities", string.Empty))); } finally { integrationStore.Close(); } return lookups; } #endregion } }