comee_core 0.1.44 → 0.1.45.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/comee/core/clients_controller.rb +5 -0
  3. data/app/controllers/comee/core/customer_orders_controller.rb +2 -1
  4. data/app/controllers/comee/core/customs_details_controller.rb +37 -0
  5. data/app/controllers/comee/core/lookups_controller.rb +13 -0
  6. data/app/controllers/comee/core/purchase_order_items_controller.rb +18 -0
  7. data/app/controllers/comee/core/purchase_orders_controller.rb +18 -0
  8. data/app/controllers/comee/core/sales_orders_controller.rb +1 -1
  9. data/app/models/comee/core/client.rb +11 -0
  10. data/app/models/comee/core/customer_order.rb +5 -0
  11. data/app/models/comee/core/customs_detail.rb +11 -0
  12. data/app/models/comee/core/lookup.rb +8 -0
  13. data/app/models/comee/core/master_price.rb +5 -1
  14. data/app/models/comee/core/purchase_order.rb +8 -0
  15. data/app/models/comee/core/purchase_order_item.rb +10 -0
  16. data/app/models/comee/core/sales_order.rb +5 -0
  17. data/app/serializers/comee/core/customer_order_serializer.rb +1 -1
  18. data/app/serializers/comee/core/customs_detail_serializer.rb +11 -0
  19. data/app/serializers/comee/core/lookup_serializer.rb +7 -0
  20. data/app/serializers/comee/core/purchase_order_item_serializer.rb +7 -0
  21. data/app/serializers/comee/core/purchase_order_serializer.rb +7 -0
  22. data/app/serializers/comee/core/sales_order_serializer.rb +1 -1
  23. data/config/routes.rb +9 -0
  24. data/db/migrate/20231125111539_create_comee_core_lookups.rb +15 -0
  25. data/db/migrate/20231125115522_create_comee_core_customs_details.rb +34 -0
  26. data/lib/comee/core/version.rb +1 -1
  27. data/spec/factories/comee/core/customs_details.rb +26 -0
  28. data/spec/factories/comee/core/lookups.rb +7 -0
  29. metadata +18 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f696cebf98304e61d0188deac70ea559b73e9d55cf256486cfeb0526f4f6c305
4
- data.tar.gz: 2c044422308efb79ff83835533d663d18aa9e23b3245a4ac063dc65ddc5332c0
3
+ metadata.gz: e0a1374615af105f49b1ed679c3ff5d80ae3456eda013cd666132f82c1d47c2f
4
+ data.tar.gz: f093cc5c0239a5aa318f0928d33598ecd3184f0f49672d1a3fe99ee6f1025edf
5
5
  SHA512:
6
- metadata.gz: 89872d2c3e16b303abf9fd3d559b12db2f8f8e62ac592fba18ce61b3b4653f13ec676e03c664116e351f7ae73181ac4bd30811640f706e1f3bdec5f6e32b5b11
7
- data.tar.gz: 547c0a49ecaa14fef846ef42e8d18cb282c4b821d06dd0f6e64bb221a505b16f04cd6d0b49181dc23efe67c494192afe7e37952696191a8e8b1eea3a22bc5a3e
6
+ metadata.gz: '04811611e0a6b6248883685ad792fbc4e6055d67334c977aff9d1be1028059689790c93b834d237403f75f0935162875449397ef4a646f927ca29b52254119d7'
7
+ data.tar.gz: 8b029aa57a2ac60d4e76cdf246861e792d753a7d80f4e719fbf01f3ed80e4fd201322a970dbade704bf4b6a4acfe8487ea60ea742be34dc19c131a8042f9fae5
@@ -3,6 +3,11 @@ module Comee
3
3
  class ClientsController < ApplicationController
4
4
  include Common
5
5
 
6
+ def filter
7
+ @clients = Comee::Core::Client.ransack(params[:q]).result
8
+ render json: {success: true, data: serialize(@clients)}
9
+ end
10
+
6
11
  private
7
12
 
