diff options
| author | cedricnjanga | 2017-12-19 16:21:06 +0100 | 
|---|---|---|
| committer | Luc Donnet | 2017-12-21 13:55:49 +0100 | 
| commit | 43f8c76522288a0328d520dfc753ed173fc84964 (patch) | |
| tree | e067ae1f57fb34a5a82425b1e278507ccfdba4ae /app/models/chouette/purchase_window.rb | |
| parent | 723bee2cafff84c0b948f85ed450408d6cbc866a (diff) | |
| download | chouette-core-43f8c76522288a0328d520dfc753ed173fc84964.tar.bz2 | |
BusinessCalendar => PurchaseWindow
belongs_to referential
Diffstat (limited to 'app/models/chouette/purchase_window.rb')
| -rw-r--r-- | app/models/chouette/purchase_window.rb | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/app/models/chouette/purchase_window.rb b/app/models/chouette/purchase_window.rb new file mode 100644 index 000000000..a9bbe2003 --- /dev/null +++ b/app/models/chouette/purchase_window.rb @@ -0,0 +1,43 @@ +require 'range_ext' +require_relative '../calendar/period' + +module Chouette +  class PurchaseWindow < Chouette::TridentActiveRecord +    # include ChecksumSupport +    include ObjectidSupport +    include PeriodSupport +    extend Enumerize +    enumerize :color, in: %w(#9B9B9B #FFA070 #C67300 #7F551B #41CCE3 #09B09C #3655D7 #6321A0 #E796C6 #DD2DAA) + +    has_paper_trail +    belongs_to :referential + +    validates_presence_of :name, :referential + +    scope :overlapping, -> (period_range) do +      where("(periods.begin <= :end AND periods.end >= :begin) OR (dates BETWEEN :begin AND :end)", {begin: period_range.begin, end: period_range.end}) +    end + +    def local_id +      "IBOO-#{self.referential.id}-#{self.id}" +    end +     +    def bounding_dates +      periods_min_date..periods_max_date if periods_min_date && periods_max_date +    end + +    def periods_max_date +      return nil if self.periods.empty? +      self.periods.max.end +    end + +    def periods_min_date +      return nil if self.periods.empty? +      self.periods.min.begin +    end + +    # def checksum_attributes +    # end + +  end +end
\ No newline at end of file | 
