63 lines
1.1 KiB
Ruby
63 lines
1.1 KiB
Ruby
class KapsDay < ActiveRecord::Base
|
|
belongs_to :p_customer
|
|
|
|
has_many :kapsmes
|
|
|
|
after_save do
|
|
|
|
self.p_customer.kaps.where(:kaps_type_id => 1).each do |kap|
|
|
|
|
|
|
if !self.kapsmes.where(:kap_id => kap.id).first
|
|
self.kapsmes.create(
|
|
:kap_id => kap.id,
|
|
|
|
:name => kap.name,
|
|
:description => kap.description,
|
|
:public => kap.public,
|
|
:kaps_cat_id => kap.kaps_cat_id,
|
|
:kaps_type_id => kap.kaps_type_id,
|
|
|
|
:points => kap.points,
|
|
|
|
:origin_kaps_id => kap.origin_kaps_id,
|
|
:origin_author_id => kap.origin_author_id,
|
|
:archived => kap.archived,
|
|
:kaps_day_id => self.id,
|
|
|
|
|
|
:p_customer => self.p_customer
|
|
)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
def total_points
|
|
self.kapsmes.sum(:points)
|
|
end
|
|
|
|
def total_points_earneds
|
|
self.kapsmes.where(:done => true).sum(:points)
|
|
end
|
|
|
|
|
|
def completed
|
|
(100.0 * self.total_points_earneds.to_f) / total_points.to_f
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|