lib/updateagent/converters/acs_converter.rb in seven1m-onebody-updateagent-0.2.0 vs lib/updateagent/converters/acs_converter.rb in seven1m-onebody-updateagent-0.2.1
- old
+ new
@@ -1,11 +1,10 @@
class ACSConverter
def straight
{
"FamilyNumber" => "legacy_family_id",
- "IndividualNumber" => "sequence",
"LastName" => "last_name",
"Suffix" => "suffix",
"Address1" => "family_address1",
"Address2" => "family_address2",
"City" => "family_city",
@@ -18,10 +17,11 @@
}
end
def convert(records)
create_family_names(records)
+ create_family_sequences(records)
records.map do |record|
convert_record(record)
end
end
@@ -30,11 +30,11 @@
record.each do |key, value|
if new_key = straight[key]
new_record[new_key] = value
end
end
- new_record['legacy_id'] = new_record['legacy_family_id'] + new_record['sequence']
+ new_record['legacy_id'] = new_record['legacy_family_id'] + record['IndividualNumber']
new_record['first_name'] = get_first_name(record)
new_record['family_home_phone'] = get_phone(record, 'Home')
new_record['work_phone'] = get_phone(record, 'Business')
new_record['mobile_phone'] = get_phone(record, 'Cell')
new_record['fax'] = get_phone(record, 'FAX')
@@ -44,10 +44,11 @@
new_record['visible_on_printed_directory'] = CONVERTER_CONFIG['visible_on_printed_directory'].include?(record['MemberStatus'])
new_record['full_access'] = CONVERTER_CONFIG['full_access'].include?(record['MemberStatus'])
new_record['can_sign_in'] = CONVERTER_CONFIG['full_access'].include?(record['MemberStatus'])
new_record['email'] = record['HomeEmailAddr'].to_s.any? ? record['HomeEmailAddr'] : record['BusinessEmailAddr']
new_record['child'] = new_record['birthday'].to_s.empty? ? record['FamilyPosition'] == 'Child' : nil
+ new_record['sequence'] = @families_by_sequence[new_record['legacy_family_id']].index(record['IndividualNumber'].to_i) + 1
end
end
def create_family_names(records)
# this could probably be less messy
@@ -67,9 +68,18 @@
end
else
@family_names[family_number] = "#{get_first_name(family['Other'])} #{family['Other']['LastName']}"
end
end
+ end
+
+ def create_family_sequences(records)
+ @families_by_sequence = {}
+ records.each do |record|
+ @families_by_sequence[record['FamilyNumber']] ||= []
+ @families_by_sequence[record['FamilyNumber']] << record['IndividualNumber'].to_i
+ end
+ @families_by_sequence.each { |k, v| v.sort! }
end
def get_first_name(record)
record['GoesByName'].to_s.any? ? record['GoesByName'] : record['FirstName']
end