diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index 9ab72e5a82..e300bfd1df 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -67,6 +67,7 @@ jobs: | Additional Payments | <${{ env.APP_URL }}/additional-payments/claim> | | Student Loans | <${{ env.APP_URL }}/student-loans/claim> | | Further Education | <${{ env.APP_URL }}/further-education-payments/landing-page> | + | Early Years Payment | <${{ env.APP_URL }}/early-years-payment-provider/landing-page> | | Relocation Payments | <${{ env.APP_URL }}/get-a-teacher-relocation-payment/landing-page> | | Admin | <${{ env.APP_URL }}/admin> | diff --git a/app/models/journeys.rb b/app/models/journeys.rb index 5a98bfa215..f0943fcb55 100644 --- a/app/models/journeys.rb +++ b/app/models/journeys.rb @@ -9,7 +9,8 @@ def self.table_name_prefix AdditionalPaymentsForTeaching, TeacherStudentLoanReimbursement, GetATeacherRelocationPayment, - FurtherEducationPayments + FurtherEducationPayments, + EarlyYearsPayment::Provider ].freeze def all diff --git a/app/models/journeys/early_years_payment/provider.rb b/app/models/journeys/early_years_payment/provider.rb new file mode 100644 index 0000000000..3611606b21 --- /dev/null +++ b/app/models/journeys/early_years_payment/provider.rb @@ -0,0 +1,16 @@ +module Journeys + module EarlyYearsPayment + module Provider + extend Base + extend self + + ROUTING_NAME = "early-years-payment-provider" + VIEW_PATH = "early_years_payment/provider" + I18N_NAMESPACE = "early_years_payment_provider" + POLICIES = [Policies::EarlyYearsPayment] + FORMS = { + "claims" => {} + } + end + end +end diff --git a/app/models/journeys/early_years_payment/provider/eligibility_checker.rb b/app/models/journeys/early_years_payment/provider/eligibility_checker.rb new file mode 100644 index 0000000000..41dc18f9d9 --- /dev/null +++ b/app/models/journeys/early_years_payment/provider/eligibility_checker.rb @@ -0,0 +1,8 @@ +module Journeys + module EarlyYearsPayment + module Provider + class EligibilityChecker < Journeys::EligibilityChecker + end + end + end +end diff --git a/app/models/journeys/early_years_payment/provider/session.rb b/app/models/journeys/early_years_payment/provider/session.rb new file mode 100644 index 0000000000..6bbc126e49 --- /dev/null +++ b/app/models/journeys/early_years_payment/provider/session.rb @@ -0,0 +1,9 @@ +module Journeys + module EarlyYearsPayment + module Provider + class Session < Journeys::Session + attribute :answers, SessionAnswersType.new + end + end + end +end diff --git a/app/models/journeys/early_years_payment/provider/session_answers.rb b/app/models/journeys/early_years_payment/provider/session_answers.rb new file mode 100644 index 0000000000..aed76440e2 --- /dev/null +++ b/app/models/journeys/early_years_payment/provider/session_answers.rb @@ -0,0 +1,11 @@ +module Journeys + module EarlyYearsPayment + module Provider + class SessionAnswers < Journeys::SessionAnswers + def policy + Policies::EarlyYearsPayment + end + end + end + end +end diff --git a/app/models/journeys/early_years_payment/provider/session_answers_type.rb b/app/models/journeys/early_years_payment/provider/session_answers_type.rb new file mode 100644 index 0000000000..5ae13b57cd --- /dev/null +++ b/app/models/journeys/early_years_payment/provider/session_answers_type.rb @@ -0,0 +1,7 @@ +module Journeys + module EarlyYearsPayment + module Provider + class SessionAnswersType < ::Journeys::SessionAnswersType; end + end + end +end diff --git a/app/models/journeys/early_years_payment/provider/slug_sequence.rb b/app/models/journeys/early_years_payment/provider/slug_sequence.rb new file mode 100644 index 0000000000..72a238301d --- /dev/null +++ b/app/models/journeys/early_years_payment/provider/slug_sequence.rb @@ -0,0 +1,25 @@ +module Journeys + module EarlyYearsPayment + module Provider + class SlugSequence + SLUGS = %w[].freeze + + def self.start_page_url + Rails.application.routes.url_helpers.landing_page_path("early-years-payment-provider") + end + + attr_reader :journey_session + + delegate :answers, to: :journey_session + + def initialize(journey_session) + @journey_session = journey_session + end + + def slugs + SLUGS + end + end + end + end +end diff --git a/app/models/policies/early_years_payment.rb b/app/models/policies/early_years_payment.rb new file mode 100644 index 0000000000..2f15831956 --- /dev/null +++ b/app/models/policies/early_years_payment.rb @@ -0,0 +1,14 @@ +module Policies + module EarlyYearsPayment + include BasePolicy + extend self + + # Percentage of claims to QA + MIN_QA_THRESHOLD = 10 + + # TODO: This is needed once the reply-to email address has been added to Gov Notify + def notify_reply_to_id + nil + end + end +end diff --git a/app/models/policies/early_years_payment/eligibility.rb b/app/models/policies/early_years_payment/eligibility.rb new file mode 100644 index 0000000000..fd8245bae4 --- /dev/null +++ b/app/models/policies/early_years_payment/eligibility.rb @@ -0,0 +1,17 @@ +module Policies + module EarlyYearsPayment + class Eligibility < ApplicationRecord + self.table_name = "early_years_payment_eligibilities" + + has_one :claim, as: :eligibility, inverse_of: :eligibility + + def policy + Policies::EarlyYearsPayment + end + + def ineligible? + false + end + end + end +end diff --git a/app/models/policies/early_years_payment/policy_eligibility_checker.rb b/app/models/policies/early_years_payment/policy_eligibility_checker.rb new file mode 100644 index 0000000000..b21a53db58 --- /dev/null +++ b/app/models/policies/early_years_payment/policy_eligibility_checker.rb @@ -0,0 +1,23 @@ +module Policies + module EarlyYearsPayment + class PolicyEligibilityChecker + attr_reader :answers + + delegate_missing_to :answers + + def initialize(answers:) + @answers = answers + end + + def status + return :ineligible if ineligible? + + :eligible_now + end + + def ineligible? + false + end + end + end +end diff --git a/app/views/early_years_payment/provider/landing_page.html.erb b/app/views/early_years_payment/provider/landing_page.html.erb new file mode 100644 index 0000000000..67e4011a16 --- /dev/null +++ b/app/views/early_years_payment/provider/landing_page.html.erb @@ -0,0 +1,139 @@ +
+ Use this service to make an early years financial incentive payment claim + for an employee. +
+ ++ To make a claim for an employee, they must: +
+ + <%= govuk_list [ + "have applied for a job with an incentive attached", + "have started their job after 15 May 2024", + "spend most of the time in their job (70% or more) working directly with children - there is no minimum number of hours and applies to all EYFS part and full time roles" + ], type: :bullet %> + ++ Working directly with children can involve any of the following: +
+ + <%= govuk_list [ + "working in the room (for example this can include playrooms, baserooms or classrooms)", + "guiding, supporting, and interacting with children in their learning and development", + "giving hands-on care, including health and hygiene" + ], type: :bullet %> + ++ The purpose of this incentive scheme is to increase the number of people + working with children in permanent roles, within the early years sector. +
+ ++ In the six months before starting their current job, your employee must + not have had a permanent job working directly with children in an early + years setting. +
+ ++ If they did work in early years in the 6 months before starting their + current job, you can claim if this was in the following types of + employment: +
+ + <%= govuk_list [ + "voluntary or unpaid work", + "casual and temporary" + ], type: :bullet %> + ++ Casual or temporary work could include: +
+ + <%= govuk_list [ + "zero-hour contracts", + "guaranteed minimum hour contracts", + "self-employed or freelance contracts", + "fixed term contracts (FTCs)", + "agency work and apprenticeship jobs" + ], type: :bullet %> + ++ You can find more information about employment contracts on the + <%= govuk_link_to("ACAS website", "https://www.acas.org.uk/employment-contracts") %>. +
+ ++ More information can be found in the + <%= govuk_link_to("guidance", "#") %>. +
+ ++ You’ll need to provide some details about your employee to make a claim. + You’ll be doing this on behalf of the company, or organisation, the + employee works for. +
+ ++ You should make sure you have collected their written consent to give us + this information before you start. You can use our + <%= govuk_link_to("consent form", "#") %> + to do this. +
+ ++ You’ll need their: +
+ + <%= govuk_list [ + "full name", + "start date", + "email address", + "PAYE reference number" + ], type: :bullet %> + ++ You must also provide your employee with a privacy notice that explains + what information will be collected, why it is being collected and who it + will be shared with. You can use our + <%= govuk_link_to("privacy notice", "#") %> + for this. +
+ ++ We’ll also ask you to confirm that they meet the eligibility criteria. +
+ ++ If your employee leaves their job before they’ve been in it for 6 months, + you should cancel their claim. +
+ ++ You can cancel a claim or get help on this service by contacting us at + <%= govuk_link_to t("early_years_payment_provider.feedback_email"), "mailto:#{t("early_years_payment_provider.feedback_email")}", no_visited_state: true %>. +
+ ++ Read more about the + <%= govuk_link_to("early years financial incentive payment", "#") %>. +
+ + <% if @journey_open %> + <%= govuk_start_button(text: "Start now", href: "#") %> + <% end %> +