comee_core 0.3.33 → 0.3.34
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/controllers/comee/core/customer_order_items_controller.rb +3 -1
- data/app/controllers/comee/core/sales_order_items_controller.rb +3 -3
- data/app/models/comee/core/delivery_note.rb +7 -1
- data/app/models/comee/core/invoice.rb +8 -2
- data/app/models/comee/core/purchase_order.rb +1 -1
- data/app/models/comee/core/purchase_requisition.rb +1 -1
- data/app/models/comee/core/sales_order.rb +1 -1
- data/app/serializers/comee/core/customer_order_item_serializer.rb +2 -2
- data/app/serializers/comee/core/sales_order_item_serializer.rb +4 -3
- data/app/services/comee/core/customer_order_service.rb +1 -0
- data/app/utils/comee/core/util.rb +17 -10
- data/db/migrate/20240720091730_add_use_alias_field_to_line_items.rb +6 -0
- data/lib/comee/core/version.rb +1 -1
- data/spec/factories/comee/core/customer_order_items.rb +2 -0
- data/spec/factories/comee/core/delivery_notes.rb +1 -1
- data/spec/factories/comee/core/sales_order_items.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9971c642206d96b99ecbda1d612bd2386dbefc6730f8a3e7f23def6361c78ffd
|
4
|
+
data.tar.gz: d9bd7b9810239fcf374985e89c547bf34c6281535894ac6b436a6119632b6f57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0882a7a03c3df0a1ba03ea4adce54275646b98eb479fb5194bde80d2582f97b50fa325cda9342211947bc47b3f3cb48079b787cd7392bc0617654046849eb29
|
7
|
+
data.tar.gz: 1614c0c02b6078704698662d5578557c1379ef1e99a1f0fc3fe88b6072f95ad2caa24cdb597c80c24937c13aca527e766dde9caa325e5de1da34b29afc54fbe6
|
@@ -43,6 +43,7 @@ module Comee
|
|
43
43
|
:serial_no,
|
44
44
|
:customer_item_no,
|
45
45
|
:customer_item_description,
|
46
|
+
:customer_item_alias,
|
46
47
|
:quantity,
|
47
48
|
:price,
|
48
49
|
:total_price,
|
@@ -50,7 +51,8 @@ module Comee
|
|
50
51
|
:canceled,
|
51
52
|
:product_id,
|
52
53
|
:customer_order_id,
|
53
|
-
:unit_id
|
54
|
+
:unit_id,
|
55
|
+
:use_alias
|
54
56
|
)
|
55
57
|
end
|
56
58
|
end
|
@@ -99,9 +99,9 @@ module Comee
|
|
99
99
|
def model_params
|
100
100
|
params.require(:payload)
|
101
101
|
.permit(:sales_order_id, :customer_order_item_id, :product_id, :unit_id, :quantity, :quantity_delivered,
|
102
|
-
:serial_no, :quantity_canceled, :customer_item_no, :customer_item_description, :
|
103
|
-
:
|
104
|
-
:source_id, :processing_status)
|
102
|
+
:serial_no, :quantity_canceled, :customer_item_no, :customer_item_description, :customer_item_alias,
|
103
|
+
:use_alias, :price, :handover_date, :delivery_date, :eb_number, :lead_time, :comment, :action_note,
|
104
|
+
:purchase_order_item_id, :pallet_no, :source_id, :processing_status)
|
105
105
|
end
|
106
106
|
|
107
107
|
def cancel_quantity_params
|
@@ -1,10 +1,16 @@
|
|
1
1
|
module Comee
|
2
2
|
module Core
|
3
3
|
class DeliveryNote < ApplicationRecord
|
4
|
+
before_validation :generate_reference_no, if: proc { |dn| dn.reference_no.nil? }
|
5
|
+
|
4
6
|
belongs_to :pod
|
5
7
|
has_many :shipment_instruction_items
|
6
8
|
|
7
|
-
validates :reference_no, presence: true
|
9
|
+
validates :reference_no, presence: true, uniqueness: true
|
10
|
+
|
11
|
+
def generate_reference_no
|
12
|
+
self.reference_no = Util.generate_number("DeliveryNote", "reference_no", "DN")
|
13
|
+
end
|
8
14
|
end
|
9
15
|
end
|
10
16
|
end
|
@@ -2,6 +2,7 @@ module Comee
|
|
2
2
|
module Core
|
3
3
|
class Invoice < ApplicationRecord
|
4
4
|
before_validation :generate_invoice_no, if: proc { |inv| inv.invoice_no.nil? }
|
5
|
+
before_save :calculate_due_date, unless: proc { |inv| inv.date_issued.nil? }
|
5
6
|
|
6
7
|
belongs_to :sales_order
|
7
8
|
belongs_to :pod
|
@@ -14,7 +15,7 @@ module Comee
|
|
14
15
|
enum :status, {draft: 0, approved: 1, issued: 2}
|
15
16
|
enum :payment_status, {not_paid: 0, partially_paid: 1, fully_paid: 2, overpaid: 3}
|
16
17
|
|
17
|
-
validates :invoice_no, uniqueness:
|
18
|
+
validates :invoice_no, uniqueness: {case_sensitive: false}
|
18
19
|
validates :status, :payment_status, presence: true
|
19
20
|
validates :total_price, numericality: {greater_than_or_equal_to: 0, allow_nil: true}
|
20
21
|
validates :amount_paid, numericality: {greater_than_or_equal_to: 0, allow_nil: true}
|
@@ -32,6 +33,10 @@ module Comee
|
|
32
33
|
self.vat = (calculate_total * 0.19).round(2)
|
33
34
|
end
|
34
35
|
|
36
|
+
def calculate_due_date
|
37
|
+
self.due_date = date_issued + 30.days
|
38
|
+
end
|
39
|
+
|
35
40
|
def calculate_total
|
36
41
|
items = InvoiceItem.where(invoice_id: id)
|
37
42
|
additionals = AdditionalItem.where(invoice_id: id)
|
@@ -57,7 +62,8 @@ module Comee
|
|
57
62
|
end
|
58
63
|
|
59
64
|
def generate_invoice_no
|
60
|
-
|
65
|
+
year = Date.current.year.to_s
|
66
|
+
self.invoice_no = Util.generate_number("Invoice", "invoice_no", year, "-", 100001)
|
61
67
|
end
|
62
68
|
end
|
63
69
|
end
|
@@ -46,7 +46,7 @@ module Comee
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def generate_po_number
|
49
|
-
self.po_number = Util.generate_number("PurchaseOrder", "po_number")
|
49
|
+
self.po_number = Util.generate_number("PurchaseOrder", "po_number", "PO")
|
50
50
|
end
|
51
51
|
|
52
52
|
def self.ransackable_associations(_auth_object = nil)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Comee
|
2
2
|
module Core
|
3
3
|
class CustomerOrderItemSerializer < ActiveModel::Serializer
|
4
|
-
attributes :id, :serial_no, :customer_item_no, :customer_item_description, :
|
5
|
-
:canceled, :customer_order_id, :product_id, :unit_id
|
4
|
+
attributes :id, :serial_no, :customer_item_no, :customer_item_description, :customer_item_alias, :use_alias,
|
5
|
+
:quantity, :price, :total_price, :delivery_date, :canceled, :customer_order_id, :product_id, :unit_id
|
6
6
|
belongs_to :product
|
7
7
|
belongs_to :unit
|
8
8
|
belongs_to :customer_order
|
@@ -1,9 +1,10 @@
|
|
1
1
|
module Comee
|
2
2
|
module Core
|
3
3
|
class SalesOrderItemSerializer < ActiveModel::Serializer
|
4
|
-
attributes :id, :serial_no, :customer_item_no, :customer_item_description, :
|
5
|
-
:
|
6
|
-
:
|
4
|
+
attributes :id, :serial_no, :customer_item_no, :customer_item_description, :customer_item_alias, :use_alias, :quantity,
|
5
|
+
:quantity_delivered, :quantity_canceled, :price, :handover_date, :delivery_date, :eb_number, :lead_time,
|
6
|
+
:comment, :action_note, :purchase_order_item_id, :price_diff, :quantity_diff, :total_price, :canceled,
|
7
|
+
:processing_status, :additional_details, :created_at
|
7
8
|
belongs_to :sales_order
|
8
9
|
belongs_to :customer_order_item
|
9
10
|
belongs_to :source
|
@@ -217,6 +217,7 @@ module Comee
|
|
217
217
|
delivery_date: item.delivery_date,
|
218
218
|
handover_date: order.handover_date,
|
219
219
|
lead_time: master_price&.lead_time,
|
220
|
+
use_alias: item.use_alias,
|
220
221
|
additional_details: {
|
221
222
|
supplier_id: master_price.supplier_id,
|
222
223
|
supplier_name: master_price.supplier.name,
|
@@ -3,21 +3,28 @@ module Comee
|
|
3
3
|
class Util
|
4
4
|
# This method generates document numbers with a certain prefix
|
5
5
|
# and a serial suffix
|
6
|
-
def self.generate_number(clz, field)
|
7
|
-
clz_hash = {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
def self.generate_number(clz, field, prefix, sep = nil, start = 1)
|
7
|
+
# clz_hash = {
|
8
|
+
# "PurchaseRequisition" => "PR",
|
9
|
+
# "PurchaseOrder" => "PO",
|
10
|
+
# "Invoice" => "IN",
|
11
|
+
# "SalesOrder" => "SO",
|
12
|
+
# "DeliveryNote" => "DN"
|
13
|
+
# }
|
13
14
|
clazz_name = "Comee::Core::#{clz}"
|
14
15
|
clazz = clazz_name.constantize
|
15
16
|
last = clazz.last
|
16
17
|
|
17
|
-
return "#{
|
18
|
+
return "#{prefix}#{sep}#{start}" unless last
|
18
19
|
|
19
|
-
|
20
|
-
|
20
|
+
index = prefix.length
|
21
|
+
val = last.send(field)
|
22
|
+
pref = val.slice(0, index)
|
23
|
+
suff = sep ? val.slice(index + 1, val.length).to_i : val.slice(index, val.length).to_i
|
24
|
+
|
25
|
+
return "#{prefix}#{sep}#{start}" unless prefix == pref
|
26
|
+
|
27
|
+
"#{prefix}#{sep}#{suff + 1}"
|
21
28
|
end
|
22
29
|
end
|
23
30
|
end
|
data/lib/comee/core/version.rb
CHANGED
@@ -6,11 +6,13 @@ FactoryBot.define do
|
|
6
6
|
unit
|
7
7
|
customer_item_no { Faker::Alphanumeric.alpha(number: 10) }
|
8
8
|
customer_item_description { Faker::Lorem.sentence }
|
9
|
+
customer_item_alias { Faker::Alphanumeric.alpha(number: 10) }
|
9
10
|
quantity { 1 }
|
10
11
|
price { 1.5 }
|
11
12
|
total_price { quantity * price }
|
12
13
|
delivery_date { Date.current }
|
13
14
|
canceled { false }
|
15
|
+
use_alias { false }
|
14
16
|
|
15
17
|
trait :with_inventory do
|
16
18
|
after(:create) do |item|
|
@@ -10,6 +10,7 @@ FactoryBot.define do
|
|
10
10
|
customer_item_no { Faker::Alphanumeric.alpha(number: 10) }
|
11
11
|
customer_item_alias { Faker::Alphanumeric.alpha(number: 10) }
|
12
12
|
customer_item_description { Faker::Lorem.sentence }
|
13
|
+
use_alias { false }
|
13
14
|
quantity { customer_order_item.quantity }
|
14
15
|
quantity_diff { 0 }
|
15
16
|
quantity_delivered { 0 }
|
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.3.
|
4
|
+
version: 0.3.34
|
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-07-
|
11
|
+
date: 2024-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|
@@ -526,6 +526,7 @@ files:
|
|
526
526
|
- db/migrate/20240630122016_create_comee_core_additional_services.rb
|
527
527
|
- db/migrate/20240716143922_add_customer_item_alias_to_customer_and_sales_order.rb
|
528
528
|
- db/migrate/20240718103456_make_delivery_note_no_and_goods_issue_date_optional.rb
|
529
|
+
- db/migrate/20240720091730_add_use_alias_field_to_line_items.rb
|
529
530
|
- lib/comee/core.rb
|
530
531
|
- lib/comee/core/engine.rb
|
531
532
|
- lib/comee/core/version.rb
|