-
Notifications
You must be signed in to change notification settings - Fork 57
/
address_change.rb
76 lines (65 loc) · 1.85 KB
/
address_change.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# frozen_string_literal: true
module Vye
class Vye::AddressChange < ApplicationRecord
belongs_to :user_info
has_kms_key
has_encrypted(
:veteran_name,
:address1, :address2, :address3, :address4, :address5,
:city, :state, :zip_code,
key: :kms_key, **lockbox_options
)
validates(
:veteran_name, :address1, :city,
presence: true, if: -> { origin == 'frontend' }
)
validates(
:veteran_name, :address1,
presence: true, if: -> { origin == 'backend' }
)
enum origin: { frontend: 'f', backend: 'b' }
scope :created_today, lambda {
includes(user_info: :user_profile)
.where('created_at >= ?', Time.zone.now.beginning_of_day)
}
def self.todays_records
created_today.each_with_object([]) do |record, result|
result << {
rpo: record.user_info.rpo_code,
benefit_type: record.user_info.indicator,
ssn: record.user_info.ssn,
file_number: record.user_info.file_number,
veteran_name: record.veteran_name,
address1: record.address1,
address2: record.address2,
address3: record.address3,
address4: record.address4,
city: record.city,
state: record.state,
zip_code: record.zip_code
}
end
end
def self.todays_report
template = YAML.load(<<-END_OF_TEMPLATE).gsub(/\n/, '')
|-
%3<rpo>s,
%1<benefit_type>s,
%9<ssn>s,
%9<file_number>s,
%20<veteran_name>s,
%<address1>s,
%<address2>s,
%<address3>s,
%<address4>s,
%<city>s,
%6<state>s,
%5<zip_code>s
END_OF_TEMPLATE
report = todays_records.each_with_object([]) do |record, result|
result << format(template, record)
end
report.join("\n")
end
end
end