8
13
  def model_params
@@ -36,7 +36,8 @@ module Comee
36
36
  private
37
37
 
38
38
  def model_params
39
- params.require(:payload).permit(:order_number, :order_date, :order_terms, :delivery_address, :invoice_address, :status, :client_id)
39
+ params.require(:payload).permit(:order_number, :order_date, :order_terms, :delivery_address, :invoice_address, :status, :client_id,
40
+ :file)
40
41
  end
41
42
 
42
43
  def set_service
@@ -0,0 +1,37 @@
1
+ module Comee
2
+ module Core
3
+ class CustomsDetailsController < ApplicationController
4
+ include Common
5
+
6
+ private
7
+
8
+ def model_params
9
+ params.require(:payload).permit(
10
+ :registration_type,
11
+ :export_declaration_type,
12
+ :participant_constellation,
13
+ :mode_of_transport_type,
14
+ :destination_country,
15
+ :containerized,
16
+ :additional_identifier,
17
+ :packaging_type,
18
+ :export_customs_office,
19
+ :customs_office_of_exit,
20
+ :mode_of_transport,
21
+ :delivery_term_code,
22
+ :mrn,
23
+ :office_number,
24
+ :quantity,
25
+ :characters_numbers,
26
+ :closure_mark1,
27
+ :closure_mark2,
28
+ :closure_mark3,
29
+ :closure_mark4,
30
+ :closure_mark5,
31
+ :transportation_route,
32
+ :sales_order_id
33
+ )
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,13 @@
1
+ module Comee
2
+ module Core
3
+ class LookupsController < ApplicationController
4
+ include Common
5
+
6
+ private
7
+
8
+ def model_params
9
+ params.require(:payload).permit(:code, :name, :lookup_type)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ module Comee
2
+ module Core
3
+ class PurchaseOrderItemsController < ApplicationController
4
+ include Common
5
+
6
+ def filter
7
+ @purchase_order_items = Comee::Core::PurchaseOrderItem.ransack(params[:q]).result
8
+ render json: {success: true, data: serialize(@purchase_order_items)}
9
+ end
10
+
11
+ private
12
+
13
+ def model_params
14
+ params.required(:payload).permit(:purchase_order_id, :sales_order_item_id, :quantity, :delivery_date, :status)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ module Comee
2
+ module Core
3
+ class PurchaseOrdersController < ApplicationController
4
+ include Common
5
+
6
+ def filter
7
+ @purchase_orders = Comee::Core::PurchaseOrder.ransack(params[:q]).result
8
+ render json: {success: true, data: serialize(@purchase_orders)}
9
+ end
10
+
11
+ private
12
+
13
+ def model_params
14
+ params.required(:payload).permit(:supplier_id, :order_date, :status, :delivery_address)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -40,7 +40,7 @@ module Comee
40
40
 
41
41
  def model_params
42
42
  params.require(:payload).permit(:order_number, :customer_order_id, :payment_penalty, :status,
43
- :total_price, :amount_paid, :pallete_note, :handover_date, :remark)
43
+ :total_price, :amount_paid, :pallete_note, :handover_date, :remark, files: [])
44
44
  end
45
45
 
46
46
  def back_order_params
@@ -8,6 +8,17 @@ module Comee
8
8
  validates :code, uniqueness: true
9
9
 
10
10
  delegate(:name, to: :user, prefix: true)
11
+
12
+ def self.ransackable_attributes(_auth_object = nil)
13
+ %w[
14
+ user_id
15
+ address
16
+ code
17
+ name
18
+ discount
19
+ locale
20
+ ]
21
+ end
11
22
  end
12
23
  end
13
24
  end
@@ -3,6 +3,7 @@ module Comee
3
3
  class CustomerOrder < ApplicationRecord
4
4
  belongs_to :client
5
5
  has_many :customer_order_items
6
+ has_one_attached :file
6
7
 
7
8
  enum :status, {draft: 0, submitted: 1, awaiting_confirmation: 2, accepted: 3, canceled: 4}
