Sha256: 6db50d9e18d839cfbb4f6778ad733fed6a5bc89a16d8c5121883e5f08a536869

Contents?: true

Size: 1020 Bytes

Versions: 2

Compression:

Stored size: 1020 Bytes

Contents

module Skr

    module BusinessEntity

        extend ActiveSupport::Concern

        included do
            has_random_hash_code
            has_code_identifier from: 'name'

            belongs_to :billing_address,  class_name: 'Skr::Address',
              export: { writable: true }, dependent: :destroy
            belongs_to :shipping_address, class_name: 'Skr::Address',
              export: { writable: true }, dependent: :destroy
            belongs_to :terms,            class_name: 'Skr::PaymentTerm', export: { writable: true }

            delegate_and_export :terms_code, :terms_description

            validates :name,  presence: true
            validates :terms, :billing_address, :shipping_address, set: true

            before_validation :set_defaults, :on=>:create
        end

        def set_defaults
            self.terms ||= PaymentTerm.find_by_code(Skr.config.customer_terms_code)
        end

        def get_form(type)
            forms ? forms[type] : 'default'
        end
    end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stockor-0.3.0 lib/skr/models/business_entity.rb
stockor-0.2 lib/skr/models/business_entity.rb