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