Sha256: 89757961fa1900c1e74d52f9214ff6184178e67bc82c9424a72120f8927cb9d5
Contents?: true
Size: 1.35 KB
Versions: 25
Compression:
Stored size: 1.35 KB
Contents
module Comee module Core class Invoice < ApplicationRecord belongs_to :sales_order belongs_to :pod has_many :invoice_items has_many :additional_items has_many :payments has_noticed_notifications model_name: "Comee::Core::Notification" enum :status, {draft: 0, approved: 1, issued: 2} enum :payment_status, {not_paid: 0, partially_paid: 1, fully_paid: 2, overpaid: 3} validates :invoice_no, presence: true, uniqueness: true validates :status, :payment_status, presence: true validates :total_price, numericality: {greater_than_or_equal_to: 0, allow_nil: true} validates :amount_paid, numericality: {greater_than_or_equal_to: 0, allow_nil: true} delegate(:order_number, to: :sales_order, prefix: false) delegate(:reference_no, to: :pod, prefix: true) def update_total_price self.total_price = invoice_items.sum(:total_price) + additional_items.sum(:total_price) save! end def self.ransackable_attributes(_auth_object = nil) %w[ id 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
25 entries across 25 versions & 1 rubygems