Sha256: 2c90a2f216b7beaceecc54b1576849d6ee36245ac5e1d259aa2bbeb27240799e
Contents?: true
Size: 1.53 KB
Versions: 38
Compression:
Stored size: 1.53 KB
Contents
module Comee module Core class Invoice < ApplicationRecord before_validation :generate_invoice_no, if: proc { |inv| inv.invoice_no.nil? } 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, 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 def generate_invoice_no self.invoice_no = Util.generate_number("Invoice", "invoice_no") end end end end
Version data entries
38 entries across 38 versions & 1 rubygems