From bf92c52635b4c06df66e81ff7ff3ddaf6127bdc4 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:05:42 +0000 Subject: [PATCH] CLDC-2593 Add upcoming deadlines section (#2119) * Add upcoming deadlines section * Update the content to use the correct dates * Update content * lint * typos --- app/helpers/collection_time_helper.rb | 20 ++++++++++++ app/models/form_handler.rb | 4 +++ app/views/home/_upcoming_deadlines.html.erb | 35 +++++++++++++++++++++ app/views/home/index.html.erb | 2 ++ spec/helpers/collection_time_helper_spec.rb | 30 ++++++++++++++++++ 5 files changed, 91 insertions(+) create mode 100644 app/views/home/_upcoming_deadlines.html.erb diff --git a/app/helpers/collection_time_helper.rb b/app/helpers/collection_time_helper.rb index ea7601c70..6f8ef62fc 100644 --- a/app/helpers/collection_time_helper.rb +++ b/app/helpers/collection_time_helper.rb @@ -45,4 +45,24 @@ module CollectionTimeHelper def previous_collection_start_date current_collection_start_date - 1.year end + + def quarter_for_date(date: Time.zone.now) + quarters = [ + { quarter: "Q3", cutoff_date: Time.zone.local(2024, 1, 12), start_date: Time.zone.local(2023, 10, 1), end_date: Time.zone.local(2023, 12, 31) }, + { quarter: "Q1", cutoff_date: Time.zone.local(2024, 7, 12), start_date: Time.zone.local(2024, 4, 1), end_date: Time.zone.local(2024, 6, 30) }, + { quarter: "Q2", cutoff_date: Time.zone.local(2024, 10, 11), start_date: Time.zone.local(2024, 7, 1), end_date: Time.zone.local(2024, 9, 30) }, + { quarter: "Q3", cutoff_date: Time.zone.local(2025, 1, 10), start_date: Time.zone.local(2024, 10, 1), end_date: Time.zone.local(2024, 12, 31) }, + ] + + quarter = quarters.find { |q| date.between?(q[:start_date], q[:cutoff_date] + 1.day) } + + return unless quarter + + OpenStruct.new( + quarter: quarter[:quarter], + cutoff_date: quarter[:cutoff_date], + quarter_start_date: quarter[:start_date], + quarter_end_date: quarter[:end_date], + ) + end end diff --git a/app/models/form_handler.rb b/app/models/form_handler.rb index 83bfb0f8a..d9a3d4a35 100644 --- a/app/models/form_handler.rb +++ b/app/models/form_handler.rb @@ -28,6 +28,10 @@ class FormHandler forms["current_lettings"] end + def previous_lettings_form + forms["previous_lettings"] + end + def current_sales_form forms["current_sales"] end diff --git a/app/views/home/_upcoming_deadlines.html.erb b/app/views/home/_upcoming_deadlines.html.erb new file mode 100644 index 000000000..ffed67ca1 --- /dev/null +++ b/app/views/home/_upcoming_deadlines.html.erb @@ -0,0 +1,35 @@ +
End of year deadline - <%= formatted_deadline %>: Deadline to submit logs for tenancies starting between <%= collection_start_date(Time.zone.now).to_formatted_s(:govuk_date) %> to <%= collection_end_date(Time.zone.now).to_formatted_s(:govuk_date) %>
+<% end %> + +<% current_quarter = quarter_for_date(date: Time.zone.now) %> +<% if current_quarter.present? %> +<%= "#{current_quarter.quarter} - #{current_quarter.cutoff_date.strftime('%A')} #{current_quarter.cutoff_date.to_formatted_s(:govuk_date)}" %>: Quarterly cut off date for tenancies and sales starting between <%= current_quarter.quarter_start_date.to_formatted_s(:govuk_date) %> and <%= current_quarter.quarter_end_date.to_formatted_s(:govuk_date) %>.
+<% end %> + +<% if !FormHandler.instance.in_crossover_period? %> +Try to complete your logs for each quarter by the cut-off date.
+You can still create logs for a previous quarter after its cut-off date, as long as you complete them by the end-of-year deadline: <%= formatted_deadline %>.
+<% end %> + +<% if FormHandler.instance.in_crossover_period? %> +<% previous_lettings_form = FormHandler.instance.previous_lettings_form %> +Prioritise completing logs for the closing collection year. You must complete all <%= previous_lettings_form.start_date.year %> to <%= previous_lettings_form.submission_deadline.year %> logs must by the end-of-year deadline. You can still create <%= current_lettings_form.start_date.year %> to <%= current_lettings_form.submission_deadline.year %> logs for this quarter after the quarterly cut-off date.
+<% end %> + +<%= govuk_details(summary_text: "Quarterly cut-off dates for 2023 to 2024") do %> +The 2023 to 2024 quarterly cut-off dates are:
+It is important that you meet these cut-off dates because we submit data to the Office for National Statistics quarterly, helping them create essential inflation statistics.
+Meeting these cut-off dates also gives you more accurate data for your own analysis, and reduces the burden at the end of the year.
+If you are not able to meet these quarterly dates, submit your logs as soon as you can so that they can be included in the annual data.
+<% end %> diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 7469ed18f..e87fde287 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -2,5 +2,7 @@