app/models/booking.rb~ in has_accounts-0.4.0 vs app/models/booking.rb~ in has_accounts-0.4.1
- old
+ new
@@ -1,13 +1,34 @@
class Booking < ActiveRecord::Base
# Validation
validates_presence_of :debit_account, :credit_account, :title, :amount, :value_date
validates_time :value_date
- # Associations
+ # Account
belongs_to :debit_account, :foreign_key => 'debit_account_id', :class_name => "Account"
belongs_to :credit_account, :foreign_key => 'credit_account_id', :class_name => "Account"
+ def direct_account
+ return nil unless reference
+
+ return reference.direct_account if reference.respond_to? :direct_account
+ end
+
+ def contra_account(account = nil)
+ # Derive from direct_account if available
+ account ||= direct_account
+
+ return unless account
+
+ if debit_account == account
+ return credit_account
+ elsif credit_account == account
+ return debit_account
+ else
+ return nil
+ end
+ end
+
# Scoping
default_scope order('value_date, id')
scope :by_value_date, lambda {|value_date| where(:value_date => value_date) }
scope :by_value_period, lambda {|from, to| where(:value_date => (from..to)) }