commission.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. class Commission < ActiveRecord::Base
  2. has_many :sellerscommissions
  3. belongs_to :pointsale
  4. belongs_to :user
  5. ##--- Llevar registro de Actividad del usuario
  6. audited
  7. accepts_nested_attributes_for :sellerscommissions
  8. def rango_de_ventas(pointsale, percent)
  9. sales_range = Pointsale.find(pointsale).sales.where("sales.status = 2").order(" sales.id ASC ") #todas las ventas en ese punto de venta
  10. commissions = Commission.where(:pointsale_id => pointsale).order("last_sale_id ASC").last #última comisión en el punto de venta
  11. if commissions.present? #si hay comisiones
  12. last_sale = commissions.last_sale_id+1
  13. sales_range = Pointsale.find(pointsale).sales.where("sales.status = 2 and sales.id between #{last_sale} and #{sales_range.last.id}").order(" sales.id ASC ")
  14. #rango es entre último last_sale_id+1 y la última id de sales_range de arriba
  15. else
  16. last_sale = sales_range.last.id
  17. end
  18. total = (percent / 100.0) * sales_range.sum(:total)
  19. self.pointsale_id = pointsale
  20. self.last_sale_id = last_sale
  21. self.commission_total = total
  22. self.date = Date.today
  23. end
  24. end