| 123456789101112131415161718192021222324252627282930313233 |
- class Commission < ActiveRecord::Base
- has_many :sellerscommissions
- belongs_to :pointsale
- belongs_to :user
- ##--- Llevar registro de Actividad del usuario
- audited
- accepts_nested_attributes_for :sellerscommissions
- def rango_de_ventas(pointsale, percent)
- sales_range = Pointsale.find(pointsale).sales.where("sales.status = 2").order(" sales.id ASC ") #todas las ventas en ese punto de venta
- commissions = Commission.where(:pointsale_id => pointsale).order("last_sale_id ASC").last #última comisión en el punto de venta
- if commissions.present? #si hay comisiones
- last_sale = commissions.last_sale_id+1
- 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 ")
- #rango es entre último last_sale_id+1 y la última id de sales_range de arriba
- else
- last_sale = sales_range.last.id
- end
- total = (percent / 100.0) * sales_range.sum(:total)
- self.pointsale_id = pointsale
- self.last_sale_id = last_sale
- self.commission_total = total
- self.date = Date.today
- end
- end
|