Sha256: 170e26313dd00008509d287cb4d5bc493e9566edf7c829142ea3ef1a37232aec

Contents?: true

Size: 855 Bytes

Versions: 9

Compression:

Stored size: 855 Bytes

Contents

module Billing
  class PaymentWithType < Payment
    belongs_to :payment_type, inverse_of: :payments
    
    delegate :fiscal?, :cash?, to: :payment_type, allow_nil: true
    
    validates_presence_of :payment_type
    #validates :payment_type, inclusion: { in: :payment_types }
    
    after_initialize on: :create do
      self.payment_type = default_payment_type unless payment_type
    end
    
    def find_payment_type_mapping_for(fiscal_driver)
      payment_type.payment_type_fiscal_driver_mappings.find_by(extface_driver_id: fiscal_driver.id).try(:mapping) if fiscal_driver.fiscal?
    end
    
    private
      def default_payment_type
        if pt = billable.try(:default_payment_type)
          pt
        else
          bill.try(:payment_types).try(:first) unless bill.try(:payment_types).try(:many?)
        end
      end
    
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
billing-0.2.2 app/models/billing/payment_with_type.rb
billing-0.2.1 app/models/billing/payment_with_type.rb
billing-0.2.0 app/models/billing/payment_with_type.rb
billing-0.1.9 app/models/billing/payment_with_type.rb
billing-0.1.8 app/models/billing/payment_with_type.rb
billing-0.1.7 app/models/billing/payment_with_type.rb
billing-0.1.6 app/models/billing/payment_with_type.rb
billing-0.1.5 app/models/billing/payment_with_type.rb
billing-0.1.4 app/models/billing/payment_with_type.rb