Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class String
- def sized(wanted)
- wanted = wanted.to_i
- return self[0...wanted] if length > wanted
- self + (' ' * (wanted - length))
- end
- end
- class NilClass
- def sized(wanted)
- ' ' * wanted.to_i
- end
- end
- locatie_mapping = {
- '4d5a7171d363e95db7000007' => 'OUD',
- '4d5a7130d363e95db7000006' => 'BER',
- '4d5a70eed363e95db7000003' => 'HOO',
- '4dccfe15d363e905c8000007' => 'HEI',
- '4fa7b10a27656b0f7f00001c' => 'DOO',
- '4dccfe09d363e905c8000004' => 'SPO'
- }
- str = ''
- debugstr = ''
- start_at = Time.parse('01/01/2012')
- end_at = Time.parse('31/07/2012')
- prenoon_collection = Reservation.where(:accepted => true, :prenoon => true, :date.gte => start_at, :date.lt => end_at).all
- afternoon_collection = Reservation.where(:accepted => true, :afternoon => true, :date.gte => start_at, :date.lt => end_at).all
- fullday_collection = Array.new
- puts 'Voor/namiddagen startcijfer: ' + prenoon_collection.count.to_s + ' / ' + afternoon_collection.count.to_s
- prenoon_collection.each do |prenoonr|
- if found = afternoon_collection.detect {|afternoonr| afternoonr.reserver_id = prenoonr.reserver_id, afternoonr.date = prenoonr.date}
- fullday_collection << found
- prenoon_collection.delete(prenoonr)
- afternoon_collection.delete(found)
- end
- end
- puts 'Voormiddag: ' + prenoon_collection.count.to_s
- puts 'Namiddag: ' + afternoon_collection.count.to_s
- puts 'Volle dagen: ' + fullday_collection.count.to_s
- prenoon_collection.each do |record|
- reserver = record.reserver
- address = reserver.addresses.first
- unit = record.reservation_unit
- record.children_ids.each do |child_id|
- child = reserver.children.find(child_id)
- next unless child
- begin
- row = ''
- row << record.id.generation_time.strftime('%Y%m%d%H%M%S').sized(14)
- row << ''.sized(11) # rrnr kind
- row << child.unique_number.sized(7)
- row << child.first_name.sized(15)
- row << child.last_name.sized(30)
- row << address.street.sized(35)
- row << address.post_code.sized(6)
- row << address.city.sized(30)
- row << ''.sized(20) # telefoon
- row << reserver.email.sized(50)
- row << record.date.strftime('%Y%m%d').sized(8)
- row << '1'.sized(1) # voormiddag
- row << '0'.sized(1)
- row << '0800'.sized(4)
- row << '1300'.sized(4)
- row << '0000'.sized(4) # van2
- row << '0000'.sized(4) # tot2
- row << locatie_mapping[unit.id.to_s].sized(3) # loc1
- row << locatie_mapping[unit.id.to_s].sized(3) # loc2
- row << '000'.sized(3) # activiteit
- row << '0'.sized(1) # extra1
- row << '0'.sized(1) # extra2
- row << '0'.sized(1) # extra3
- row << "\r\n"
- str << row
- rescue
- row = ''
- row << record.id.generation_time.strftime('%Y%m%d%H%M%S').sized(14)
- row << ''.sized(11) # rrnr kind
- row << child.unique_number.sized(7)
- row << child.first_name.sized(15)
- row << child.last_name.sized(30)
- row << ''.sized(35)
- row << ''.sized(6)
- row << ''.sized(30)
- row << ''.sized(20) # telefoon
- row << reserver.email.sized(50)
- row << record.date.strftime('%Y%m%d').sized(8)
- row << '1'.sized(1) # voormiddag
- row << '0'.sized(1)
- row << '0800'.sized(4)
- row << '1300'.sized(4)
- row << '0000'.sized(4) # van2
- row << '0000'.sized(4) # tot2
- row << locatie_mapping[unit.id.to_s].sized(3) # loc1
- row << locatie_mapping[unit.id.to_s].sized(3) # loc2
- row << '000'.sized(3) # activiteit
- row << '0'.sized(1) # extra1
- row << '0'.sized(1) # extra2
- row << '0'.sized(1) # extra3
- row << "\r\n"
- debugstr << row
- next
- end
- end
- end
- puts 'Voormiddagen geexporteerd'
- afternoon_collection.each do |record|
- reserver = record.reserver
- address = reserver.addresses.first
- unit = record.reservation_unit
- record.children_ids.each do |child_id|
- child = reserver.children.find(child_id)
- next unless child
- begin
- row = ''
- row << record.id.generation_time.strftime('%Y%m%d%H%M%S').sized(14)
- row << ''.sized(11) # rrnr kind
- row << child.unique_number.sized(7)
- row << child.first_name.sized(15)
- row << child.last_name.sized(30)
- row << address.street.sized(35)
- row << address.post_code.sized(6)
- row << address.city.sized(30)
- row << ''.sized(20) # telefoon
- row << reserver.email.sized(50)
- row << record.date.strftime('%Y%m%d').sized(8)
- row << '0'.sized(1)
- row << '1'.sized(1) # namiddag
- row << '1300'.sized(4)
- row << '1700'.sized(4)
- row << '0000'.sized(4) # van2
- row << '0000'.sized(4) # tot2
- row << locatie_mapping[unit.id.to_s].sized(3) # loc1
- row << locatie_mapping[unit.id.to_s].sized(3) # loc2
- row << '000'.sized(3) # activiteit
- row << '0'.sized(1) # extra1
- row << '0'.sized(1) # extra2
- row << '0'.sized(1) # extra3
- row << "\r\n"
- str << row
- rescue
- row = ''
- row << record.id.generation_time.strftime('%Y%m%d%H%M%S').sized(14)
- row << ''.sized(11) # rrnr kind
- row << child.unique_number.sized(7)
- row << child.first_name.sized(15)
- row << child.last_name.sized(30)
- row << ''.sized(35)
- row << ''.sized(6)
- row << ''.sized(30)
- row << ''.sized(20) # telefoon
- row << reserver.email.sized(50)
- row << record.date.strftime('%Y%m%d').sized(8)
- row << '0'.sized(1)
- row << '1'.sized(1) # namiddag
- row << '1300'.sized(4)
- row << '1700'.sized(4)
- row << '0000'.sized(4) # van2
- row << '0000'.sized(4) # tot2
- row << locatie_mapping[unit.id.to_s].sized(3) # loc1
- row << locatie_mapping[unit.id.to_s].sized(3) # loc2
- row << '000'.sized(3) # activiteit
- row << '0'.sized(1) # extra1
- row << '0'.sized(1) # extra2
- row << '0'.sized(1) # extra3
- row << "\r\n"
- debugstr << row
- next
- end
- end
- end
- puts 'Namiddagen geexporteerd'
- fullday_collection.each do |record|
- reserver = record.reserver
- #address = reserver.addresses.first
- #unit = record.reservation_unit
- record.children_ids.each do |child_id|
- child = reserver.children.find(child_id)
- next unless child
- begin
- rescue
- next
- end
- end
- end
- puts 'Volledige dagen geexporteerd'
- file = File.new('export.sdf', 'w+')
- file.write str
- file.close
- puts 'Exportfile weggeschreven'
- debug = File.new('fails.sdf', 'w+')
- debug.write debugstr
- debug.close
- puts 'Errorfile weggeschreven'
Add Comment
Please, Sign In to add comment