コード例 #1
0
        public IActionResult LateSubmissionReasonGet(string encryptedOrganisationId, int reportingYear)
        {
            long organisationId = ControllerHelper.DecryptOrganisationIdOrThrow404(encryptedOrganisationId);

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

            if (!draftReturnService.DraftReturnExistsAndRequiredFieldsAreComplete(organisationId, reportingYear))
            {
                return(RedirectToReportOverviewPage(encryptedOrganisationId, reportingYear, "This report is not ready to submit. Complete the remaining sections"));
            }

            DraftReturn draftReturn = draftReturnService.GetDraftReturn(organisationId, reportingYear);

            if (!draftReturnService.DraftReturnWouldBeNewlyLateIfSubmittedNow(draftReturn))
            {
                // If this is not a late submission, send the user back to the Overview page
                return(RedirectToAction("ReportOverview", "ReportOverview",
                                        new { encryptedOrganisationId, reportingYear }));
            }

            var viewModel = new LateSubmissionReasonViewModel();

            PopulateLateSubmissionViewModel(viewModel, organisationId, reportingYear);

            return(View("LateSubmissionReason", viewModel));
        }
コード例 #2
0
        public IActionResult SubmitReturnPost(string encryptedOrganisationId, int reportingYear)
        {
            long organisationId = ControllerHelper.DecryptOrganisationIdOrThrow404(encryptedOrganisationId);

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

            DraftReturn draftReturn = draftReturnService.GetDraftReturn(organisationId, reportingYear);

            if (!draftReturnService.DraftReturnExistsAndRequiredFieldsAreComplete(organisationId, reportingYear))
            {
                return(RedirectToReportOverviewPage(encryptedOrganisationId, reportingYear, "This report is not ready to submit. Complete the remaining sections"));
            }

            if (draftReturnService.DraftReturnWouldBeNewlyLateIfSubmittedNow(draftReturn))
            {
                // Late submission Reason
                return(RedirectToAction("LateSubmissionReasonGet", "LateSubmission", new { encryptedOrganisationId, reportingYear }));
            }

            User   user      = ControllerHelper.GetGpgUserFromAspNetUser(User, dataRepository);
            Return newReturn = returnService.CreateAndSaveReturnFromDraftReturn(draftReturn, user, Url);

            // Confirmation
            return(RedirectToAction("ReportConfirmation", "ReportConfirmation",
                                    new
            {
                encryptedOrganisationId,
                reportingYear,
                confirmationId = Encryption.EncryptQuerystring(newReturn.ReturnId.ToString())
            }));
        }