diff --git a/app/models/saved_claim/burial.rb b/app/models/saved_claim/burial.rb index 71e36a535da..cb39ede1339 100644 --- a/app/models/saved_claim/burial.rb +++ b/app/models/saved_claim/burial.rb @@ -62,28 +62,21 @@ def business_line 'NCA' end - def send_confirmation_email - return if parsed_form['claimantEmail'].blank? - - facility_name, street_address, city_state_zip = regional_office - first_name = parsed_form.dig('veteranFullName', 'first') - last_initial = "#{parsed_form.dig('veteranFullName', 'last')&.first}." - - VANotify::EmailJob.perform_async( - parsed_form['claimantEmail'], - Settings.vanotify.services.va_gov.template_id.burial_claim_confirmation_email_template_id, - { - 'form_name' => 'Burial Benefit Claim (Form 21P-530)', - 'confirmation_number' => guid, - 'deceased_veteran_first_name_last_initial' => "#{first_name} #{last_initial}", - 'benefits_claimed' => benefits_claimed, - 'facility_name' => facility_name, - 'street_address' => street_address, - 'city_state_zip' => city_state_zip, - 'first_name' => parsed_form.dig('claimantFullName', 'first')&.upcase.presence, - 'date_submitted' => Time.zone.today.strftime('%B %d, %Y') - } - ) + ## + # utility function to retrieve claimant first name from form + # + # @return [String] the claimant first name + # + def veteran_first_name + parsed_form.dig('veteranFullName', 'first') + end + + def veteran_last_name + parsed_form.dig('veteranFullName', 'last') + end + + def claimaint_first_name + parsed_form.dig('claimantFullName', 'first') end def benefits_claimed @@ -91,6 +84,5 @@ def benefits_claimed claimed << 'Burial Allowance' if parsed_form['burialAllowance'] claimed << 'Plot Allowance' if parsed_form['plotAllowance'] claimed << 'Transportation' if parsed_form['transportation'] - " - #{claimed.join(" \n - ")}" end end diff --git a/app/sidekiq/lighthouse/submit_benefits_intake_claim.rb b/app/sidekiq/lighthouse/submit_benefits_intake_claim.rb index d1d1f3a801d..5696bb9e77d 100644 --- a/app/sidekiq/lighthouse/submit_benefits_intake_claim.rb +++ b/app/sidekiq/lighthouse/submit_benefits_intake_claim.rb @@ -7,6 +7,7 @@ require 'benefits_intake_service/service' require 'simple_forms_api_submission/metadata_validator' require 'pdf_info' +require 'va_notify/notification_email/burial' module Lighthouse class SubmitBenefitsIntakeClaim @@ -182,6 +183,10 @@ def check_zipcode(address) def send_confirmation_email @claim.respond_to?(:send_confirmation_email) && @claim.send_confirmation_email + + if %w[21P-530V2 21P-530].include?(claim&.form_id) + Burials::NotificationEmail.new(@claim).deliver(:confirmation) + end rescue => e Rails.logger.warn('Lighthouse::SubmitBenefitsIntakeClaim send_confirmation_email failed', generate_log_details(e)) diff --git a/config/settings.yml b/config/settings.yml index b28dbfdfcd2..97b69a03028 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -1415,6 +1415,8 @@ vanotify: error: null received: null burials: *vanotify_services_burial + 21p_530: *vanotify_services_burial + 21p_530v2: *vanotify_services_burial mock: false links: connected_applications: https://www.va.gov/profile/connected-applications diff --git a/lib/va_notify/notification_email/burial.rb b/lib/va_notify/notification_email/burial.rb new file mode 100644 index 00000000000..ce732475733 --- /dev/null +++ b/lib/va_notify/notification_email/burial.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'va_notify/notification_email/saved_claim' + +module Burials + class NotificationEmail < ::VANotify::NotificationEmail::SavedClaim + # @see VANotify::NotificationEmail::SavedClaim + def initialize(saved_claim) + super(saved_claim, service_name: 'burials') + end + + private + + def personalization + default = super + + facility_name, street_address, city_state_zip = claim.regional_office + veteran_name = "#{claim.veteran_first_name} #{claim.veteran_last_name&.first}" + benefits_claimed = " - #{claim.benefits_claimed.join(" \n - ")}" + + default.merge({ + 'form_name' => 'Burial Benefit Claim (Form 21P-530)', + 'deceased_veteran_first_name_last_initial' => veteran_name, + 'benefits_claimed' => benefits_claimed, + 'facility_name' => facility_name, + 'street_address' => street_address, + 'city_state_zip' => city_state_zip, + # override default + 'first_name' => claim.claimaint_first_name&.upcase + }) + end + end +end diff --git a/modules/pensions/app/sidekiq/pensions/pension_benefit_intake_job.rb b/modules/pensions/app/sidekiq/pensions/pension_benefit_intake_job.rb index 675a948fe35..dc6f8e608ac 100644 --- a/modules/pensions/app/sidekiq/pensions/pension_benefit_intake_job.rb +++ b/modules/pensions/app/sidekiq/pensions/pension_benefit_intake_job.rb @@ -204,7 +204,6 @@ def form_submission_polling # def send_confirmation_email Pensions::NotificationEmail.new(@claim).deliver(:confirmation) - # @claim.respond_to?(:send_confirmation_email) && @claim.send_confirmation_email rescue => e @pension_monitor.track_send_confirmation_email_failure(@claim, @intake_service, @user_account_uuid, e) end