<%= t("state_file.questions.review.county", filing_year: current_tax_year) %>
diff --git a/app/views/state_file/questions/shared/_az_retirement_income_deductions_review_header.html.erb b/app/views/state_file/questions/shared/_az_retirement_income_deductions_review_header.html.erb
index 31b82cb026..3e0180dc0d 100644
--- a/app/views/state_file/questions/shared/_az_retirement_income_deductions_review_header.html.erb
+++ b/app/views/state_file/questions/shared/_az_retirement_income_deductions_review_header.html.erb
@@ -1,33 +1,34 @@
-
-
-
<%=t(".title") %>
-
<%=t(".subtitle") %>
-
+<% if current_intake.eligible_1099rs.length.positive? %>
+
+
+
<%=t(".title") %>
+
<%=t(".subtitle") %>
+
-
-
+
+
+
+<% end %>
\ No newline at end of file
diff --git a/app/views/state_file/questions/shared/_id_retirement_income_deductions_review_header.html.erb b/app/views/state_file/questions/shared/_id_retirement_income_deductions_review_header.html.erb
index eae9681ecc..274977f635 100644
--- a/app/views/state_file/questions/shared/_id_retirement_income_deductions_review_header.html.erb
+++ b/app/views/state_file/questions/shared/_id_retirement_income_deductions_review_header.html.erb
@@ -1,5 +1,5 @@
<% if current_intake.calculator.line_or_zero(:ID39R_B_LINE_8e).positive? %>
-
+
<%= t(".qualified_retirement_benefits_deduction") %>
<%= t(".qualified_retirement_benefits_deduction_explain") %>
@@ -9,6 +9,6 @@
<% id_disability_or_retirement_link = current_intake.has_filer_between_62_and_65_years_old? ? StateFile::Questions::IdDisabilityController.to_path_helper(return_to_review: "y") : StateFile::Questions::IdRetirementAndPensionIncomeController.to_path_helper(return_to_review: "y", index: 0) %>
<%= link_to t("general.review_and_edit"), id_disability_or_retirement_link, class: "button--small" %>
-
+
<% end %>
diff --git a/app/views/state_file/questions/shared/_nc_retirement_income_deductions_review_header.erb b/app/views/state_file/questions/shared/_nc_retirement_income_deductions_review_header.erb
new file mode 100644
index 0000000000..65f48e55e4
--- /dev/null
+++ b/app/views/state_file/questions/shared/_nc_retirement_income_deductions_review_header.erb
@@ -0,0 +1,50 @@
+<% if current_intake.eligible_1099rs.length.positive? %>
+
+
+
<%=t(".retirement_income_deductions") %>
+
<%= t(".retirement_income_deductions_explanation") %>
+
+ <% current_intake.eligible_1099rs.each_with_index do |state_file1099_r, index| %>
+ <% followup = state_file1099_r.state_specific_followup %>
+ <% unless followup.nil? %>
+
" class="spacing-above-15 spacing-below-15">
+
+
<%= state_file1099_r.payer_name %>
+
+ <% if followup.income_source_bailey_settlement? %>
+ - <%= t(".retirement_income_source_bailey_settlement") %>
+ <% if followup.bailey_settlement_at_least_five_years_yes? %>
+ - <%= t(".bailey_settlement_at_least_five_years") %>
+ <% end %>
+ <% if followup.bailey_settlement_from_retirement_plan_yes? %>
+ - <%= t(".bailey_settlement_from_retirement_plan") %>
+ <% end %>
+ <% if !followup.bailey_settlement_from_retirement_plan_yes? && !followup.bailey_settlement_at_least_five_years_yes? %>
+ - <%= t(".none_apply") %>
+ <% end %>
+ <% elsif followup.income_source_uniformed_services? %>
+ - <%= t(".retirement_income_source_uniformed_services") %>
+ <% if followup.uniformed_services_retired_yes? %>
+ - <%= t(".uniformed_twenty_years_medical_retired") %>
+ <% end %>
+ <% if followup.uniformed_services_qualifying_plan_yes? %>
+ - <%= t(".uniformed_survivor_benefit_plan") %>
+ <% end %>
+ <% if !followup.uniformed_services_retired_yes? && !followup.uniformed_services_qualifying_plan_yes? %>
+ - <%= t(".none_apply") %>
+ <% end %>
+ <% else %>
+ - <%= t(".none_apply") %>
+ <% end %>
+
+
+ <%= link_to StateFile::Questions::NcRetirementIncomeSubtractionController.to_path_helper(return_to_review: "y", index: index), class: "button--small" do %>
+ <%= t("general.review_and_edit") %>
+
<%= t(".retirement_income_source_review_and_edit", index: index + 1) %>
+ <% end %>
+
+ <% end %>
+ <% end %>
+
+
+<% end %>
\ No newline at end of file
diff --git a/config/locales/en.yml b/config/locales/en.yml
index a34ec7aeb2..3af09d4224 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -3378,25 +3378,15 @@ en:
nc_review:
edit:
amount_earned: Amount earned
- bailey_settlement_at_least_five_years: At least five years of creditable service by August 12, 1989
- bailey_settlement_from_retirement_plan: Received retirement benefits from NC’s 401(k) or 457 plan, and contributed to the plan before August 12, 1989
benefits_vested_pensions: Subtraction for retirement benefits by vested qualifying government pensions
child_deduction: Child deduction
interest_us_bonds: Interest income from U.S. bonds (not taxable in North Carolina)
- none_apply: None apply
primary_veteran: United States Armed Forces veteran status
- retirement_income_deductions: North Carolina retirement income deductions
- retirement_income_deductions_explanation: These allow people to deduct all or a portion of their retirement income from their taxes.
- retirement_income_source_bailey_settlement: Retirement benefits as part of the Bailey Settlement
- retirement_income_source_review_and_edit: Review and edit 1099-R %{index}
- retirement_income_source_uniformed_services: Retirement benefits from the Uniformed Services
service_members: Subtraction for retirement benefits received by service members
social_security_benefits: Social Security benefits (not taxable in North Carolina)
spouse_veteran: Your spouse's United States Armed Forces veteran status
state_credit: Enrolled member of a federally recognized Indian Tribe, and received income from a source within a reservation
subtraction_indian_tribe: Subtraction for income of a member of an Indian tribe
- uniformed_survivor_benefit_plan: Payments from a qualifying Survivor Benefit Plan to a beneficiary of a retired member who served at least 20 years or who was medically retired from the Uniformed Services
- uniformed_twenty_years_medical_retired: Retired member who served at least 20 years or were medically retired from the Uniformed Services
use_tax_amount: Amount of use tax
use_tax_applied: Out-of-state purchases in %{filing_year} without paying sales tax
nc_sales_use_tax:
@@ -4097,6 +4087,17 @@ en:
qualified_disabled_retirement_benefits: Qualified disabled retirement benefits
qualified_retirement_benefits_deduction: Qualified Retirement Benefits Deduction
qualified_retirement_benefits_deduction_explain: These allow people to deduct all or a portion of their retirement income from their taxes.
+ nc_retirement_income_deductions_review_header:
+ bailey_settlement_at_least_five_years: At least five years of creditable service by August 12, 1989
+ bailey_settlement_from_retirement_plan: Received retirement benefits from NC’s 401(k) or 457 plan, and contributed to the plan before August 12, 1989
+ none_apply: None apply
+ retirement_income_deductions: North Carolina retirement income deductions
+ retirement_income_deductions_explanation: These allow people to deduct all or a portion of their retirement income from their taxes.
+ retirement_income_source_bailey_settlement: Retirement benefits as part of the Bailey Settlement
+ retirement_income_source_review_and_edit: Review and edit 1099-R %{index}
+ retirement_income_source_uniformed_services: Retirement benefits from the Uniformed Services
+ uniformed_survivor_benefit_plan: Payments from a qualifying Survivor Benefit Plan to a beneficiary of a retired member who served at least 20 years or who was medically retired from the Uniformed Services
+ uniformed_twenty_years_medical_retired: Retired member who served at least 20 years or were medically retired from the Uniformed Services
review_header:
income_details: Income Details
income_forms_collected: 'Income form(s) collected:'
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 526ddccdd9..a1111cae4a 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -3348,25 +3348,15 @@ es:
nc_review:
edit:
amount_earned: Amount earned
- bailey_settlement_at_least_five_years: Al menos cinco años de servicio acreditable antes del 12 de agosto de 1989
- bailey_settlement_from_retirement_plan: Recibiste beneficios de jubilación del plan 401(k) o 457 de NC y contribuiste al plan antes del 12 de agosto de 1989
benefits_vested_pensions: Resta por beneficios de jubilación de pensiones gubernamentales calificadas
child_deduction: Deducción por hijos
interest_us_bonds: Ingresos por intereses de bonos de los Estados Unidos (no son sujetos a impuestos en Carolina del Norte)
- none_apply: No aplica ninguno
primary_veteran: Estado de veterano de las Fuerzas Armadas de los Estados Unidos
- retirement_income_deductions: Deducciones por ingresos de jubilación en Carolina del Norte
- retirement_income_deductions_explanation: Estas permiten a las personas deducir de sus impuestos todo o parte de sus ingresos de jubilación.
- retirement_income_source_bailey_settlement: Beneficios de jubilación como parte del Acuerdo Bailey
- retirement_income_source_review_and_edit: Revisar y editar 1099-R %{index}
- retirement_income_source_uniformed_services: Beneficios de jubilación de los Servicios Uniformados
service_members: Resta por beneficios de jubilación recibidos por miembros del servicio
social_security_benefits: Beneficios del Seguro Social (no sujetos a impuestos en Carolina del Norte)
spouse_veteran: Estado de veterano de las Fuerzas Armadas de los Estados Unidos de tu cónyuge
state_credit: Miembro inscrito de una tribu indígena reconocida por el gobierno federal y recibiste ingresos de una fuente dentro de una reserva
subtraction_indian_tribe: Resta por ingresos de un miembro de una tribu india
- uniformed_survivor_benefit_plan: Pagos de un Plan de Beneficios para Sobrevivientes calificado a un beneficiario de un miembro retirado que prestó servicio al menos 20 años o que fue retirado por razones médicas de los Servicios Uniformados
- uniformed_twenty_years_medical_retired: Miembro retirado que prestó servicio al menos 20 años o fue retirado por razones médicas de los Servicios Uniformados
use_tax_amount: Cantidad del impuesto sobre uso
use_tax_applied: Compras fuera del estado en %{filing_year} sin pagar impuesto sobre ventas
nc_sales_use_tax:
@@ -4083,6 +4073,17 @@ es:
qualified_disabled_retirement_benefits: Beneficios calificados de jubilación para personas con discapacidad
qualified_retirement_benefits_deduction: Deducción por Beneficios Calificados de Jubilación
qualified_retirement_benefits_deduction_explain: Estos permiten a las personas deducir de sus impuestos la totalidad o una parte de sus ingresos por jubilación.
+ nc_retirement_income_deductions_review_header:
+ bailey_settlement_at_least_five_years: Al menos cinco años de servicio acreditable antes del 12 de agosto de 1989
+ bailey_settlement_from_retirement_plan: Recibiste beneficios de jubilación del plan 401(k) o 457 de NC y contribuiste al plan antes del 12 de agosto de 1989
+ none_apply: No aplica ninguno
+ retirement_income_deductions: Deducciones por ingresos de jubilación en Carolina del Norte
+ retirement_income_deductions_explanation: Estas permiten a las personas deducir de sus impuestos todo o parte de sus ingresos de jubilación.
+ retirement_income_source_bailey_settlement: Beneficios de jubilación como parte del Acuerdo Bailey
+ retirement_income_source_review_and_edit: Revisar y editar 1099-R %{index}
+ retirement_income_source_uniformed_services: Beneficios de jubilación de los Servicios Uniformados
+ uniformed_survivor_benefit_plan: Pagos de un Plan de Beneficios para Sobrevivientes calificado a un beneficiario de un miembro retirado que prestó servicio al menos 20 años o que fue retirado por razones médicas de los Servicios Uniformados
+ uniformed_twenty_years_medical_retired: Miembro retirado que prestó servicio al menos 20 años o fue retirado por razones médicas de los Servicios Uniformados
review_header:
income_details: Detalles de ingresos
income_forms_collected: 'Formulario(s) de ingresos recogidos:'
diff --git a/spec/features/state_file/review_page_spec.rb b/spec/features/state_file/review_page_spec.rb
index 531e632cee..7994225cd8 100644
--- a/spec/features/state_file/review_page_spec.rb
+++ b/spec/features/state_file/review_page_spec.rb
@@ -195,55 +195,59 @@
intake = StateFile::StateInformationService.intake_class(state_code).last
# First 1099R already created in set_up_intake_and_associated_records
second_1099r = create(:state_file1099_r, intake: intake, payer_name: "The People's Free Food Emporium")
- third_1099r = create(:state_file1099_r, intake: intake, payer_name: "Boone Community Garden")
+ # Creating a third 1099r that is ineligible to make sure it does not show up on review & doesn't cause issues with review navigation
+ create(:state_file1099_r, intake: intake, payer_name: "Not Eligible Place", taxable_amount: 0)
+ fourth_1099r = create(:state_file1099_r, intake: intake, payer_name: "Boone Community Garden")
StateFileNc1099RFollowup.create(state_file1099_r: intake.state_file1099_rs.first, income_source: "bailey_settlement", bailey_settlement_at_least_five_years: "yes")
StateFileNc1099RFollowup.create(state_file1099_r: second_1099r, income_source: "uniformed_services", uniformed_services_retired: "no", uniformed_services_qualifying_plan: "no")
- StateFileNc1099RFollowup.create(state_file1099_r: third_1099r, income_source: "other")
+ StateFileNc1099RFollowup.create(state_file1099_r: fourth_1099r, income_source: "other")
visit "/questions/#{state_code}-review"
end
it "allows user to view and edit their 1099R followup information" do
+ expect(page).not_to have_text "Not Eligible Place"
+
within "#retirement-income-source-0" do
expect(page).to have_text "Dorothy Red"
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.retirement_income_source_bailey_settlement")
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.bailey_settlement_at_least_five_years")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.retirement_income_source_bailey_settlement")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.bailey_settlement_at_least_five_years")
end
within "#retirement-income-source-1" do
expect(page).to have_text "The People's Free Food Emporium"
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.retirement_income_source_uniformed_services")
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.none_apply")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.retirement_income_source_uniformed_services")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.none_apply")
end
within "#retirement-income-source-2" do
expect(page).to have_text "Boone Community Garden"
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.none_apply")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.none_apply")
end
- within "#retirement-income-source-0" do
+ within "#retirement-income-source-1" do
click_on I18n.t("general.review_and_edit")
end
- check I18n.t("state_file.questions.nc_retirement_income_subtraction.edit.bailey_settlement_from_retirement_plan")
+ check I18n.t("state_file.questions.nc_retirement_income_subtraction.edit.uniformed_services_retired")
click_on I18n.t("general.continue")
within "#retirement-income-source-0" do
expect(page).to have_text "Dorothy Red"
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.retirement_income_source_bailey_settlement")
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.bailey_settlement_at_least_five_years")
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.bailey_settlement_from_retirement_plan")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.retirement_income_source_bailey_settlement")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.bailey_settlement_at_least_five_years")
end
within "#retirement-income-source-1" do
expect(page).to have_text "The People's Free Food Emporium"
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.retirement_income_source_uniformed_services")
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.none_apply")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.retirement_income_source_uniformed_services")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.uniformed_twenty_years_medical_retired")
+ expect(page).not_to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.none_apply")
end
within "#retirement-income-source-2" do
expect(page).to have_text "Boone Community Garden"
- expect(page).to have_text I18n.t("state_file.questions.nc_review.edit.none_apply")
+ expect(page).to have_text I18n.t("state_file.questions.shared.nc_retirement_income_deductions_review_header.none_apply")
end
end
end
diff --git a/spec/models/state_file_base_intake_spec.rb b/spec/models/state_file_base_intake_spec.rb
index 33eb497039..e4473927a7 100644
--- a/spec/models/state_file_base_intake_spec.rb
+++ b/spec/models/state_file_base_intake_spec.rb
@@ -316,4 +316,15 @@
end
end
+ describe "#eligible_1099rs" do
+ %w[az md nc nj].each do |state_code|
+ let(:intake) { create "state_file_#{state_code}_intake".to_sym }
+ let!(:eligible_1099r) { create(:state_file1099_r, intake: intake, taxable_amount: 200) }
+ let!(:ineligible_1099r) { create(:state_file1099_r, intake: intake, taxable_amount: 0) }
+
+ it "should only return the 1099R with taxable_amount" do
+ expect(intake.eligible_1099rs).to contain_exactly(eligible_1099r)
+ end
+ end
+ end
end
\ No newline at end of file