An open source, stand-alone, customisable public spending data web app.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

40 lignes
1007 B

  1. require 'lib/models'
  2. require 'csv'
  3. count = 0
  4. # 2010Q1: 0-Directorate,1-Updated,2-Service,3-Supplier Name,4-Amount excl vat £,5-Type
  5. CSV::Reader.parse(File.open('data/2010Q1.csv', 'rb')) do |row|
  6. count += 1
  7. if (count > 4) # skip first four lines that don't contain data
  8. p row
  9. directorate = Directorate.first_or_create(:name => row[0].strip)
  10. service = Service.first_or_create(:name => row[2].strip)
  11. supplier = Supplier.first_or_create(:name => row[3].strip)
  12. dt = row[1].strip.split('/')
  13. payment = Payment.first_or_create(
  14. 'directorate' => directorate,
  15. 'service' => service,
  16. 'supplier' => supplier,
  17. 'amount' => row[4].strip.gsub(/,/, ''),
  18. 'd' => Date.new(dt[2].to_i, dt[1].to_i, dt[0].to_i),
  19. 'tyype' => row[5].strip
  20. )
  21. unless payment.save
  22. puts "ERROR: Failed to save payment"
  23. payment.errors.each do |e|
  24. puts e
  25. end
  26. end
  27. end
  28. end