Skip to content

Commit b087055

Browse files
authored
93461: Map name fields for VBA 21-4140 (#20123)
Maps the name fields on the 21-4140 PDF template to the appropriate VBA214140 instance methods.
1 parent 91ceac0 commit b087055

File tree

4 files changed

+106
-62
lines changed

4 files changed

+106
-62
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,67 @@
11
{
2-
"F[0].Page_1[0].Station_Address[0]": "<%= data.dig('Station_Address') %>",
3-
"F[0].Page_1[0].VeteranLastName[0]": "<%= data.dig('VeteranLastName') %>",
4-
"F[0].Page_1[0].VeteranMiddleInitial1[0]": "<%= data.dig('VeteranMiddleInitial1') %>",
5-
"F[0].Page_1[0].VeteranFirstName[0]": "<%= data.dig('VeteranFirstName') %>",
6-
"F[0].Page_1[0].DOByear[0]": "<%= data.dig('DOByear') %>",
7-
"F[0].Page_1[0].DOBday[0]": "<%= data.dig('DOBday') %>",
8-
"F[0].Page_1[0].DOBmonth[0]": "<%= data.dig('DOBmonth') %>",
9-
"F[0].Page_1[0].VAFileNumber[0]": "<%= data.dig('VAFileNumber') %>",
10-
"F[0].Page_1[0].Veterans_Social_SecurityNumber_LastFourNumbers[0]": "<%= data.dig('Veterans_Social_SecurityNumber_LastFourNumbers') %>",
11-
"F[0].Page_1[0].Veterans_Social_SecurityNumber_SecondTwoNumbers[0]": "<%= data.dig('Veterans_Social_SecurityNumber_SecondTwoNumbers') %>",
12-
"F[0].Page_1[0].Veterans_Social_SecurityNumber_FirstThreeNumbers[0]": "<%= data.dig('Veterans_Social_SecurityNumber_FirstThreeNumbers') %>",
13-
"F[0].Page_1[0].VeteransServiceNumber[0]": "<%= data.dig('VeteransServiceNumber') %>",
14-
"F[0].Page_1[0].CurrentMailingAddress_ZIPOrPostalCode_LastFourNumbers[0]": "<%= data.dig('CurrentMailingAddress_ZIPOrPostalCode_LastFourNumbers') %>",
15-
"F[0].Page_1[0].CurrentMailingAddress_ZIPOrPostalCode_FirstFiveNumbers[0]": "<%= data.dig('CurrentMailingAddress_ZIPOrPostalCode_FirstFiveNumbers') %>",
16-
"F[0].Page_1[0].CurrentMailingAddress_Country[0]": "<%= data.dig('CurrentMailingAddress_Country') %>",
17-
"F[0].Page_1[0].CurrentMailingAddress_StateOrProvince[0]": "<%= data.dig('CurrentMailingAddress_StateOrProvince') %>",
18-
"F[0].Page_1[0].CurrentMailingAddress_City[0]": "<%= data.dig('CurrentMailingAddress_City') %>",
19-
"F[0].Page_1[0].CurrentMailingAddress_ApartmentOrUnitNumber[0]": "<%= data.dig('CurrentMailingAddress_ApartmentOrUnitNumber') %>",
20-
"F[0].Page_1[0].CurrentMailingAddress_NumberAndStreet[0]": "<%= data.dig('CurrentMailingAddress_NumberAndStreet') %>",
21-
"F[0].Page_1[0].E-Mail_Address[0]": "<%= data.dig('E-Mail_Address') %>",
22-
"F[0].Page_1[0].Type_Of_Work[0]": "<%= data.dig('Type_Of_Work') %>",
23-
"F[0].Page_1[0].Time_Lost_From_Illness[0]": "<%= data.dig('Time_Lost_From_Illness') %>",
24-
"F[0].Page_1[0].Name_And_Address_Of_Employer[0]": "<%= data.dig('Name_And_Address_Of_Employer') %>",
25-
"F[0].Page_1[0].PrimaryTelephoneNumber[0]": "<%= data.dig('PrimaryTelephoneNumber') %>",
26-
"F[0].Page_1[0].AlternateTelephoneNumber[0]": "<%= data.dig('AlternateTelephoneNumber') %>",
27-
"F[0].Page_1[0].RadioButtonList[0]": "<%= data.dig('RadioButtonList') %>",
28-
"F[0].Page_1[0].Date_Mailed[0]": "<%= data.dig('Date_Mailed') %>",
29-
"F[0].Page_1[0].Hours_Per_Week[0]": "<%= data.dig('Hours_Per_Week') %>",
30-
"F[0].Page_1[0].Date_Of_Employment_From[0]": "<%= data.dig('Date_Of_Employment_From') %>",
31-
"F[0].Page_1[0].Date_Of_Employment_To[0]": "<%= data.dig('Date_Of_Employment_To') %>",
32-
"F[0].Page_1[0].Gross_Earnings_Per_Month[0]": "<%= data.dig('Gross_Earnings_Per_Month') %>",
33-
"F[0].#subform[1].DateSigned[0]": "<%= data.dig('DateSigned') %>",
34-
"F[0].#subform[1].SignatureField1[0]": "<%= data.dig('SignatureField1') %>",
35-
"F[0].#subform[1].Veterans_Social_SecurityNumber_LastFourNumbers[0]": "<%= data.dig('Veterans_Social_SecurityNumber_LastFourNumbers') %>",
36-
"F[0].#subform[1].Veterans_Social_SecurityNumber_SecondTwoNumbers[0]": "<%= data.dig('Veterans_Social_SecurityNumber_SecondTwoNumbers') %>",
37-
"F[0].#subform[1].Veterans_Social_SecurityNumber_FirstThreeNumbers[0]": "<%= data.dig('Veterans_Social_SecurityNumber_FirstThreeNumbers') %>",
38-
"F[0].#subform[1].Gross_Earnings_Per_Month[0]": "<%= data.dig('Gross_Earnings_Per_Month') %>",
39-
"F[0].#subform[1].Type_Of_Work[0]": "<%= data.dig('Type_Of_Work') %>",
40-
"F[0].#subform[1].Time_Lost_From_Illness[0]": "<%= data.dig('Time_Lost_From_Illness') %>",
41-
"F[0].#subform[1].Name_And_Address_Of_Employer[0]": "<%= data.dig('Name_And_Address_Of_Employer') %>",
42-
"F[0].#subform[1].Hours_Per_Week[0]": "<%= data.dig('Hours_Per_Week') %>",
43-
"F[0].#subform[1].Date_Of_Employment_From[0]": "<%= data.dig('Date_Of_Employment_From') %>",
44-
"F[0].#subform[1].Date_Of_Employment_To[0]": "<%= data.dig('Date_Of_Employment_To') %>",
45-
"F[0].#subform[1].Gross_Earnings_Per_Month[1]": "<%= data.dig('Gross_Earnings_Per_Month') %>",
46-
"F[0].#subform[1].Date_Of_Employment_To[1]": "<%= data.dig('Date_Of_Employment_To') %>",
47-
"F[0].#subform[1].Date_Of_Employment_From[1]": "<%= data.dig('Date_Of_Employment_From') %>",
48-
"F[0].#subform[1].Hours_Per_Week[1]": "<%= data.dig('Hours_Per_Week') %>",
49-
"F[0].#subform[1].Name_And_Address_Of_Employer[1]": "<%= data.dig('Name_And_Address_Of_Employer') %>",
50-
"F[0].#subform[1].Time_Lost_From_Illness[1]": "<%= data.dig('Time_Lost_From_Illness') %>",
51-
"F[0].#subform[1].Type_Of_Work[1]": "<%= data.dig('Type_Of_Work') %>",
52-
"F[0].#subform[1].Type_Of_Work[2]": "<%= data.dig('Type_Of_Work') %>",
53-
"F[0].#subform[1].Time_Lost_From_Illness[2]": "<%= data.dig('Time_Lost_From_Illness') %>",
54-
"F[0].#subform[1].Name_And_Address_Of_Employer[2]": "<%= data.dig('Name_And_Address_Of_Employer') %>",
55-
"F[0].#subform[1].Hours_Per_Week[2]": "<%= data.dig('Hours_Per_Week') %>",
56-
"F[0].#subform[1].Date_Of_Employment_From[2]": "<%= data.dig('Date_Of_Employment_From') %>",
57-
"F[0].#subform[1].Date_Of_Employment_To[2]": "<%= data.dig('Date_Of_Employment_To') %>",
58-
"F[0].#subform[1].Gross_Earnings_Per_Month[2]": "<%= data.dig('Gross_Earnings_Per_Month') %>",
59-
"F[0].#subform[1].SignatureField1[1]": "<%= data.dig('SignatureField1') %>",
60-
"F[0].#subform[1].DateSigned[1]": "<%= data.dig('DateSigned') %>"
2+
"F[0].Page_1[0].Station_Address[0]": "<%= form.data.dig('Station_Address') %>",
3+
4+
<%# Page 1 %>
5+
6+
<%# Section 1: Veteran's Identification Information %>
7+
8+
<%# 1. Name of Veteran %>
9+
"F[0].Page_1[0].VeteranFirstName[0]": "<%= form.first_name %>",
10+
"F[0].Page_1[0].VeteranMiddleInitial1[0]": "<%= form.middle_initial %>",
11+
"F[0].Page_1[0].VeteranLastName[0]": "<%= form.last_name %>",
12+
"F[0].Page_1[0].DOByear[0]": "<%= form.data.dig('DOByear') %>",
13+
"F[0].Page_1[0].DOBday[0]": "<%= form.data.dig('DOBday') %>",
14+
"F[0].Page_1[0].DOBmonth[0]": "<%= form.data.dig('DOBmonth') %>",
15+
"F[0].Page_1[0].VAFileNumber[0]": "<%= form.data.dig('VAFileNumber') %>",
16+
"F[0].Page_1[0].Veterans_Social_SecurityNumber_LastFourNumbers[0]": "<%= form.data.dig('Veterans_Social_SecurityNumber_LastFourNumbers') %>",
17+
"F[0].Page_1[0].Veterans_Social_SecurityNumber_SecondTwoNumbers[0]": "<%= form.data.dig('Veterans_Social_SecurityNumber_SecondTwoNumbers') %>",
18+
"F[0].Page_1[0].Veterans_Social_SecurityNumber_FirstThreeNumbers[0]": "<%= form.data.dig('Veterans_Social_SecurityNumber_FirstThreeNumbers') %>",
19+
"F[0].Page_1[0].VeteransServiceNumber[0]": "<%= form.data.dig('VeteransServiceNumber') %>",
20+
"F[0].Page_1[0].CurrentMailingAddress_ZIPOrPostalCode_LastFourNumbers[0]": "<%= form.data.dig('CurrentMailingAddress_ZIPOrPostalCode_LastFourNumbers') %>",
21+
"F[0].Page_1[0].CurrentMailingAddress_ZIPOrPostalCode_FirstFiveNumbers[0]": "<%= form.data.dig('CurrentMailingAddress_ZIPOrPostalCode_FirstFiveNumbers') %>",
22+
"F[0].Page_1[0].CurrentMailingAddress_Country[0]": "<%= form.data.dig('CurrentMailingAddress_Country') %>",
23+
"F[0].Page_1[0].CurrentMailingAddress_StateOrProvince[0]": "<%= form.data.dig('CurrentMailingAddress_StateOrProvince') %>",
24+
"F[0].Page_1[0].CurrentMailingAddress_City[0]": "<%= form.data.dig('CurrentMailingAddress_City') %>",
25+
"F[0].Page_1[0].CurrentMailingAddress_ApartmentOrUnitNumber[0]": "<%= form.data.dig('CurrentMailingAddress_ApartmentOrUnitNumber') %>",
26+
"F[0].Page_1[0].CurrentMailingAddress_NumberAndStreet[0]": "<%= form.data.dig('CurrentMailingAddress_NumberAndStreet') %>",
27+
"F[0].Page_1[0].E-Mail_Address[0]": "<%= form.data.dig('E-Mail_Address') %>",
28+
"F[0].Page_1[0].Type_Of_Work[0]": "<%= form.data.dig('Type_Of_Work') %>",
29+
"F[0].Page_1[0].Time_Lost_From_Illness[0]": "<%= form.data.dig('Time_Lost_From_Illness') %>",
30+
"F[0].Page_1[0].Name_And_Address_Of_Employer[0]": "<%= form.data.dig('Name_And_Address_Of_Employer') %>",
31+
"F[0].Page_1[0].PrimaryTelephoneNumber[0]": "<%= form.data.dig('PrimaryTelephoneNumber') %>",
32+
"F[0].Page_1[0].AlternateTelephoneNumber[0]": "<%= form.data.dig('AlternateTelephoneNumber') %>",
33+
"F[0].Page_1[0].RadioButtonList[0]": "<%= form.data.dig('RadioButtonList') %>",
34+
"F[0].Page_1[0].Date_Mailed[0]": "<%= form.data.dig('Date_Mailed') %>",
35+
"F[0].Page_1[0].Hours_Per_Week[0]": "<%= form.data.dig('Hours_Per_Week') %>",
36+
"F[0].Page_1[0].Date_Of_Employment_From[0]": "<%= form.data.dig('Date_Of_Employment_From') %>",
37+
"F[0].Page_1[0].Date_Of_Employment_To[0]": "<%= form.data.dig('Date_Of_Employment_To') %>",
38+
"F[0].Page_1[0].Gross_Earnings_Per_Month[0]": "<%= form.data.dig('Gross_Earnings_Per_Month') %>",
39+
"F[0].#subform[1].DateSigned[0]": "<%= form.data.dig('DateSigned') %>",
40+
"F[0].#subform[1].SignatureField1[0]": "<%= form.data.dig('SignatureField1') %>",
41+
"F[0].#subform[1].Veterans_Social_SecurityNumber_LastFourNumbers[0]": "<%= form.data.dig('Veterans_Social_SecurityNumber_LastFourNumbers') %>",
42+
"F[0].#subform[1].Veterans_Social_SecurityNumber_SecondTwoNumbers[0]": "<%= form.data.dig('Veterans_Social_SecurityNumber_SecondTwoNumbers') %>",
43+
"F[0].#subform[1].Veterans_Social_SecurityNumber_FirstThreeNumbers[0]": "<%= form.data.dig('Veterans_Social_SecurityNumber_FirstThreeNumbers') %>",
44+
"F[0].#subform[1].Gross_Earnings_Per_Month[0]": "<%= form.data.dig('Gross_Earnings_Per_Month') %>",
45+
"F[0].#subform[1].Type_Of_Work[0]": "<%= form.data.dig('Type_Of_Work') %>",
46+
"F[0].#subform[1].Time_Lost_From_Illness[0]": "<%= form.data.dig('Time_Lost_From_Illness') %>",
47+
"F[0].#subform[1].Name_And_Address_Of_Employer[0]": "<%= form.data.dig('Name_And_Address_Of_Employer') %>",
48+
"F[0].#subform[1].Hours_Per_Week[0]": "<%= form.data.dig('Hours_Per_Week') %>",
49+
"F[0].#subform[1].Date_Of_Employment_From[0]": "<%= form.data.dig('Date_Of_Employment_From') %>",
50+
"F[0].#subform[1].Date_Of_Employment_To[0]": "<%= form.data.dig('Date_Of_Employment_To') %>",
51+
"F[0].#subform[1].Gross_Earnings_Per_Month[1]": "<%= form.data.dig('Gross_Earnings_Per_Month') %>",
52+
"F[0].#subform[1].Date_Of_Employment_To[1]": "<%= form.data.dig('Date_Of_Employment_To') %>",
53+
"F[0].#subform[1].Date_Of_Employment_From[1]": "<%= form.data.dig('Date_Of_Employment_From') %>",
54+
"F[0].#subform[1].Hours_Per_Week[1]": "<%= form.data.dig('Hours_Per_Week') %>",
55+
"F[0].#subform[1].Name_And_Address_Of_Employer[1]": "<%= form.data.dig('Name_And_Address_Of_Employer') %>",
56+
"F[0].#subform[1].Time_Lost_From_Illness[1]": "<%= form.data.dig('Time_Lost_From_Illness') %>",
57+
"F[0].#subform[1].Type_Of_Work[1]": "<%= form.data.dig('Type_Of_Work') %>",
58+
"F[0].#subform[1].Type_Of_Work[2]": "<%= form.data.dig('Type_Of_Work') %>",
59+
"F[0].#subform[1].Time_Lost_From_Illness[2]": "<%= form.data.dig('Time_Lost_From_Illness') %>",
60+
"F[0].#subform[1].Name_And_Address_Of_Employer[2]": "<%= form.data.dig('Name_And_Address_Of_Employer') %>",
61+
"F[0].#subform[1].Hours_Per_Week[2]": "<%= form.data.dig('Hours_Per_Week') %>",
62+
"F[0].#subform[1].Date_Of_Employment_From[2]": "<%= form.data.dig('Date_Of_Employment_From') %>",
63+
"F[0].#subform[1].Date_Of_Employment_To[2]": "<%= form.data.dig('Date_Of_Employment_To') %>",
64+
"F[0].#subform[1].Gross_Earnings_Per_Month[2]": "<%= form.data.dig('Gross_Earnings_Per_Month') %>",
65+
"F[0].#subform[1].SignatureField1[1]": "<%= form.data.dig('SignatureField1') %>",
66+
"F[0].#subform[1].DateSigned[1]": "<%= form.data.dig('DateSigned') %>"
6167
}

modules/simple_forms_api/app/models/simple_forms_api/vba_21_4140.rb

+12
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ def desired_stamps
66
[]
77
end
88

9+
def first_name
10+
data.dig('full_name', 'first')&.[](0..11)
11+
end
12+
13+
def last_name
14+
data.dig('full_name', 'last')&.[](0..17)
15+
end
16+
917
def metadata
1018
{
1119
'veteranFirstName' => data.dig('full_name', 'first'),
@@ -18,6 +26,10 @@ def metadata
1826
}
1927
end
2028

29+
def middle_initial
30+
data.dig('full_name', 'middle')&.[](0)
31+
end
32+
2133
def submission_date_stamps(_timestamp)
2234
[]
2335
end

modules/simple_forms_api/spec/fixtures/form_json/vba_21_4140.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717
"postal_code": "90210"
1818
},
1919
"full_name": {
20-
"first": "Example",
20+
"first": "Rumpelstiltskin",
2121
"middle": "Test",
22-
"last": "Surnam/",
23-
"suffix": "Jr."
22+
"last": "Mephistopheles-Reinhardt"
2423
},
2524
"date_of_birth": "1979-02-27",
2625
"employers": [

modules/simple_forms_api/spec/models/vba_21_4140_spec.rb

+27
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,24 @@
1919
it { is_expected.to match(data) }
2020
end
2121

22+
describe '#first_name' do
23+
subject { form.first_name }
24+
25+
it('is limited to twelve characters') do
26+
expect(data.dig('full_name', 'first').length).to be > 12
27+
expect(subject.length).to eq 12
28+
end
29+
end
30+
31+
describe '#last_name' do
32+
subject { form.last_name }
33+
34+
it('is limited to eighteen characters') do
35+
expect(data.dig('full_name', 'last').length).to be > 18
36+
expect(subject.length).to eq 18
37+
end
38+
end
39+
2240
describe '#metadata' do
2341
subject { form.metadata }
2442

@@ -37,6 +55,15 @@
3755
end
3856
end
3957

58+
describe '#middle_initial' do
59+
subject { form.middle_initial }
60+
61+
it('is limited to one character') do
62+
expect(data.dig('full_name', 'middle').length).to be > 1
63+
expect(subject.length).to eq 1
64+
end
65+
end
66+
4067
describe '#signature_date' do
4168
subject { form.signature_date }
4269

0 commit comments

Comments
 (0)