namespace :spina_shop do
task import_countries: :environment do Spina::Shop::CountryImporter.import end task calculate_trend: :environment do products = Spina::Shop::Product.where(stock_enabled: true) products.each do |product| adjustments = product.stock_level_adjustments.sales.where('spina_shop_stock_level_adjustments.created_at > ?', 90.days.ago).order(:created_at) if adjustments.any? total = 0 first_date = adjustments.first.created_at.to_date sum_array = adjustments.map do |adjustment| total += adjustment.adjustment * -1 [(adjustment.created_at.to_date - first_date).to_i, total] end r = Spina::Shop::SimpleLinearRegression.new(sum_array.map(&:first), sum_array.map(&:last)) unless r.slope.nan? product.update_column(:trend, r.slope) else product.update_column(:trend, 0) end else product.update_column(:trend, 0) end end end
end