Ejemplo n.º 1
0
        public IActionResult ReportResponsiblePersonGet(string encryptedOrganisationId, int reportingYear)
        {
            ControllerHelper.Throw404IfFeatureDisabled(FeatureFlag.NewReportingJourney);

            long organisationId = ControllerHelper.DecryptOrganisationIdOrThrow404(encryptedOrganisationId);

            ControllerHelper.ThrowIfUserAccountRetiredOrEmailNotVerified(User, dataRepository);
            ControllerHelper.ThrowIfUserDoesNotHavePermissionsForGivenOrganisation(User, dataRepository, organisationId);
            ControllerHelper.ThrowIfReportingYearIsOutsideOfRange(reportingYear);

            Organisation organisation = dataRepository.Get <Organisation>(organisationId);

            if (organisation.SectorType == SectorTypes.Public)
            {
                string nextPageUrl = Url.Action("ReportOverview", "ReportOverview", new { encryptedOrganisationId = encryptedOrganisationId, reportingYear = reportingYear });
                StatusMessageHelper.SetStatusMessage(Response, "Public authority employers are not required to provide a person responsible", nextPageUrl);
                return(LocalRedirect(nextPageUrl));
            }

            var viewModel = new ReportResponsiblePersonViewModel();

            PopulateViewModel(viewModel, organisationId, reportingYear);
            SetValuesFromDraftReturnOrSubmittedReturn(viewModel, organisationId, reportingYear);

            return(View("ReportResponsiblePerson", viewModel));
        }
Ejemplo n.º 2
0
        private void PopulateViewModel(ReportResponsiblePersonViewModel viewModel, long organisationId, int reportingYear)
        {
            Organisation organisation = dataRepository.Get <Organisation>(organisationId);

            viewModel.Organisation  = organisation;
            viewModel.ReportingYear = reportingYear;

            viewModel.IsEditingSubmittedReturn = organisation.HasSubmittedReturn(reportingYear);
        }
Ejemplo n.º 3
0
        private void SaveChangesToDraftReturn(ReportResponsiblePersonViewModel viewModel, long organisationId, int reportingYear)
        {
            DraftReturn draftReturn = draftReturnService.GetOrCreateDraftReturn(organisationId, reportingYear);

            draftReturn.FirstName = viewModel.ResponsiblePersonFirstName;
            draftReturn.LastName  = viewModel.ResponsiblePersonLastName;
            draftReturn.JobTitle  = viewModel.ResponsiblePersonJobTitle;

            draftReturnService.SaveDraftReturnOrDeleteIfNotRelevent(draftReturn);
        }
Ejemplo n.º 4
0
        private void SetValuesFromDraftReturnOrSubmittedReturn(ReportResponsiblePersonViewModel viewModel, long organisationId, int reportingYear)
        {
            DraftReturn draftReturn = draftReturnService.GetDraftReturn(organisationId, reportingYear);

            if (draftReturn != null)
            {
                SetValuesFromDraftReturn(viewModel, draftReturn);
                return;
            }

            Return submittedReturn = viewModel.Organisation.GetReturn(reportingYear);

            if (submittedReturn != null)
            {
                SetValuesFromSubmittedReturn(viewModel, submittedReturn);
                return;
            }
        }
Ejemplo n.º 5
0
 private void SetValuesFromSubmittedReturn(ReportResponsiblePersonViewModel viewModel, Return submittedReturn)
 {
     viewModel.ResponsiblePersonFirstName = submittedReturn.FirstName;
     viewModel.ResponsiblePersonLastName  = submittedReturn.LastName;
     viewModel.ResponsiblePersonJobTitle  = submittedReturn.JobTitle;
 }
Ejemplo n.º 6
0
 private void SetValuesFromDraftReturn(ReportResponsiblePersonViewModel viewModel, DraftReturn draftReturn)
 {
     viewModel.ResponsiblePersonFirstName = draftReturn.FirstName;
     viewModel.ResponsiblePersonLastName  = draftReturn.LastName;
     viewModel.ResponsiblePersonJobTitle  = draftReturn.JobTitle;
 }
Ejemplo n.º 7
0
 private void ValidateUserInput(ReportResponsiblePersonViewModel viewModel)
 {
     viewModel.ParseAndValidateParameters(Request, m => m.ResponsiblePersonFirstName);
     viewModel.ParseAndValidateParameters(Request, m => m.ResponsiblePersonLastName);
     viewModel.ParseAndValidateParameters(Request, m => m.ResponsiblePersonJobTitle);
 }
Ejemplo n.º 8
0
        public IActionResult ReportResponsiblePersonPost(string encryptedOrganisationId, int reportingYear, ReportResponsiblePersonViewModel viewModel)
        {
            ControllerHelper.Throw404IfFeatureDisabled(FeatureFlag.NewReportingJourney);

            long organisationId = ControllerHelper.DecryptOrganisationIdOrThrow404(encryptedOrganisationId);

            ControllerHelper.ThrowIfUserAccountRetiredOrEmailNotVerified(User, dataRepository);
            ControllerHelper.ThrowIfUserDoesNotHavePermissionsForGivenOrganisation(User, dataRepository, organisationId);
            ControllerHelper.ThrowIfReportingYearIsOutsideOfRange(reportingYear);

            Organisation organisation = dataRepository.Get <Organisation>(organisationId);

            if (organisation.SectorType == SectorTypes.Public)
            {
                string nextPagePublicSectorUrl = Url.Action("ReportOverview", "ReportOverview", new { encryptedOrganisationId = encryptedOrganisationId, reportingYear = reportingYear });
                StatusMessageHelper.SetStatusMessage(Response, "Public authority employers are not required to provide a person responsible", nextPagePublicSectorUrl);
                return(LocalRedirect(nextPagePublicSectorUrl));
            }

            ValidateUserInput(viewModel);

            if (viewModel.HasAnyErrors())
            {
                PopulateViewModel(viewModel, organisationId, reportingYear);
                return(View("ReportResponsiblePerson", viewModel));
            }

            SaveChangesToDraftReturn(viewModel, organisationId, reportingYear);

            string nextPageUrl = viewModel.Action == ReportPagesAction.Save
                ? Url.Action("ReportResponsiblePersonGet", "ReportResponsiblePerson", new { encryptedOrganisationId = encryptedOrganisationId, reportingYear = reportingYear })
                : Url.Action("ReportOverview", "ReportOverview", new { encryptedOrganisationId = encryptedOrganisationId, reportingYear = reportingYear });

            StatusMessageHelper.SetStatusMessage(Response, "Saved changes to person responsible in your organisation", nextPageUrl);
            return(LocalRedirect(nextPageUrl));
        }