Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. cat > UpdateExpenseOrderTotal.rb
  2. a = load "#{Rails.root}/UpdateExpenseOrderTotal.rb"
  3. a = UpdateExpenseOrderTotal
  4. a.new('tenant').run
  5.  
  6. class UpdateExpenseOrderTotal
  7. def initialize(tenant)
  8. @tenant = tenant
  9. end
  10.  
  11. def run
  12. Apartment::Tenant.switch! @tenant
  13. update_finance_order_total
  14. end
  15.  
  16. def get_profit_centers_by_order(order_id)
  17. Finance::ExpenseOrderProfitCenter.where(finance_expense_order_id: order_id)
  18. end
  19.  
  20. def get_all_expense_orders_with_zero
  21. Finance::ExpenseOrder.where(total: 0)
  22. end
  23.  
  24. def update_finance_order_total
  25. get_all_expense_orders_with_zero.each do |order|
  26. profits = get_profit_centers_by_order(order.id)
  27. total = profits.map(&:total).inject(0) { |sum, total| sum + (total.nil? ? 0 : total) }
  28. order.update(total: total)
  29. end
  30. end
  31. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement