Sha256: 7b65d88b2ea5fdb43d156ea70be96d26d91a338028f73b122f39094cca06aa00
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
module Ecm::TimeTracking class Entry < ActiveRecord::Base DEFAULT_DUE_HOURS_PER_DAY = 8 DEFAULT_BREAK_LENGTH_IN_MINUTES = 45 belongs_to :tracker, class_name: Configuration.tracker_class_name, foreign_key: 'tracker_id' belongs_to :entry_type validates :tracker, :begin_at, :end_at, presence: true after_initialize :set_defaults, if: :new_record? def break_length_in_minutes=(break_length_in_minutes) self.break_length_in_seconds = break_length_in_minutes.to_i * 60 end def break_length_in_minutes (break_length_in_seconds || 0) / 60 end def length end_at - begin_at end def overtime length - due_in_seconds - (break_length_in_seconds || 0) end def due_in_seconds entry_type.try(:due_in_seconds) || 0 end private def set_defaults self.end_at ||= Time.zone.now.change(sec: 0) self.begin_at ||= self.end_at - DEFAULT_DUE_HOURS_PER_DAY.hours - DEFAULT_BREAK_LENGTH_IN_MINUTES.minutes self.break_length_in_minutes ||= DEFAULT_BREAK_LENGTH_IN_MINUTES end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ecm_time_tracking-0.0.4 | app/models/ecm/time_tracking/entry.rb |
ecm_time_tracking-0.0.3 | app/models/ecm/time_tracking/entry.rb |