Guest User

Untitled

a guest
May 25th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. def do_import
  2.  
  3. @feed = Feed.find(params[:id])
  4.  
  5. # Clean this up...
  6. return if params[:feed_field].index('sku').blank?
  7.  
  8. f = File.open(@feed.hard_file.path, 'r')
  9. line_ending = f.read(4096).scan(/(\r\n|\n|\r)/).first.first.to_s
  10. f.close
  11.  
  12. @feed_rows = Array.new
  13. # Get five lines from the CSV file
  14.  
  15. @bindings = Array.new
  16.  
  17. FasterCSV.foreach(@feed.hard_file.path, :row_sep => line_ending) do |row|
  18.  
  19. # Skip empty rows...
  20. next if row.empty?
  21.  
  22. # @feed_rows << row
  23.  
  24. sku = row[ params[:feed_field].index('sku').to_i ]
  25. # Don't want produts without a SKU
  26. next if sku.blank?
  27.  
  28. product = Product.find_by_sku(sku) || Product.new
  29.  
  30. product.feed_id = @feed.id
  31.  
  32. params[:feed_field].each do |key, value|
  33. # Skip blank records
  34. next if value.blank? or row[params[:feed_field][key].to_i].blank?
  35. # logger.info "Key: #{key} Value: #{value}"
  36. # logger.info "Row Value: #{row[key.to_i]}"
  37. product.update_attribute(value, row[key.to_i])
  38. end
  39.  
  40. product.save!
  41.  
  42. @bindings << [row, product]
  43.  
  44. end
Add Comment
Please, Sign In to add comment