ballalama3_app/app/models/donator_transaction.rb
Nicolas Bally bc774b8159 initial
2016-12-01 10:54:16 +01:00

68 lines
1.6 KiB
Ruby

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