Sha256: df890fbac3501d61ad5fe38f24b0640dfe28410779562b4c4603f2d4978d3635

Contents?: true

Size: 619 Bytes

Versions: 24

Compression:

Stored size: 619 Bytes

Contents

module Comee
  module Core
    class InvoiceItem < ApplicationRecord
      before_save { self.total_price = unit_price * quantity }
      after_save :update_invoice
      after_destroy :update_invoice

      belongs_to :shipment_instruction_item
      belongs_to :invoice
      belongs_to :unit

      validates :quantity, :unit_price, presence: true, numericality: {greater_than: 0}
      validates :total_price, numericality: {greater_than_or_equal_to: 0, allow_nil: true}

      def update_invoice
        invoice.calculate_total_price
        invoice.calculate_vat
        invoice.save!
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
comee_core-0.3.40 app/models/comee/core/invoice_item.rb
comee_core-0.3.39 app/models/comee/core/invoice_item.rb
comee_core-0.3.38 app/models/comee/core/invoice_item.rb
comee_core-0.3.37 app/models/comee/core/invoice_item.rb
comee_core-0.3.36 app/models/comee/core/invoice_item.rb
comee_core-0.3.35 app/models/comee/core/invoice_item.rb
comee_core-0.3.34 app/models/comee/core/invoice_item.rb
comee_core-0.3.33 app/models/comee/core/invoice_item.rb
comee_core-0.3.32 app/models/comee/core/invoice_item.rb
comee_core-0.3.31 app/models/comee/core/invoice_item.rb
comee_core-0.3.30 app/models/comee/core/invoice_item.rb
comee_core-0.3.29 app/models/comee/core/invoice_item.rb
comee_core-0.3.28 app/models/comee/core/invoice_item.rb
comee_core-0.3.27 app/models/comee/core/invoice_item.rb
comee_core-0.3.26 app/models/comee/core/invoice_item.rb
comee_core-0.3.25 app/models/comee/core/invoice_item.rb
comee_core-0.3.24 app/models/comee/core/invoice_item.rb
comee_core-0.3.23 app/models/comee/core/invoice_item.rb
comee_core-0.3.22 app/models/comee/core/invoice_item.rb
comee_core-0.3.21 app/models/comee/core/invoice_item.rb