diff --git a/app/controllers/state_file/questions/md_tax_refund_controller.rb b/app/controllers/state_file/questions/md_tax_refund_controller.rb new file mode 100644 index 00000000000..da19c4ba8d0 --- /dev/null +++ b/app/controllers/state_file/questions/md_tax_refund_controller.rb @@ -0,0 +1,20 @@ +module StateFile + module Questions + class MdTaxRefundController < QuestionsController + def self.show?(intake) + # intake.calculated_refund_or_owed_amount.positive? + true + end + + def refund_amount + current_intake.calculated_refund_or_owed_amount + end + helper_method :refund_amount + + + private + + def card_postscript; end + end + end +end diff --git a/app/controllers/state_file/questions/taxes_owed_controller.rb b/app/controllers/state_file/questions/taxes_owed_controller.rb index 1bd37130026..abf74171716 100644 --- a/app/controllers/state_file/questions/taxes_owed_controller.rb +++ b/app/controllers/state_file/questions/taxes_owed_controller.rb @@ -2,7 +2,8 @@ module StateFile module Questions class TaxesOwedController < QuestionsController def self.show?(intake) - intake.calculated_refund_or_owed_amount.negative? # what happens if zero? + true + # intake.calculated_refund_or_owed_amount.negative? # what happens if zero? end def taxes_owed diff --git a/app/lib/navigation/state_file_md_question_navigation.rb b/app/lib/navigation/state_file_md_question_navigation.rb index 910a4bdad42..bb9c4681116 100644 --- a/app/lib/navigation/state_file_md_question_navigation.rb +++ b/app/lib/navigation/state_file_md_question_navigation.rb @@ -33,7 +33,7 @@ class StateFileMdQuestionNavigation < Navigation::StateFileBaseQuestionNavigatio Navigation::NavigationStep.new(StateFile::Questions::UnemploymentController), Navigation::NavigationStep.new(StateFile::Questions::MdReviewController), Navigation::NavigationStep.new(StateFile::Questions::TaxesOwedController), - Navigation::NavigationStep.new(StateFile::Questions::TaxRefundController), + Navigation::NavigationStep.new(StateFile::Questions::MdTaxRefundController), Navigation::NavigationStep.new(StateFile::Questions::EsignDeclarationController), # creates EfileSubmission and transitions to preparing ]), Navigation::NavigationSection.new("state_file.navigation.section_6", [ diff --git a/app/models/state_file_id_intake.rb b/app/models/state_file_id_intake.rb index 02a94a048a3..59c6e3690d7 100644 --- a/app/models/state_file_id_intake.rb +++ b/app/models/state_file_id_intake.rb @@ -20,6 +20,7 @@ # email_address_verified_at :datetime # failed_attempts :integer default(0), not null # federal_return_status :string +# has_unpaid_sales_use_tax :integer default("unfilled"), not null # hashed_ssn :string # last_sign_in_at :datetime # last_sign_in_ip :inet @@ -49,12 +50,19 @@ # spouse_last_name :string # spouse_middle_initial :string # spouse_suffix :string +# total_purchase_amount :decimal(12, 2) # unsubscribed_from_email :boolean default(FALSE), not null # withdraw_amount :integer # created_at :datetime not null # updated_at :datetime not null # federal_submission_id :string # visitor_id :string +# +# Indexes +# +# index_state_file_id_intakes_on_email_address (email_address) +# index_state_file_id_intakes_on_hashed_ssn (hashed_ssn) +# # Indexes # diff --git a/app/views/state_file/questions/md_tax_refund/_md_bank_details.html.erb b/app/views/state_file/questions/md_tax_refund/_md_bank_details.html.erb new file mode 100644 index 00000000000..ec3f97f3ea3 --- /dev/null +++ b/app/views/state_file/questions/md_tax_refund/_md_bank_details.html.erb @@ -0,0 +1,50 @@ +
+

<%= t(".bank_title") %>

+

<%= t(".foreign_accounts") %>

