Sha256: 8731d4c75fa8724cdac06631ad927d1ec8cbb5219fb1681b1f725acdd2002cbf

Contents?: true

Size: 1.26 KB

Versions: 70

Compression:

Stored size: 1.26 KB

Contents

module Comee
  module Core
    class Invoice < ApplicationRecord
      before_save :update_invoice_total
      belongs_to :sales_order
      has_many :invoice_items

      has_noticed_notifications model_name: "Comee::Core::Notification"

      enum :status, {draft: 0, approved: 1}
      enum :payment_status, {not_settled: 0, settled: 1}

      validates :invoice_no, presence: true, uniqueness: true
      validates :date_issued, :payment_term, :status, :payment_status, presence: true
      validates :additional_charges, :total_price, numericality: {greater_than_or_equal_to: 0, allow_nil: true}

      delegate(:order_number, to: :sales_order)

      def update_invoice_total
        self.additional_charges ||= 0
        self.total_price ||= 0
        self.total_price -= additional_charges_was if additional_charges_was && additional_charges_changed?
        self.total_price += additional_charges
      end

      def self.ransackable_attributes(_auth_object = nil)
        %w[
          sales_order_id
          invoice_no
          date_issued
          ship_name
          delivery_date
          voyage_no
          status
          payment_status
        ]
      end

      def self.ransackable_associations(_auth_object = nil)
        ["sales_order"]
      end
    end
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
comee_core-0.1.90 app/models/comee/core/invoice.rb
comee_core-0.1.89 app/models/comee/core/invoice.rb
comee_core-0.1.88 app/models/comee/core/invoice.rb
comee_core-0.1.87 app/models/comee/core/invoice.rb
comee_core-0.1.86 app/models/comee/core/invoice.rb
comee_core-0.1.85 app/models/comee/core/invoice.rb
comee_core-0.1.84 app/models/comee/core/invoice.rb
comee_core-0.1.83 app/models/comee/core/invoice.rb
comee_core-0.1.82 app/models/comee/core/invoice.rb
comee_core-0.1.81 app/models/comee/core/invoice.rb
comee_core-0.1.80 app/models/comee/core/invoice.rb
comee_core-0.1.79 app/models/comee/core/invoice.rb
comee_core-0.1.78 app/models/comee/core/invoice.rb
comee_core-0.1.77 app/models/comee/core/invoice.rb
comee_core-0.1.76 app/models/comee/core/invoice.rb
comee_core-0.1.75 app/models/comee/core/invoice.rb
comee_core-0.1.74 app/models/comee/core/invoice.rb
comee_core-0.1.73 app/models/comee/core/invoice.rb
comee_core-0.1.72 app/models/comee/core/invoice.rb
comee_core-0.1.71 app/models/comee/core/invoice.rb