예제 #1
0
 private void SetFiguresFromDraftReturn(ReportBonusPayViewModel viewModel, DraftReturn draftReturn)
 {
     viewModel.FemaleBonusPayPercent  = draftReturn.FemaleMedianBonusPayPercent;
     viewModel.MaleBonusPayPercent    = draftReturn.MaleMedianBonusPayPercent;
     viewModel.DiffMeanBonusPercent   = draftReturn.DiffMeanBonusPercent;
     viewModel.DiffMedianBonusPercent = draftReturn.DiffMedianBonusPercent;
 }
예제 #2
0
 private void SetFiguresFromSubmittedReturn(ReportBonusPayViewModel viewModel, Return submittedReturn)
 {
     viewModel.FemaleBonusPayPercent  = submittedReturn.FemaleMedianBonusPayPercent;
     viewModel.MaleBonusPayPercent    = submittedReturn.MaleMedianBonusPayPercent;
     viewModel.DiffMeanBonusPercent   = submittedReturn.DiffMeanBonusPercent;
     viewModel.DiffMedianBonusPercent = submittedReturn.DiffMedianBonusPercent;
 }
예제 #3
0
 private void ValidateUserInput(ReportBonusPayViewModel viewModel)
 {
     viewModel.ParseAndValidateParameters(Request, m => m.FemaleBonusPayPercent);
     viewModel.ParseAndValidateParameters(Request, m => m.MaleBonusPayPercent);
     viewModel.ParseAndValidateParameters(Request, m => m.DiffMeanBonusPercent);
     viewModel.ParseAndValidateParameters(Request, m => m.DiffMedianBonusPercent);
 }
예제 #4
0
        private void SaveChangesToDraftReturn(ReportBonusPayViewModel viewModel, long organisationId, int reportingYear)
        {
            DraftReturn draftReturn = draftReturnService.GetOrCreateDraftReturn(organisationId, reportingYear);

            draftReturn.FemaleMedianBonusPayPercent = viewModel.FemaleBonusPayPercent;
            draftReturn.MaleMedianBonusPayPercent   = viewModel.MaleBonusPayPercent;
            draftReturn.DiffMeanBonusPercent        = viewModel.DiffMeanBonusPercent;
            draftReturn.DiffMedianBonusPercent      = viewModel.DiffMedianBonusPercent;

            draftReturnService.SaveDraftReturnOrDeleteIfNotRelevent(draftReturn);
        }
예제 #5
0
        private void PopulateViewModel(ReportBonusPayViewModel viewModel, long organisationId, int reportingYear)
        {
            Organisation organisation = dataRepository.Get <Organisation>(organisationId);

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

            Return submittedReturn          = organisation.GetReturn(reportingYear);
            bool   isEditingSubmittedReturn = submittedReturn != null;

            viewModel.IsEditingSubmittedReturn = isEditingSubmittedReturn;
        }
예제 #6
0
        public IActionResult ReportBonusPayGet(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);

            var viewModel = new ReportBonusPayViewModel();

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

            return(View("ReportBonusPay", viewModel));
        }
예제 #7
0
        private void SetFigures(ReportBonusPayViewModel viewModel, long organisationId, int reportingYear)
        {
            DraftReturn draftReturn = draftReturnService.GetDraftReturn(organisationId, reportingYear);

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

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

            if (submittedReturn != null)
            {
                SetFiguresFromSubmittedReturn(viewModel, submittedReturn);
                return;
            }
        }
예제 #8
0
        public IActionResult ReportBonusPayPost(string encryptedOrganisationId, int reportingYear, ReportBonusPayViewModel viewModel)
        {
            ControllerHelper.Throw404IfFeatureDisabled(FeatureFlag.NewReportingJourney);

            long organisationId = ControllerHelper.DecryptOrganisationIdOrThrow404(encryptedOrganisationId);

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

            ValidateUserInput(viewModel);

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

            SaveChangesToDraftReturn(viewModel, organisationId, reportingYear);

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

            StatusMessageHelper.SetStatusMessage(Response, "Saved changes to bonus pay", nextPageUrl);
            return(LocalRedirect(nextPageUrl));
        }