using Neo.Afx.Services.Workflows.Entities; using Neo.LegitimateLicences.ApplicationRequest.Models.Database; using Neo.LegitimateLicences.Common; using Neo.LegitimateLicences.Common.Helpers; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Neo.LegitimateLicences.ApplicationRequest { public class ApplicationRequestBaseModel : Common.ViewModels.ResponsiveAppWorkflowModel { public Vw_ApplicationDetails_Light ApplicationView { get; set; } public Vw_ApplicationDetails_Light ParentApplicationView { get; set; } /// Primary service type on the parent PRE application (TAT appeal fee context). public string TatParentServiceTypeDisplay { get; set; } /// Vehicle type label on the parent PRE licence (TAT appeal fee context). public string TatParentVehicleTypeDisplay { get; set; } #region labels public string NewVehicleLabel { get; set; } public string ExistingVehicleLabel { get; set; } #endregion #region CanView properties public bool CanViewRelatedTATRequest { get; set; } public bool CanViewTATDetails { get; set; } public bool CanViewApplicantDetails { get; set; } public bool CanViewProxyDetails { get; set; } public bool CanViewPreviousLicenceHolderDetails { get; set; } public bool CanViewNptrLiveryDetails { get; set; } public bool CanViewNptrVehicleMaintenanceDetails { get; set; } public bool CanViewNptrVehicleSummaryDetails { get; set; } public bool CanViewAuthorityDetails { get; set; } public bool CanViewLicenceDetails { get; set; } public bool CanViewLicenceApplicationFormDocument { get; set; } public bool CanViewLicenceDocument { get; set; } public bool CanViewVehicleTypeDetails { get; set; } public bool CanViewServiceTypeDetails { get; set; } public bool CanViewExistingVehicleDetails { get; set; } public bool CanViewNewVehicleDetails { get; set; } public bool CanViewNewVehicleDocuments { get; set; } public bool CanViewRouteDetails { get; set; } public bool CanViewPaymentDetails { get; set; } public bool CanViewInspectionDetails { get; set; } public bool CanViewReferrals { get; set; } public bool CanViewObjections { get; set; } public bool CanViewGazetteDetails { get; set; } public bool CanViewAdjudicationDetails { get; set; } public bool CanViewSpecialLicenceDetails { get; set; } public bool CanViewTemporaryReplacementDetails { get; set; } public bool CanViewUpliftmentExtensionDetails { get; set; } public bool CanViewNewRouteRequests { get; set; } #endregion #region CanEdit properties public bool CanEditApplicantDetails { get; set; } public bool CanEditProxyDetails { get; set; } public bool CanEditPreviousLicenceHolderDetails { get; set; } public bool CanEditNptrLiveryDetails { get; set; } public bool CanEditNptrVehicleMaintenanceDetails { get; set; } public bool CanEditNptrVehicleSummaryDetails { get; set; } public bool CanEditLicenceDetails { get; set; } public bool CanEditAuthorityDetails { get; set; } public bool CanEditLicenceApplicationFormDocument { get; set; } public bool CanEditLicenceDocument { get; set; } public bool CanEditVehicleTypeDetails { get; set; } public bool CanEditServiceTypeDetails { get; set; } public bool CanEditNewVehicleDetails { get; set; } public bool CanEditNewVehicleDocuments { get; set; } public bool CanEditRouteDetails { get; set; } public bool CanEditPaymentDetails { get; set; } public bool CanEditInspectionDetails { get; set; } public bool CanEditReferralsDetails { get; set; } public bool CanEditObjections { get; set; } public bool CanEditSpecialLicenceDetails { get; set; } public bool CanEditTemporaryReplacementDetails { get; set; } public bool CanEditUpliftmentExtensionDetails { get; set; } public bool CanViewDocumentation { get; set; } #endregion #region can??? properties public bool CanPrintTemporaryReplacementLetter { get; set; } #endregion /// /// TAT DC1 before PRE: particulars are prepopulated from the parent file; only applicant cellphone is editable (Change 1). /// public bool TATDc1ApplicantOnlyCellEditable { get; set; } /// /// TAT DC1 before PRE: only appellant contact cellphone is editable in the Appellant details (TAT) section (Change 1). /// public bool CanEditTATAppellantContactCell { get; set; } #region SetFormEditState public void SetFormEditState(Vw_WorkflowInstanceTask activeUserTask) { TATDc1ApplicantOnlyCellEditable = false; CanEditTATAppellantContactCell = false; if (ApplicationView != null && WorkflowInstance != null) { if (activeUserTask != null && ApplicationView.DivisionTypeID == (short)DivisionTypeEnum.TAT) { if (ApplicationView.PREDataReleased) { #region TAT Details CanViewTATDetails = true; CanViewRelatedTATRequest = false; #endregion #region applicant details CanViewApplicantDetails = true; CanEditApplicantDetails = false; #endregion #region proxy details CanViewProxyDetails = true; CanEditProxyDetails = false; #endregion #region existing licence holder details CanViewPreviousLicenceHolderDetails = ParentApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ParentApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value; CanEditPreviousLicenceHolderDetails = false; #endregion #region nptr livery details CanViewNptrLiveryDetails = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation ); CanEditNptrLiveryDetails = false; #endregion #region nptr vehicle maintenance details CanViewNptrVehicleMaintenanceDetails = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation ); CanEditNptrVehicleMaintenanceDetails = false; #endregion #region nptr vehicle summary details CanViewNptrVehicleSummaryDetails = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation ); CanEditNptrVehicleSummaryDetails = false; #endregion #region authority CanViewAuthorityDetails = (ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); CanEditAuthorityDetails = false; #endregion #region licences // Hide Licence Details for NPTR E-hailing App Provider Registration types (60/61/62) CanViewLicenceDetails = ( ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence && ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes && ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistration && ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistrationRenewal && ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistrationAmendConditions ) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3); CanEditLicenceDetails = false; #endregion #region licence application form document CanViewLicenceApplicationFormDocument = true; CanEditLicenceApplicationFormDocument = false; #endregion #region licence document CanViewLicenceDocument = ( ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NewOperatingLicence && ParentApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditation ); CanEditLicenceDocument = false; #endregion #region service types CanViewServiceTypeDetails = CanViewLicenceDetails; CanEditServiceTypeDetails = false; #endregion #region vehicle type CanViewVehicleTypeDetails = CanViewLicenceDetails; CanEditVehicleTypeDetails = false; #endregion #region existing vehicle CanViewExistingVehicleDetails = ( ParentApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value || ParentApplicationView.ApplicationRequestType.IncludeCovType.Value || ParentApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value || ParentApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ); ExistingVehicleLabel = ( ParentApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value || ParentApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ) ? "Old vehicle" : "Vehicle"; #endregion #region new vehicle CanViewNewVehicleDetails = true; CanEditNewVehicleDetails = false; NewVehicleLabel = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicence || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value || ParentApplicationView.ApplicationRequestType.IncludeCovType.Value || ParentApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value ) ? "New Vehicle" : "Vehicle"; #endregion #region new vehicle documents CanViewNewVehicleDocuments = true; CanEditNewVehicleDocuments = false; #endregion #region routes/area of operation if (ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence) { CanViewRouteDetails = false; CanEditRouteDetails = false; } else { CanViewRouteDetails = true; CanEditRouteDetails = false; } #endregion #region payment details CanViewPaymentDetails = ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture; CanEditPaymentDetails = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 2); #endregion #region gazette details CanViewGazetteDetails = ParentApplicationView.IsGazettingRequired && ( ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Gazetting || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ); #endregion #region objection details // Hide Objections section entirely for NPTR E-hailing App Provider Registration types (60/61/62) var isEhailingProviderType = ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistration || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistrationRenewal || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistrationAmendConditions; CanViewObjections = !isEhailingProviderType && (ParentApplicationView.IsGazettingRequired || ParentApplicationView.IsAdjudicationRequired) && ( ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Gazetting || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ); CanEditObjections = false; #endregion #region inspections CanViewInspectionDetails = ParentApplicationView.IsInspectionRequired && ( ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture && ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Payment && ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Verification ); CanEditInspectionDetails = false; #endregion #region referrals CanViewReferrals = ParentApplicationView.IsReferralRequired && ( ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture && ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Verification && ParentApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Payment ); CanEditReferralsDetails = false; #endregion #region adjudication details CanViewAdjudicationDetails = ParentApplicationView.IsAdjudicationRequired && ( ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ParentApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ); #endregion #region Special/Temp Licence details CanViewSpecialLicenceDetails = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence ); CanEditSpecialLicenceDetails = false; #endregion #region Temporary replacement details CanViewTemporaryReplacementDetails = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ); CanEditTemporaryReplacementDetails = false; #endregion #region Upliftment Extension details CanViewUpliftmentExtensionDetails = ( ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.UpliftmentExtension ); CanEditUpliftmentExtensionDetails = false; #endregion #region Can Print Temporary Replacement Letter CanPrintTemporaryReplacementLetter = false; #endregion #region Can view new route requests CanViewNewRouteRequests = (ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ParentApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); #endregion } else { #region TAT Details CanViewTATDetails = true; CanViewRelatedTATRequest = false; #endregion #region applicant details // Before PRE releases parent file: still show TAT appellant during Data Capture (step 1) and Payment (step 2). // Consolidated plan / Change 2: Particulars of applicant must remain visible on payment (read-only on step 2). var tatShowApplicantOrProxyBeforePreRelease = activeUserTask != null && (activeUserTask.WorkflowTemplateStepNumber == 1 || activeUserTask.WorkflowTemplateStepNumber == 2); CanViewApplicantDetails = tatShowApplicantOrProxyBeforePreRelease; CanEditApplicantDetails = tatShowApplicantOrProxyBeforePreRelease && activeUserTask.WorkflowTemplateStepNumber == 1; #endregion #region proxy details CanViewProxyDetails = tatShowApplicantOrProxyBeforePreRelease; CanEditProxyDetails = tatShowApplicantOrProxyBeforePreRelease && activeUserTask.WorkflowTemplateStepNumber == 1; #endregion // Change 1: prepopulate particulars from parent; only cellphone editable on DC1 (step 1) before PRE release. TATDc1ApplicantOnlyCellEditable = activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 1; CanEditTATAppellantContactCell = TATDc1ApplicantOnlyCellEditable; #region existing licence holder details CanViewPreviousLicenceHolderDetails = false; CanEditPreviousLicenceHolderDetails = false; #endregion #region nptr livery details CanViewNptrLiveryDetails = false; CanEditNptrLiveryDetails = false; #endregion #region nptr vehicle maintenance details CanViewNptrVehicleMaintenanceDetails = false; CanEditNptrVehicleMaintenanceDetails = false; #endregion #region nptr vehicle summary details CanViewNptrVehicleSummaryDetails = false; CanEditNptrVehicleSummaryDetails = false; #endregion #region authority CanViewAuthorityDetails = false; CanEditAuthorityDetails = false; #endregion #region licences CanViewLicenceDetails = false; CanEditLicenceDetails = false; #endregion #region licence application form document CanViewLicenceApplicationFormDocument = false; CanEditLicenceApplicationFormDocument = false; #endregion #region licence document CanViewLicenceDocument = false; CanEditLicenceDocument = false; #endregion #region service types CanViewServiceTypeDetails = false; CanEditServiceTypeDetails = false; #endregion #region vehicle type CanViewVehicleTypeDetails = false; CanEditVehicleTypeDetails = false; #endregion #region existing vehicle CanViewExistingVehicleDetails = false; ExistingVehicleLabel = ( ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ) ? "Vehicle Details" : "Vehicle"; #endregion #region new vehicle CanViewNewVehicleDetails = false; CanEditNewVehicleDetails = false; NewVehicleLabel = ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value ) ? "Vehicle Details" : "Vehicle"; #endregion #region new vehicle documents CanViewNewVehicleDocuments = false; CanEditNewVehicleDocuments = false; #endregion #region routes/area of operation CanViewRouteDetails = false; CanEditRouteDetails = false; #endregion #region payment details CanViewPaymentDetails = ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture; CanEditPaymentDetails = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 2); #endregion #region gazette details CanViewGazetteDetails = false; #endregion #region objection details CanViewObjections = false; CanEditObjections = false; #endregion #region inspections CanViewInspectionDetails = false; CanEditInspectionDetails = false; #endregion #region referrals CanEditReferralsDetails = false; CanViewReferrals = false; #endregion #region adjudication details CanViewAdjudicationDetails = false; #endregion #region Special/Temp Licence details CanViewSpecialLicenceDetails = false; CanEditSpecialLicenceDetails = false; #endregion #region Temporary replacement details CanViewTemporaryReplacementDetails = false; CanEditTemporaryReplacementDetails = false; #endregion #region Upliftment Extension details CanViewUpliftmentExtensionDetails = false; CanEditUpliftmentExtensionDetails = false; #endregion #region Can Print Temporary Replacement Letter CanPrintTemporaryReplacementLetter = false; #endregion #region Can view new route requests CanViewNewRouteRequests = (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); #endregion } } else if (activeUserTask != null && activeUserTask.EscalatedFromID != null && (activeUserTask.WorkflowTemplateStepNumber == 1 || activeUserTask.WorkflowTemplateStepNumber == 3)) { #region TAT Details CanViewTATDetails = false; CanViewRelatedTATRequest = (ApplicationView.RelatedTATApplicationRequestID != null); #endregion #region applicant details CanViewApplicantDetails = true; CanEditApplicantDetails = true; #endregion #region proxy details CanViewProxyDetails = true; CanEditProxyDetails = true; #endregion #region existing licence holder details CanViewPreviousLicenceHolderDetails = true; CanEditPreviousLicenceHolderDetails = true; #endregion #region nptr livery details CanViewNptrLiveryDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) && activeUserTask.WorkflowTemplateStepNumber == 3 ); CanEditNptrLiveryDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation) && activeUserTask.WorkflowTemplateStepNumber == 3 ); #endregion #region nptr vehicle maintenance details CanViewNptrVehicleMaintenanceDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) && activeUserTask.WorkflowTemplateStepNumber == 3 ); CanEditNptrVehicleMaintenanceDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation) && activeUserTask.WorkflowTemplateStepNumber == 3 ); #endregion #region nptr vehicle summary details CanViewNptrVehicleSummaryDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) && activeUserTask.WorkflowTemplateStepNumber == 3 ); CanEditNptrVehicleSummaryDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation) && activeUserTask.WorkflowTemplateStepNumber == 3 ); #endregion #region authority CanViewAuthorityDetails = (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); CanEditAuthorityDetails = (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); #endregion #region licences // Hide Licence Details for NPTR E-hailing App Provider Registration types (60/61/62) CanViewLicenceDetails = ( ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistration && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistrationRenewal && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NPTR_EhailingProviderRegistrationAmendConditions ) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3); CanEditLicenceDetails = (ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3); #endregion #region licence application form document CanViewLicenceApplicationFormDocument = true; CanEditLicenceApplicationFormDocument = true; #endregion #region licence document CanViewLicenceDocument = true; CanEditLicenceDocument = true; #endregion #region service types CanViewServiceTypeDetails = CanViewLicenceDetails; CanEditServiceTypeDetails = true; #endregion #region vehicle type CanViewVehicleTypeDetails = true; CanEditVehicleTypeDetails = true; #endregion #region existing vehicle CanViewExistingVehicleDetails = false; #endregion #region new vehicle CanViewNewVehicleDetails = true; CanEditNewVehicleDetails = true; NewVehicleLabel = "Vehicle"; #endregion #region new vehicle documents CanViewNewVehicleDocuments = true; CanEditNewVehicleDocuments = true; #endregion #region routes/area of operation if (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence) { CanViewRouteDetails = false; CanEditRouteDetails = false; } else { CanViewRouteDetails = true; CanEditRouteDetails = true; } #endregion #region Can view new route requests CanViewNewRouteRequests = (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); #endregion } else { #region TAT Details if (ApplicationView.DivisionTypeID == (short)DivisionTypeEnum.TAT) { CanViewTATDetails = true; } else { CanViewTATDetails = false; } CanViewRelatedTATRequest = (ApplicationView.RelatedTATApplicationRequestID != null); #endregion #region applicant details CanViewApplicantDetails = true; CanEditApplicantDetails = CanViewApplicantDetails && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 1); #endregion #region proxy details CanViewProxyDetails = true; CanEditProxyDetails = CanViewProxyDetails && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 1); #endregion #region existing licence holder details CanViewPreviousLicenceHolderDetails = ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value; CanEditPreviousLicenceHolderDetails = CanViewPreviousLicenceHolderDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ); #endregion #region nptr livery details CanViewNptrLiveryDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3) ); CanEditNptrLiveryDetails = CanViewNptrLiveryDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ) && (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation ); #endregion #region nptr vehicle maintenance details CanViewNptrVehicleMaintenanceDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3) ); CanEditNptrVehicleMaintenanceDetails = CanViewNptrVehicleMaintenanceDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ) && (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation ); #endregion #region nptr vehicle summary details CanViewNptrVehicleSummaryDetails = ((ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3) ); CanEditNptrVehicleSummaryDetails = CanViewNptrVehicleSummaryDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ) && (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation ); #endregion #region authority CanViewAuthorityDetails = (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); CanEditAuthorityDetails = false; #endregion #region licences if (activeUserTask == null && (ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Gazetting || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication)) { CanViewLicenceDetails = true; CanEditLicenceDetails = false; // Adjudication / gazette read-only: show NPTR sections (same types as data capture step 3) if (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddOperatingLicenceToAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation) { CanViewNptrLiveryDetails = true; CanViewNptrVehicleMaintenanceDetails = true; CanViewNptrVehicleSummaryDetails = true; } } else { CanViewLicenceDetails = (ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes) && (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3); CanEditLicenceDetails = false; } #endregion #region licence application form document CanViewLicenceApplicationFormDocument = true; CanEditLicenceApplicationFormDocument = CanViewLicenceApplicationFormDocument && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ); #endregion #region licence document CanViewLicenceDocument = ( ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NewOperatingLicence && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditation && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes ); CanEditLicenceDocument = CanViewLicenceDocument && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ); #endregion #region service types CanViewServiceTypeDetails = (CanViewLicenceDetails); CanEditServiceTypeDetails = CanViewServiceTypeDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ) && ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.DuplicateLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ConversionOfMeteredTaxiToEhailing || ApplicationView.ApplicationRequestType.IncludeRenewalType.Value || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value ); #endregion #region vehicle type CanViewVehicleTypeDetails = CanViewLicenceDetails; CanEditVehicleTypeDetails = CanViewVehicleTypeDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ) && ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.IncreaseCarryingCapacity || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.DuplicateLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ConversionOfMeteredTaxiToEhailing || ApplicationView.ApplicationRequestType.IncludeRenewalType.Value || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value ); #endregion #region existing vehicle CanViewExistingVehicleDetails = ( ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ); ExistingVehicleLabel = ( ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ) ? "vehicle Details" : "Vehicle"; #endregion #region new vehicle CanViewNewVehicleDetails = (ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.ApplicationForAccreditationWithoutOperatingLicence && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); CanEditNewVehicleDetails = ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForRenewalOfAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicenceFromSource || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.DuplicateLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ConversionOfMeteredTaxiToEhailing || ApplicationView.ApplicationRequestType.IncludeRenewalType.Value || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value ) && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ); NewVehicleLabel = ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.NewOperatingLicence || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.ApplicationForAccreditation || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements || ApplicationView.ApplicationRequestType.IncludeNormalTransferType.Value || ApplicationView.ApplicationRequestType.IncludeDeceasedTransferType.Value || ApplicationView.ApplicationRequestType.IncludeCovType.Value || ApplicationView.ApplicationRequestType.IncludeIncreaseInCapacityType.Value ) ? "Vehicle Details" : "Vehicle"; #endregion #region new vehicle documents CanViewNewVehicleDocuments = (ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); CanEditNewVehicleDocuments = activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3; #endregion #region routes/area of operation if (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence) { CanViewRouteDetails = false; CanEditRouteDetails = false; } else { CanViewRouteDetails = true; CanEditRouteDetails = CanViewRouteDetails && ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3 ) && ApplicationView.ApplicationRequestTypeID != (short)ApplicationRequestTypeEnum.NewTATRequest; } #endregion #region payment details CanViewPaymentDetails = ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture; CanEditPaymentDetails = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 2); #endregion #region gazette details CanViewGazetteDetails = ApplicationView.IsGazettingRequired && ( ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Gazetting || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ); #endregion #region objection details CanViewObjections = (ApplicationView.IsGazettingRequired) && ( ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Gazetting || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ) || (ApplicationView.IsAdjudicationRequired) && ( ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ); CanEditObjections = CanViewObjections && ApplicationView.GazetteNoticeExpiryDate != null && ApplicationView.GazetteNoticeExpiryDate >= DateTime.Now; #endregion #region inspections CanViewInspectionDetails = ApplicationView.IsInspectionRequired && ( ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture && ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Payment && ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Verification ); CanEditInspectionDetails = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 11); #endregion #region referrals if (activeUserTask == null && ApplicationView.IsReferralRequired && (ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Gazetting || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication)) { CanEditReferralsDetails = false; CanViewReferrals = true; } else { CanEditReferralsDetails = ApplicationView.IsReferralRequired && (ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.DataCapture && ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Verification && ApplicationView.ApplicationStatusID != (short)ApplicationStatusEnum.Payment); CanViewReferrals = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 12); } #endregion #region adjudication details CanViewAdjudicationDetails = ApplicationView.IsAdjudicationRequired && ( ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Adjudication || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Finalised || ApplicationView.ApplicationStatusID == (short)ApplicationStatusEnum.Cancelled ); #endregion #region Special/Temp Licence details CanViewSpecialLicenceDetails = ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence ); CanEditSpecialLicenceDetails = (activeUserTask != null && (activeUserTask.WorkflowTemplateStepNumber == 3 || activeUserTask.WorkflowTemplateStepNumber == 1)) && ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporarySpecialLicence ); #endregion #region Temporary replacement details CanViewTemporaryReplacementDetails = ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ); CanEditTemporaryReplacementDetails = (activeUserTask != null && (activeUserTask.WorkflowTemplateStepNumber == 3 || activeUserTask.WorkflowTemplateStepNumber == 1)) && ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ); #endregion #region Upliftment Extension details CanViewUpliftmentExtensionDetails = ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.UpliftmentExtension ); CanEditUpliftmentExtensionDetails = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 3) && ( ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.UpliftmentExtension ); #endregion #region Can Print Temporary Replacement Letter CanPrintTemporaryReplacementLetter = ( activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 16 && ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.TemporaryReplacements ); #endregion #region Can view new route requests CanViewNewRouteRequests = (ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AddNewAuthorisationsRoutes || ApplicationView.ApplicationRequestTypeID == (short)ApplicationRequestTypeEnum.AmendAuthorisationsRoutes); #endregion } // Enable Documentation only after intial catire and payment detail captured CanViewDocumentation = activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber >= 3; } } #endregion #region TAT applicant / proxy display merge (before PRE release) /// /// Before PRE releases the parent OL file, the TAT application row may not yet mirror the holder's applicant/proxy. /// Fill missing fields from the parent (copied-from) application so Data Capture and Payment show the same particulars. /// public static void MergeTatApplicantProxyFromParentBeforePreRelease(ApplicationDetail tat, ApplicationDetail parent) { if (tat == null || parent == null) { return; } if (parent.Applicant != null) { if (tat.Applicant == null) { tat.Applicant = new ApplicationApplicantDetail { ApplicationDetailID = tat.ApplicationDetailID }; } var c = tat.Applicant; var p = parent.Applicant; if (string.IsNullOrWhiteSpace(c.SurnameOrCompanyName)) { c.SurnameOrCompanyName = p.SurnameOrCompanyName; } if (string.IsNullOrWhiteSpace(c.FirstNames)) { c.FirstNames = p.FirstNames; } if (c.IDTypeID == null) { c.IDTypeID = p.IDTypeID; } if (string.IsNullOrWhiteSpace(c.IDNumberOrBusinessRegistrationNo)) { c.IDNumberOrBusinessRegistrationNo = p.IDNumberOrBusinessRegistrationNo; } if (string.IsNullOrWhiteSpace(c.PhysicalAddress)) { c.PhysicalAddress = p.PhysicalAddress; } if (string.IsNullOrWhiteSpace(c.PhysicalAddressCode)) { c.PhysicalAddressCode = p.PhysicalAddressCode; } if (string.IsNullOrWhiteSpace(c.PostalAddress)) { c.PostalAddress = p.PostalAddress; } if (string.IsNullOrWhiteSpace(c.PostalAddressCode)) { c.PostalAddressCode = p.PostalAddressCode; } if (string.IsNullOrWhiteSpace(c.TelPhone)) { c.TelPhone = p.TelPhone; } if (string.IsNullOrWhiteSpace(c.TelCell)) { c.TelCell = p.TelCell; } if (string.IsNullOrWhiteSpace(c.TelFax)) { c.TelFax = p.TelFax; } if (string.IsNullOrWhiteSpace(c.Email)) { c.Email = p.Email; } if (string.IsNullOrWhiteSpace(c.SARSIncomeTaxNumber)) { c.SARSIncomeTaxNumber = p.SARSIncomeTaxNumber; } if (string.IsNullOrWhiteSpace(c.TradeName)) { c.TradeName = p.TradeName; } if (string.IsNullOrWhiteSpace(c.TypeOfBusiness)) { c.TypeOfBusiness = p.TypeOfBusiness; } if (c.BusinessTypeID == null) { c.BusinessTypeID = p.BusinessTypeID; } if (c.ProvinceID == null) { c.ProvinceID = p.ProvinceID; } if (c.RegionID == null) { c.RegionID = p.RegionID; } if (c.VerifiedMemberID == null) { c.VerifiedMemberID = p.VerifiedMemberID; } } if (parent.Proxy != null) { if (tat.Proxy == null) { tat.Proxy = new ApplicationProxyDetail { ApplicationDetailID = tat.ApplicationDetailID, RequiresProxy = parent.Proxy.RequiresProxy, Surname = parent.Proxy.Surname, FirstNames = parent.Proxy.FirstNames, IDTypeID = parent.Proxy.IDTypeID, TelPhone = parent.Proxy.TelPhone, TelCell = parent.Proxy.TelCell, TelFax = parent.Proxy.TelFax, Email = parent.Proxy.Email, IDNumberOrBusinessRegistrationNo = parent.Proxy.IDNumberOrBusinessRegistrationNo }; } else { var cp = tat.Proxy; var pp = parent.Proxy; if (string.IsNullOrWhiteSpace(cp.Surname)) { cp.Surname = pp.Surname; } if (string.IsNullOrWhiteSpace(cp.FirstNames)) { cp.FirstNames = pp.FirstNames; } if (cp.IDTypeID == null) { cp.IDTypeID = pp.IDTypeID; } if (string.IsNullOrWhiteSpace(cp.IDNumberOrBusinessRegistrationNo)) { cp.IDNumberOrBusinessRegistrationNo = pp.IDNumberOrBusinessRegistrationNo; } if (string.IsNullOrWhiteSpace(cp.TelPhone)) { cp.TelPhone = pp.TelPhone; } if (string.IsNullOrWhiteSpace(cp.TelCell)) { cp.TelCell = pp.TelCell; } if (string.IsNullOrWhiteSpace(cp.TelFax)) { cp.TelFax = pp.TelFax; } if (string.IsNullOrWhiteSpace(cp.Email)) { cp.Email = pp.Email; } } } // Appellant (TAT) row: align with parent applicant when still empty (Change 1). if (parent.Applicant != null) { var pApp = parent.Applicant; if (tat.ApplicationTATDetail == null) { tat.ApplicationTATDetail = new ApplicationTATDetail { ApplicationDetailID = tat.ApplicationDetailID }; } var t = tat.ApplicationTATDetail; if (string.IsNullOrWhiteSpace(t.TatRequestByName)) { t.TatRequestByName = FormatTatAppellantDisplayNameForPrecheck(pApp); } if (t.TatRequestByIDTypeID == null) { t.TatRequestByIDTypeID = pApp.IDTypeID; } if (string.IsNullOrWhiteSpace(t.TatRequestByIDNumber)) { t.TatRequestByIDNumber = pApp.IDNumberOrBusinessRegistrationNo; } if (string.IsNullOrWhiteSpace(t.OriginalApplicationNumber) && !string.IsNullOrWhiteSpace(parent.ApplicationNumber)) { t.OriginalApplicationNumber = parent.ApplicationNumber; } } } /// /// Builds a single display name for TAT appellant fields from parent applicant (Change 1). /// public static string FormatTatAppellantDisplayNameForPrecheck(ApplicationApplicantDetail applicant) { if (applicant == null) { return null; } var parts = new List(); if (!string.IsNullOrWhiteSpace(applicant.FirstNames)) { parts.Add(applicant.FirstNames.Trim()); } if (!string.IsNullOrWhiteSpace(applicant.SurnameOrCompanyName)) { parts.Add(applicant.SurnameOrCompanyName.Trim()); } if (parts.Count > 0) { return string.Join(" ", parts); } return applicant.SurnameOrCompanyName; } #endregion } }