8
9
 
@@ -15,6 +16,10 @@ module Comee
15
16
  def self.ransackable_associations(_auth_object = nil)
16
17
  %w[client customer_order_items]
17
18
  end
19
+
20
+ def file_url
21
+ file.attached? ? Rails.application.routes.url_helpers.rails_blob_url(file, only_path: false) : nil
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -0,0 +1,11 @@
1
+ module Comee
2
+ module Core
3
+ class CustomsDetail < ApplicationRecord
4
+ belongs_to :sales_order
5
+
6
+ validates :registration_type, :export_declaration_type, :participant_constellation, :mode_of_transport_type, :destination_country,
7
+ :additional_identifier, :packaging_type, :export_customs_office, :customs_office_of_exit, :mode_of_transport,
8
+ :delivery_term_code, presence: true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ module Comee
2
+ module Core
3
+ class Lookup < ApplicationRecord
4
+ validates :code, :name, :lookup_type, presence: true
5
+ validates :code, uniqueness: {scope: :lookup_type}
6
+ end
7
+ end
8
+ end
@@ -25,7 +25,11 @@ module Comee
25
25
  return unless product && primary
26
26
 
27
27
  price = MasterPrice.find_by(product: product, primary: true, status: Price.statuses[:current])
28
- return unless price && primary && price.id != id
28
+ Rails.logger.info("Existing price: ")
29
+ Rails.logger.info(price)
30
+ Rails.logger.info("Current price:")
31
+ Rails.logger.info(self)
32
+ return unless price && price.id != id
29
33
 
30
34
  errors.add(:base, "There is already a primary price entry for item '#{product.code}'")
31
35
  end
@@ -9,6 +9,14 @@ module Comee
9
9
  approved: 2,
10
10
  submitted_to_supplier: 3
11
11
  }
12
+ def self.ransackable_attributes(_auth_object = nil)
13
+ %w[
14
+ supplier_id
15
+ order_date
16
+ status
17
+ delivery_address
18
+ ]
19
+ end
12
20
  end
13
21
  end
14
22
  end
@@ -15,6 +15,16 @@ module Comee
15
15
 
16
16
  errors.add(:sales_order_item, "must have an EB number.")
17
17
  end
18
+
19
+ def self.ransackable_attributes(_auth_object = nil)
20
+ %w[
21
+ purchase_order_id
22
+ sales_order_item_id
23
+ quantity
24
+ delivery_date
25
+ status
26
+ ]
27
+ end
18
28
  end
19
29
  end
20
30
  end
@@ -5,6 +5,7 @@ module Comee
5
5
 
6
6
  belongs_to :customer_order
7
7
  has_many :sales_order_items
8
+ has_many_attached :files
8
9
 
9
10
  enum :status, {draft: 0, submitted: 1, confirmed: 2, canceled: 3}
10
11
 
@@ -36,6 +37,10 @@ module Comee
36
37
  def self.ransackable_associations(_auth_object = nil)
37
38
  []
38
39
  end
40
+
41
+ def files_url
42
+ files.attached? ? files.map { |file| Rails.application.routes.url_helpers.rails_blob_url(file, only_path: false) } : []
43
+ end
39
44
  end
40
45
  end
41
46
  end
@@ -1,7 +1,7 @@
1
1
  module Comee
2
2
  module Core
3
3
  class CustomerOrderSerializer < ActiveModel::Serializer
4
- attributes :id, :order_number, :order_date, :order_terms, :delivery_address, :invoice_address, :status
4
+ attributes :id, :order_number, :order_date, :order_terms, :delivery_address, :invoice_address, :status, :file_url
5
5
  belongs_to :client
6
6
  has_many :customer_order_items
7
7
  end
