comee_core 0.2.46 → 0.2.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/comee/core/payment_order.rb +20 -0
- data/app/models/comee/core/supplier_invoice.rb +32 -0
- data/app/models/comee/core/supplier_invoice_item.rb +20 -0
- data/app/models/comee/core/supplier_payment.rb +29 -0
- data/db/migrate/20240328132454_create_comee_core_supplier_invoices.rb +19 -0
- data/db/migrate/20240328132625_create_comee_core_supplier_invoice_items.rb +23 -0
- data/db/migrate/20240328132713_create_comee_core_payment_orders.rb +16 -0
- data/db/migrate/20240328132921_create_comee_core_supplier_payments.rb +18 -0
- data/lib/comee/core/version.rb +1 -1
- data/spec/factories/comee/core/payment_orders.rb +9 -0
- data/spec/factories/comee/core/supplier_invoice_items.rb +10 -0
- data/spec/factories/comee/core/supplier_invoices.rb +15 -0
- data/spec/factories/comee/core/supplier_payments.rb +8 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d634ab9d176cff8de70d3f9773017f390827ba6819d0201801fd23b316c3ec2
|
4
|
+
data.tar.gz: 364538a72a9bf036f947f2391efe2854ca1e89cce87eccb7c4ca615b295306b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0538cffa099fcf9b7d423ce3e6815ab64f9570355ed65240cd56427d648a930b1c355fdc57003739d16435773d764409d59d038121a1ff194a5a07341db0fab1'
|
7
|
+
data.tar.gz: a94b47936abb583cd19448363a22144ad976cffdf16e7b3a2256b1ac7d9bce9d869fe6289ddf313844680dbfbae46bcfa594db153b6d4994da28469da97e5462
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Comee
|
2
|
+
module Core
|
3
|
+
class PaymentOrder < ApplicationRecord
|
4
|
+
belongs_to :currency
|
5
|
+
has_many :supplier_payments
|
6
|
+
|
7
|
+
enum :status, {pending: 0, processed: 1}
|
8
|
+
validates :date_issued, :status, presence: true
|
9
|
+
validates :amount, presence: true, numericality: {greater_than: 0}
|
10
|
+
|
11
|
+
def self.ransackable_attributes(_auth_object = nil)
|
12
|
+
%w[id reference_no date_issued status]
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.ransackable_associations(_auth_object = nil)
|
16
|
+
%w[currency]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Comee
|
2
|
+
module Core
|
3
|
+
class SupplierInvoice < ApplicationRecord
|
4
|
+
belongs_to :purchase_order
|
5
|
+
has_many :supplier_invoice_items
|
6
|
+
has_many :supplier_payments
|
7
|
+
|
8
|
+
enum :status, {draft: 0, approved: 1}
|
9
|
+
enum :payment_status, {not_paid: 0, partially_paid: 1, fully_paid: 2, overpaid: 3}
|
10
|
+
|
11
|
+
validates :invoice_no, presence: true, uniqueness: true
|
12
|
+
validates :status, :payment_status, presence: true
|
13
|
+
validates :total_price, numericality: {greater_than_or_equal_to: 0, allow_nil: true}
|
14
|
+
validates :amount_paid, numericality: {greater_than_or_equal_to: 0, allow_nil: true}
|
15
|
+
|
16
|
+
def self.ransackable_attributes(_auth_object = nil)
|
17
|
+
%w[
|
18
|
+
id
|
19
|
+
purchase_order_id
|
20
|
+
invoice_no
|
21
|
+
date_issued
|
22
|
+
status
|
23
|
+
payment_status
|
24
|
+
]
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.ransackable_associations(_auth_object = nil)
|
28
|
+
["purchase_order"]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Comee
|
2
|
+
module Core
|
3
|
+
class SupplierInvoiceItem < ApplicationRecord
|
4
|
+
before_save { self.total_price = unit_price * quantity }
|
5
|
+
after_save :update_invoice_price
|
6
|
+
|
7
|
+
belongs_to :purchase_order_item
|
8
|
+
belongs_to :supplier_invoice
|
9
|
+
belongs_to :unit
|
10
|
+
|
11
|
+
validates :quantity, :unit_price, presence: true, numericality: {greater_than: 0}
|
12
|
+
validates :total_price, numericality: {greater_than_or_equal_to: 0, allow_nil: true}
|
13
|
+
|
14
|
+
def update_invoice_price
|
15
|
+
supplier_invoice.total_price = supplier_invoice.supplier_invoice_items.sum(:total_price)
|
16
|
+
supplier_invoice.save!
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Comee
|
2
|
+
module Core
|
3
|
+
class SupplierPayment < ApplicationRecord
|
4
|
+
belongs_to :payment_order
|
5
|
+
belongs_to :supplier_invoice
|
6
|
+
|
7
|
+
validates :amount, presence: true, numericality: {greater_than: 0}
|
8
|
+
validate :validate_amount
|
9
|
+
|
10
|
+
def self.ransackable_attributes(_auth_object = nil)
|
11
|
+
%w[id created_at updated_at]
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.ransackable_associations(_auth_object = nil)
|
15
|
+
%w[payment_deposit invoice]
|
16
|
+
end
|
17
|
+
|
18
|
+
def validate_amount
|
19
|
+
return unless amount && payment_order
|
20
|
+
|
21
|
+
running_total = payment_order.supplier_payments.sum(:amount)
|
22
|
+
running_total -= amount_was if id
|
23
|
+
remaining = payment_order.amount - running_total
|
24
|
+
error = "Amount exceeded. The maximum amount you can set is #{remaining}"
|
25
|
+
errors.add(:base, error) if amount > remaining
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class CreateComeeCoreSupplierInvoices < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :comee_core_supplier_invoices do |t|
|
4
|
+
t.references :purchase_order,
|
5
|
+
null: false,
|
6
|
+
index: {name: "po_on_ccsi_indx"},
|
7
|
+
foreign_key: {to_table: :comee_core_purchase_orders}
|
8
|
+
t.string :invoice_no, null: false
|
9
|
+
t.date :date_issued
|
10
|
+
t.float :total_price
|
11
|
+
t.float :amount_paid, default: 0
|
12
|
+
t.integer :status, null: false, default: 0
|
13
|
+
t.integer :payment_status, null: false, default: 0
|
14
|
+
|
15
|
+
t.timestamps
|
16
|
+
end
|
17
|
+
add_index :comee_core_supplier_invoices, :invoice_no, unique: true
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class CreateComeeCoreSupplierInvoiceItems < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :comee_core_supplier_invoice_items do |t|
|
4
|
+
t.references :purchase_order_item,
|
5
|
+
null: false,
|
6
|
+
index: {name: "poi_on_ccsii_indx"},
|
7
|
+
foreign_key: {to_table: :comee_core_purchase_order_items}
|
8
|
+
t.references :supplier_invoice,
|
9
|
+
null: false,
|
10
|
+
index: {name: "si_on_ccsii2_indx"},
|
11
|
+
foreign_key: {to_table: :comee_core_supplier_invoices}
|
12
|
+
t.float :quantity, null: false
|
13
|
+
t.references :unit,
|
14
|
+
null: false,
|
15
|
+
index: {name: "unit_on_ccsii2_indx"},
|
16
|
+
foreign_key: {to_table: :comee_core_units}
|
17
|
+
t.float :unit_price, null: false
|
18
|
+
t.float :total_price
|
19
|
+
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateComeeCorePaymentOrders < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :comee_core_payment_orders do |t|
|
4
|
+
t.string :reference_no
|
5
|
+
t.date :date_issued, null: false
|
6
|
+
t.references :currency,
|
7
|
+
null: false,
|
8
|
+
index: {name: "currency_on_ccpo_indx"},
|
9
|
+
foreign_key: {to_table: :comee_core_currencies}
|
10
|
+
t.float :amount, null: false
|
11
|
+
t.integer :status, null: false, default: 0
|
12
|
+
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class CreateComeeCoreSupplierPayments < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :comee_core_supplier_payments do |t|
|
4
|
+
t.references :payment_order,
|
5
|
+
null: false,
|
6
|
+
index: {name: "po_on_ccsp_indx"},
|
7
|
+
foreign_key: {to_table: :comee_core_payment_orders}
|
8
|
+
t.references :supplier_invoice,
|
9
|
+
null: false,
|
10
|
+
index: {name: "si_on_ccsp_indx"},
|
11
|
+
foreign_key: {to_table: :comee_core_supplier_invoices}
|
12
|
+
t.float :amount, null: false
|
13
|
+
t.string :remark
|
14
|
+
|
15
|
+
t.timestamps
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/comee/core/version.rb
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :payment_order, class: "Comee::Core::PaymentOrder" do
|
3
|
+
reference_no { Faker::Alphanumeric.alpha(number: 10) }
|
4
|
+
date_issued { Date.current }
|
5
|
+
currency
|
6
|
+
amount { 100 }
|
7
|
+
status { Comee::Core::PaymentOrder.statuses[:pending] }
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :supplier_invoice, class: "Comee::Core::SupplierInvoice" do
|
3
|
+
purchase_order
|
4
|
+
invoice_no { Faker::Alphanumeric.alpha(number: 8) }
|
5
|
+
date_issued { Date.current }
|
6
|
+
total_price { 0 }
|
7
|
+
amount_paid { 0 }
|
8
|
+
status { Comee::Core::SupplierInvoice.statuses[:draft] }
|
9
|
+
payment_status { Comee::Core::SupplierInvoice.payment_statuses[:not_paid] }
|
10
|
+
|
11
|
+
trait :approved do
|
12
|
+
status { Comee::Core::SupplierInvoice.statuses[:approved] }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: comee_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.47
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henock L.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|
@@ -325,6 +325,7 @@ files:
|
|
325
325
|
- app/models/comee/core/order_source.rb
|
326
326
|
- app/models/comee/core/payment.rb
|
327
327
|
- app/models/comee/core/payment_deposit.rb
|
328
|
+
- app/models/comee/core/payment_order.rb
|
328
329
|
- app/models/comee/core/pickup_schedule.rb
|
329
330
|
- app/models/comee/core/pod.rb
|
330
331
|
- app/models/comee/core/price.rb
|
@@ -343,6 +344,9 @@ files:
|
|
343
344
|
- app/models/comee/core/shipment_instruction_item.rb
|
344
345
|
- app/models/comee/core/shipment_item.rb
|
345
346
|
- app/models/comee/core/supplier.rb
|
347
|
+
- app/models/comee/core/supplier_invoice.rb
|
348
|
+
- app/models/comee/core/supplier_invoice_item.rb
|
349
|
+
- app/models/comee/core/supplier_payment.rb
|
346
350
|
- app/models/comee/core/time_slot.rb
|
347
351
|
- app/models/comee/core/transport_availability.rb
|
348
352
|
- app/models/comee/core/unit.rb
|
@@ -440,6 +444,10 @@ files:
|
|
440
444
|
- db/migrate/20240314111307_create_comee_core_purchase_requisition_items.rb
|
441
445
|
- db/migrate/20240325155406_create_comee_core_purchase_order_item_diffs.rb
|
442
446
|
- db/migrate/20240328033103_add_total_price_to_purchase_order.rb
|
447
|
+
- db/migrate/20240328132454_create_comee_core_supplier_invoices.rb
|
448
|
+
- db/migrate/20240328132625_create_comee_core_supplier_invoice_items.rb
|
449
|
+
- db/migrate/20240328132713_create_comee_core_payment_orders.rb
|
450
|
+
- db/migrate/20240328132921_create_comee_core_supplier_payments.rb
|
443
451
|
- lib/comee/core.rb
|
444
452
|
- lib/comee/core/engine.rb
|
445
453
|
- lib/comee/core/version.rb
|
@@ -471,6 +479,7 @@ files:
|
|
471
479
|
- spec/factories/comee/core/notifications.rb
|
472
480
|
- spec/factories/comee/core/order_sources.rb
|
473
481
|
- spec/factories/comee/core/payment_deposits.rb
|
482
|
+
- spec/factories/comee/core/payment_orders.rb
|
474
483
|
- spec/factories/comee/core/payments.rb
|
475
484
|
- spec/factories/comee/core/pickup_schedules.rb
|
476
485
|
- spec/factories/comee/core/pods.rb
|
@@ -488,6 +497,9 @@ files:
|
|
488
497
|
- spec/factories/comee/core/shipment_instruction_items.rb
|
489
498
|
- spec/factories/comee/core/shipment_instructions.rb
|
490
499
|
- spec/factories/comee/core/shipment_items.rb
|
500
|
+
- spec/factories/comee/core/supplier_invoice_items.rb
|
501
|
+
- spec/factories/comee/core/supplier_invoices.rb
|
502
|
+
- spec/factories/comee/core/supplier_payments.rb
|
491
503
|
- spec/factories/comee/core/suppliers.rb
|
492
504
|
- spec/factories/comee/core/time_slots.rb
|
493
505
|
- spec/factories/comee/core/transport_availabilities.rb
|