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