@@ -0,0 +1,11 @@
1
+ module Comee
2
+ module Core
3
+ class CustomsDetailSerializer < ActiveModel::Serializer
4
+ attributes :id, :registration_type, :export_declaration_type, :participant_constellation, :mode_of_transport_type,
5
+ :destination_country, :containerized, :additional_identifier, :packaging_type, :export_customs_office,
6
+ :customs_office_of_exit, :mode_of_transport, :delivery_term_code, :mrn, :office_number, :quantity,
7
+ :characters_numbers, :closure_mark1, :closure_mark2, :closure_mark3, :closure_mark4, :closure_mark5,
8
+ :transportation_route, :sales_order_id
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ module Comee
2
+ module Core
3
+ class LookupSerializer < ActiveModel::Serializer
4
+ attributes :id, :code, :name, :lookup_type
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Comee
2
+ module Core
3
+ class PurchaseOrderItemSerializer < ActiveModel::Serializer
4
+ attributes :id, :sales_order_item_id, :purchase_order_id, :quantity, :delivery_date, :status
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Comee
2
+ module Core
3
+ class PurchaseOrderSerializer < ActiveModel::Serializer
4
+ attributes :id, :supplier_id, :order_date, :status, :delivery_address
5
+ end
6
+ end
7
+ end
@@ -2,7 +2,7 @@ module Comee
2
2
  module Core
3
3
  class SalesOrderSerializer < ActiveModel::Serializer
4
4
  attributes :id, :order_number, :payment_penalty, :status, :total_price,
5
- :amount_paid, :pallete_note, :handover_date, :remark
5
+ :amount_paid, :pallete_note, :handover_date, :remark, :files_url
6
6
  belongs_to :customer_order
7
7
  has_many :sales_order_items
8
8
  end
data/config/routes.rb CHANGED
@@ -10,6 +10,7 @@ Comee::Core::Engine.routes.draw do
10
10
  end
11
11
  resources :suppliers
12
12
  resources :products
13
+ resources :lookups
13
14
  resources :quotation_requests do
14
15
  collection do
15
16
  post "filter"
@@ -45,10 +46,17 @@ Comee::Core::Engine.routes.draw do
45
46
  resources :currencies
46
47
  resources :units
47
48
  resources :users
49
+ post "/purchase_orders/filter", controller: :purchase_orders, action: :filter
50
+ resources :purchase_orders
51
+ post "/purchase_order_items/filter", controller: :purchase_order_items, action: :filter
52
+ resources :purchase_order_items
48
53
  resources :clients do
49
54
  member do
50
55
  get "rfq_products", controller: :quotation_requests, action: :rfq_products_for_client
51
56
  end
57
+ collection do
58
+ post "filter"
59
+ end
52
60
  end
53
61
  post "/client_prices/filter", controller: :client_prices, action: :filter
54
62
  resources :client_prices
@@ -71,4 +79,5 @@ Comee::Core::Engine.routes.draw do
71
79
  post "cancel"
72
80
  end
73
81
  end
82
+ resources :customs_details
74
83
  end
@@ -0,0 +1,15 @@
1
+ class CreateComeeCoreLookups < ActiveRecord::Migration[7.1]
2
+ def change
3
+ create_table :comee_core_lookups do |t|
4
+ t.string :code, null: false
5
+ t.string :name, null: false
6
+ t.string :lookup_type, null: false
7
+
8
+ t.timestamps
9
+ end
10
+ add_index :comee_core_lookups,
11
+ %i[code lookup_type],
12
+ unique: true,
13
+ name: "code_type_on_ccl_indx"
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ class CreateComeeCoreCustomsDetails < ActiveRecord::Migration[7.1]
2
+ def change
3
+ create_table :comee_core_customs_details do |t|
4
+ t.references :sales_order,
5
+ null: false,
6
+ index: {name: "soi_on_cccd_indx"},
7
+ foreign_key: {to_table: :comee_core_sales_orders}
8
+ t.string :registration_type, null: false
9
+ t.string :export_declaration_type, null: false
10
+ t.string :participant_constellation, null: false
11
+ t.string :mode_of_transport_type, null: false
12
+ t.string :destination_country, null: false
13
+ t.boolean :containerized, null: false, default: false
14
+ t.string :additional_identifier, null: false
15
+ t.string :packaging_type, null: false
16
+ t.string :export_customs_office, null: false
17
+ t.string :customs_office_of_exit, null: false
18
+ t.string :mode_of_transport, null: false
19
+ t.string :delivery_term_code, null: false
20
+ t.string :mrn
21
+ t.string :office_number
22
+ t.float :quantity
23
+ t.string :characters_numbers
24
+ t.string :closure_mark1
25
+ t.string :closure_mark2
26
+ t.string :closure_mark3
27
+ t.string :closure_mark4
28
+ t.string :closure_mark5
29
+ t.jsonb :transportation_route
30
+
31
+ t.timestamps
32
+ end
33
+ end
34
+ end
@@ -1,5 +1,5 @@
1
1
  module Comee
