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
}
}