+
+ <% if owe_taxes %> + <%= form.hidden_field :app_time, value: app_time %> + <%= form.vita_min_money_field(:withdraw_amount, t('.withdraw_amount', owed_amount: taxes_owed), classes: ["form-width--long"]) %> + <% if before_withdrawal_date_deadline?(current_state_code) %> +
+ <% year = MultiTenantService.new(:statefile).current_tax_year + 1 %> + <%= form.cfa_date_select( + :date_electronic_withdrawal, + t(".date_withdraw_text", + withdrawal_deadline_date: I18n.l(withdrawal_date_deadline(current_state_code).to_date, format: :medium, locale: locale), + with_drawal_deadline_year: withdrawal_date_deadline(current_state_code).year), + options: { + start_year: year, + end_year: year, + } + ) %> +
+ <% else %> + <%= form.hidden_field :post_deadline_withdrawal_date, value: post_deadline_withdrawal_date(current_state_code) %> + <% end %> + <% end %> + + <%= form.cfa_input_field(:bank_name, t("views.questions.bank_details.bank_name"), classes: ["form-width--long"]) %> + <%= form.cfa_radio_set( + :account_type, + label_text: t("views.questions.bank_details.account_type.label"), + collection: [ + { value: :checking, label: t("views.questions.bank_details.account_type.checking") }, + { value: :savings, label: t("views.questions.bank_details.account_type.savings") }, + ] + ) + %> + <%= form.cfa_input_field(:routing_number, t(".routing_number"), classes: ["form-width--long", "disablecopy"]) %> + <%= form.cfa_input_field(:routing_number_confirmation, t(".confirm_routing_number"), classes: ["form-width--long", "disablepaste", "disablecopy"]) %> + <%= form.cfa_input_field(:account_number, t(".account_number"), classes: ["form-width--long", "disablecopy"]) %> + <%= form.cfa_input_field(:account_number_confirmation, t(".confirm_account_number"), classes: ["form-width--long", "disablepaste", "disablecopy"]) %> +
+

<%= t(".disclaimer") %>

+ <% if owe_taxes && !before_withdrawal_date_deadline?(current_state_code) %> +

+ <%= t(".after_deadline_default_withdrawal_info", + withdrawal_deadline_date: I18n.l(withdrawal_date_deadline(current_state_code).to_date, format: :medium, locale: locale), + with_drawal_deadline_year: withdrawal_date_deadline(current_state_code).year) %> +

+ <% end %> +
\ No newline at end of file diff --git a/app/views/state_file/questions/md_tax_refund/edit.html.erb b/app/views/state_file/questions/md_tax_refund/edit.html.erb new file mode 100644 index 00000000000..bce5a64fc06 --- /dev/null +++ b/app/views/state_file/questions/md_tax_refund/edit.html.erb @@ -0,0 +1,36 @@ +<% content_for :page_title, t(".page_title") %> + +<% content_for :card do %> +

+ <%= t(".title_html", refund_amount: refund_amount, state_name: current_state_name) %> +

+ + <%= form_with model: @form, url: { action: :update }, method: :put, local: true, builder: VitaMinFormBuilder, html: { class: 'form-card form-card--long' } do |f| %> +
+
+
+ <%= f.cfa_radio_set( + :payment_or_deposit_type, + collection: [ + { value: :direct_deposit, label: t(".direct_deposit"), input_html: { "data-follow-up": "#deposit-to-bank" } }, + { value: :mail, label: t(".mail"), input_html: { "data-follow-up": "#mail-check" } }, + ] + ) %> +
+
+ +
+
+
+ <%= render 'state_file/questions/md_tax_refund/md_bank_details', form: f, owe_taxes: false %> +
+
+
+ <%= f.continue %> +
+ <% end %> +<% end %> + +<% content_for :script do %> + <%= render 'shared/disable_copy_paste' %> +<% end %> \ No newline at end of file diff --git a/spec/factories/state_file_id_intakes.rb b/spec/factories/state_file_id_intakes.rb index bd11c21c6c8..359c103ba63 100644 --- a/spec/factories/state_file_id_intakes.rb +++ b/spec/factories/state_file_id_intakes.rb @@ -20,6 +20,7 @@ # email_address_verified_at :datetime # failed_attempts :integer default(0), not null # federal_return_status :string +# has_unpaid_sales_use_tax :integer default("unfilled"), not null # hashed_ssn :string # last_sign_in_at :datetime # last_sign_in_ip :inet @@ -49,12 +50,14 @@ # spouse_last_name :string # spouse_middle_initial :string # spouse_suffix :string +# total_purchase_amount :decimal(12, 2) # unsubscribed_from_email :boolean default(FALSE), not null # withdraw_amount :integer # created_at :datetime not null # updated_at :datetime not null # federal_submission_id :string # visitor_id :string +# # Indexes # # index_state_file_id_intakes_on_email_address (email_address) diff --git a/spec/models/state_file_id_intake_spec.rb b/spec/models/state_file_id_intake_spec.rb index 4e423acda03..7ea706a0608 100644 --- a/spec/models/state_file_id_intake_spec.rb +++ b/spec/models/state_file_id_intake_spec.rb @@ -20,6 +20,7 @@ # email_address_verified_at :datetime # failed_attempts :integer default(0), not null # federal_return_status :string +# has_unpaid_sales_use_tax :integer default("unfilled"), not null # hashed_ssn :string # last_sign_in_at :datetime # last_sign_in_ip :inet @@ -49,12 +50,14 @@ # spouse_last_name :string # spouse_middle_initial :string # spouse_suffix :string +# total_purchase_amount :decimal(12, 2) # unsubscribed_from_email :boolean default(FALSE), not null # withdraw_amount :integer # created_at :datetime not null # updated_at :datetime not null # federal_submission_id :string # visitor_id :string +# # Indexes # # index_state_file_id_intakes_on_email_address (email_address)