2
2
  module Core
3
- VERSION = "0.1.44".freeze
3
+ VERSION = "0.1.45.pre".freeze
4
4
  end
5
5
  end
@@ -0,0 +1,26 @@
1
+ FactoryBot.define do
2
+ factory :customs_detail, class: "Comee::Core::CustomsDetail" do
3
+ sales_order
4
+ registration_type { "CO - Common Products" }
5
+ export_declaration_type { "00000100" }
6
+ participant_constellation { "0000 - Anmelder ist Ausführer" }
7
+ mode_of_transport_type { "10 - IMO-Schiffnummer" }
8
+ destination_country { "Schiffs- und Luftfahrzeugbedarf" }
9
+ containerized { true }
10
+ additional_identifier { "HH01 - Billbrookdeich 36" }
11
+ packaging_type { "CT- Karton" }
12
+ export_customs_office { "DE004851 - Hamburg" }
13
+ customs_office_of_exit { "BE10100 - ANTWERPEN DAE" }
14
+ mode_of_transport { "1 - Seeverkehr" }
15
+ delivery_term_code { "EXW - Ab Werk" }
16
+ mrn { Faker::Alphanumeric.alpha(number: 10) }
17
+ office_number { Faker::Alphanumeric.alpha(number: 10) }
18
+ characters_numbers { Faker::Alphanumeric.alpha(number: 10) }
19
+ closure_mark1 { Faker::Lorem.word }
20
+ closure_mark2 { Faker::Lorem.word }
21
+ closure_mark3 { Faker::Lorem.word }
22
+ closure_mark4 { Faker::Lorem.word }
23
+ closure_mark5 { Faker::Lorem.word }
24
+ transportation_route { [{order: 1, route: "DE - Deutschland", value: 0}, {order: 2, route: "FR - Frankreich", value: 0}] }
25
+ end
26
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :lookup, class: "Comee::Core::Lookup" do
3
+ code { Faker::Alphanumeric.alpha(number: 8) }
4
+ name { Faker::Lorem.word }
5
+ lookup_type { Faker::Alphanumeric.alpha(number: 8) }
6
+ end
7
+ 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.1.44
4
+ version: 0.1.45.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-02 00:00:00.000000000 Z
11
+ date: 2023-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers
@@ -286,9 +286,13 @@ files:
286
286
  - app/controllers/comee/core/currencies_controller.rb
287
287
  - app/controllers/comee/core/customer_order_items_controller.rb
288
288
  - app/controllers/comee/core/customer_orders_controller.rb
289
+ - app/controllers/comee/core/customs_details_controller.rb
289
290
  - app/controllers/comee/core/external_rfqs_controller.rb
291
+ - app/controllers/comee/core/lookups_controller.rb
290
292
  - app/controllers/comee/core/notifications_controller.rb
291
293
  - app/controllers/comee/core/products_controller.rb
294
+ - app/controllers/comee/core/purchase_order_items_controller.rb
295
+ - app/controllers/comee/core/purchase_orders_controller.rb
292
296
  - app/controllers/comee/core/quotation_request_items_controller.rb
293
297
  - app/controllers/comee/core/quotation_requests_controller.rb
