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)); }
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()) })); }