68 lines
1.6 KiB
Ruby
Executable File
68 lines
1.6 KiB
Ruby
Executable File
class DonatorTransaction < ActiveRecord::Base
|
|
belongs_to :donator
|
|
belongs_to :recurrent_payment
|
|
belongs_to :tr_occasion
|
|
belongs_to :tr_activity
|
|
|
|
#has_many :particulars, :as => :owner
|
|
|
|
belongs_to :particular_bill, :class_name => "Particular"
|
|
|
|
accepts_nested_attributes_for :particular_bill
|
|
|
|
belongs_to :particular_send, :class_name => "Particular"
|
|
|
|
accepts_nested_attributes_for :particular_send
|
|
|
|
BANK_ACCOUNT = ["Crédit coopératif", "La banque postale"]
|
|
|
|
has_one :tr_payment
|
|
accepts_nested_attributes_for :tr_payment
|
|
|
|
has_one :tr_payment_type, :through => :tr_payment
|
|
|
|
has_many :transaction_items
|
|
accepts_nested_attributes_for :transaction_items
|
|
|
|
|
|
has_one :generated_recurrent_payment, :foreign_key => :origine_transaction_id, :class_name => "RecurrentPayment"
|
|
accepts_nested_attributes_for :generated_recurrent_payment
|
|
def total
|
|
self.transaction_items.sum(:amount)
|
|
end
|
|
before_create do
|
|
self.generated_recurrent_payment = RecurrentPayment.new()
|
|
update_recurrent_payment()
|
|
end
|
|
before_update do
|
|
update_recurrent_payment()
|
|
end
|
|
|
|
def update_recurrent_payment
|
|
if self.recurrent
|
|
self.generated_recurrent_payment.active = true
|
|
self.generated_recurrent_payment.start_at = self.tr_payment.paid_at
|
|
else
|
|
self.generated_recurrent_payment.active = false
|
|
self.generated_recurrent_payment.start_at = nil
|
|
end
|
|
end
|
|
|
|
|
|
def valid_particulars?
|
|
|
|
true if self.particular_bill.valid? and particular_send.valid?
|
|
|
|
|
|
end
|
|
|
|
def tr_payment_type_id
|
|
self.tr_payment_type.id if self.tr_payment_type
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
end
|