294
298
  - app/controllers/comee/core/sales_order_items_controller.rb
@@ -310,12 +314,14 @@ files:
310
314
  - app/models/comee/core/currency.rb
311
315
  - app/models/comee/core/customer_order.rb
312
316
  - app/models/comee/core/customer_order_item.rb
317
+ - app/models/comee/core/customs_detail.rb
313
318
  - app/models/comee/core/edi_order.rb
314
319
  - app/models/comee/core/external_rfq.rb
315
320
  - app/models/comee/core/field_mapping.rb
316
321
  - app/models/comee/core/inventory.rb
317
322
  - app/models/comee/core/invoice.rb
318
323
  - app/models/comee/core/invoice_item.rb
324
+ - app/models/comee/core/lookup.rb
319
325
  - app/models/comee/core/master_price.rb
320
326
  - app/models/comee/core/notification.rb
321
327
  - app/models/comee/core/order_source.rb
@@ -339,9 +345,13 @@ files:
339
345
  - app/serializers/comee/core/currency_serializer.rb
340
346
  - app/serializers/comee/core/customer_order_item_serializer.rb
341
347
  - app/serializers/comee/core/customer_order_serializer.rb
348
+ - app/serializers/comee/core/customs_detail_serializer.rb
342
349
  - app/serializers/comee/core/external_rfq_serializer.rb
350
+ - app/serializers/comee/core/lookup_serializer.rb
343
351
  - app/serializers/comee/core/product_serializer.rb
344
352
  - app/serializers/comee/core/product_type_serializer.rb
353
+ - app/serializers/comee/core/purchase_order_item_serializer.rb
354
+ - app/serializers/comee/core/purchase_order_serializer.rb
345
355
  - app/serializers/comee/core/quotation_request_item_serializer.rb
346
356
  - app/serializers/comee/core/quotation_request_serializer.rb
347
357
  - app/serializers/comee/core/sales_order_item_serializer.rb
@@ -390,6 +400,8 @@ files:
390
400
  - db/migrate/20231121094339_create_comee_core_quotation_requests.rb
391
401
  - db/migrate/20231121132709_create_comee_core_quotation_request_items.rb
392
402
  - db/migrate/20231122094424_create_comee_core_external_rfqs.rb
403
+ - db/migrate/20231125111539_create_comee_core_lookups.rb
404
+ - db/migrate/20231125115522_create_comee_core_customs_details.rb
393
405
  - db/migrate/20231125122723_create_comee_core_purchase_orders.rb
394
406
  - db/migrate/20231126082907_create_comee_core_purchase_order_items.rb
395
407
  - lib/comee/core.rb
@@ -405,12 +417,14 @@ files:
405
417
  - spec/factories/comee/core/currencies.rb
406
418
  - spec/factories/comee/core/customer_order_items.rb
407
419
  - spec/factories/comee/core/customer_orders.rb
420
+ - spec/factories/comee/core/customs_details.rb
408
421
  - spec/factories/comee/core/edi_orders.rb
409
422
  - spec/factories/comee/core/external_rfqs.rb
410
423
  - spec/factories/comee/core/field_mappings.rb
411
424
  - spec/factories/comee/core/inventories.rb
412
425
  - spec/factories/comee/core/invoice_items.rb
413
426
  - spec/factories/comee/core/invoices.rb
427
+ - spec/factories/comee/core/lookups.rb
414
428
  - spec/factories/comee/core/master_prices.rb
415
429
  - spec/factories/comee/core/notifications.rb
416
430
  - spec/factories/comee/core/order_sources.rb
@@ -445,9 +459,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
445
459
  version: '3.0'
446
460
  required_rubygems_version: !ruby/object:Gem::Requirement
447
461
  requirements:
448
- - - ">="
462
+ - - ">"
449
463
  - !ruby/object:Gem::Version
450
- version: '0'
464
+ version: 1.3.1
451
465
  requirements: []
452
466
  rubygems_version: 3.4.10
453
467
  signing_key: