comee_core 0.2.67 → 0.2.68

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42a4484f045bd64b57ff6277774d9629f31057f41a16c12026c9bfdf8efc4098
4
- data.tar.gz: ea1ea191cee2d8a56c65923494b5929df440464d183af5f3cb549cb6ff23134d
3
+ metadata.gz: ab2d82a34a3aad80165cbc56181be22e2715c189f1d6aecf3c474ca6110f458c
4
+ data.tar.gz: 4e0afeec82d9fb90448af1f50549ba94ea61c9dd6dc00484a55ab298f0194a0c
5
5
  SHA512:
6
- metadata.gz: 44d299831b095bd8814997d9e51460c114a766754257e78ec9d2cee0577a676cc1a252512a74ff2f38d33eeb6b59fda695cff8b6bedcacc8521f70c9e8844080
7
- data.tar.gz: b097d47b965827a678d8ba76e0f6162a270d679831ea7f74ff81a5e9903f76738a4313408e97d3652be9b6aa9d64f972d66bc924dc16ebe8caa01e3c340f0654
6
+ metadata.gz: b77c2dcbf7768677a83f38fc8008b4f85a3d7bab5491c78bfdffcfe3656adc6979c23ac1dd9700f96200832d52ed9991699f77a87f86da7af0396cb285764732
7
+ data.tar.gz: 4114959e1d7f60e86bd0abe1285448ba97f75e341185ba5db66cd4a26d405092afbe65815cb480205d718d5f05c209381e282d4167060168c448a59a8e39e4ac
@@ -0,0 +1,19 @@
1
+ module Comee
2
+ module Core
3
+ class ClientAddressesController < ApplicationController
4
+ include Common
5
+
6
+ def index
7
+ super do
8
+ ClientAddress.where(client_id: params[:id])
9
+ end
10
+ end
11
+
12
+ private
13
+
14
+ def model_params
15
+ params.require(:payload).permit(:client_id, :address_line1, :street, :city, :state, :country_id, :postal_code, :address_type)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -3,6 +3,11 @@ module Comee
3
3
  class LookupsController < ApplicationController
4
4
  include Common
5
5
 
6
+ def filter
7
+ lookups = Lookup.ransack(params[:q]).result
8
+ render_content(lookups)
9
+ end
10
+
6
11
  private
7
12
 
8
13
  def model_params
@@ -0,0 +1,17 @@
1
+ module Comee
2
+ module Core
3
+ class ClientAddress < ApplicationRecord
4
+ SHIPPING_ADDRESS = "Shipping Address".freeze
5
+ DELIVERY_ADDRESS = "Delivery Address".freeze
6
+ INVOICING_ADDRESS = "Invoicing Address".freeze
7
+
8
+ ADDRESS_TYPES = [SHIPPING_ADDRESS, DELIVERY_ADDRESS, INVOICING_ADDRESS].freeze
9
+
10
+ belongs_to :client
11
+ belongs_to :country, -> { where(lookup_type: :country) }, class_name: "Comee::Core::Lookup"
12
+
13
+ validates :address_line1, :address_type, presence: true
14
+ validates :address_type, inclusion: {in: ADDRESS_TYPES}
15
+ end
16
+ end
17
+ end
@@ -3,6 +3,19 @@ module Comee
3
3
  class Lookup < ApplicationRecord
4
4
  validates :code, :name, :lookup_type, presence: true
5
5
  validates :code, uniqueness: {scope: :lookup_type}
6
+
7
+ def self.ransackable_attributes(_auth_object = nil)
8
+ %w[
9
+ id
10
+ code
11
+ name
12
+ lookup_type
13
+ ]
14
+ end
15
+
16
+ def self.ransackable_associations(_auth_object = nil)
17
+ []
18
+ end
6
19
  end
7
20
  end
8
21
  end
@@ -2,6 +2,7 @@ module Comee
2
2
  module Core
3
3
  class SalesOrderItem < ApplicationRecord
4
4
  before_save :calculate_total_price
5
+ before_save :calculate_handover_date
5
6
  after_save :update_sales_order_purchase_status, if: proc { |item| item.fully_processed? }
6
7
 
7
8
  enum processing_status: {unprocessed: 0, partially_processed: 1, fully_processed: 2}
@@ -20,6 +21,12 @@ module Comee
20
21
 
21
22
  delegate(:po_number, to: :purchase_order_item, prefix: false, allow_nil: true)
22
23
 
24
+ def calculate_handover_date
25
+ return if handover_date
26
+
27
+ self.handover_date = sales_order.handover_date
28
+ end
29
+
23
30
  def calculate_total_price
24
31
  self.total_price = price * quantity
25
32
  end
@@ -0,0 +1,10 @@
1
+ module Comee
2
+ module Core
3
+ class ClientAddressSerializer < ActiveModel::Serializer
4
+ attributes :id, :address_line1, :street, :city, :state, :country_id, :postal_code, :address_type, :client_id
5
+
6
+ belongs_to :client
7
+ belongs_to :country
8
+ end
9
+ end
10
+ end
@@ -190,6 +190,7 @@ module Comee
190
190
  price: price,
191
191
  total_price: quantity * price,
192
192
  delivery_date: item.delivery_date,
193
+ handover_date: order.handover_date,
193
194
  lead_time: master_price&.lead_time
194
195
  }
195
196
  end
data/config/routes.rb CHANGED
@@ -31,7 +31,11 @@ Comee::Core::Engine.routes.draw do
31
31
  end
32
32
  end
33
33
 
34
- resources :lookups
34
+ resources :lookups do
35
+ collection do
36
+ post "filter"
37
+ end
38
+ end
35
39
  resources :quotation_requests do
36
40
  collection do
37
41
  post "filter"
@@ -77,6 +81,7 @@ Comee::Core::Engine.routes.draw do
77
81
  end
78
82
  resources :unit_conversions
79
83
  resources :users
84
+ resources :client_addresses
80
85
  resources :clients do
81
86
  member do
82
87
  get "rfq_products", controller: :quotation_requests, action: :rfq_products_for_client
@@ -84,6 +89,7 @@ Comee::Core::Engine.routes.draw do
84
89
  get "consignees"
85
90
  get "agents"
86
91
  get "shipment_items", controller: :shipment_items, action: :filter_for_client
92
+ get "addresses", controller: :client_addresses, action: :index
87
93
  post "create_agent"
88
94
  post "create_contact"
89
95
  post "price", controller: :client_prices, action: :fetch_one
@@ -0,0 +1,22 @@
1
+ class CreateComeeCoreClientAddresses < ActiveRecord::Migration[7.1]
2
+ def change
3
+ create_table :comee_core_client_addresses do |t|
4
+ t.references :client,
5
+ null: false,
6
+ index: {name: "cl_on_ccca_indx"},
7
+ foreign_key: {to_table: :comee_core_clients}
8
+ t.string :address_line1, null: false
9
+ t.string :street
10
+ t.string :city
11
+ t.string :state
12
+ t.references :country,
13
+ null: false,
14
+ index: {name: "country_on_ccca_indx"},
15
+ foreign_key: {to_table: :comee_core_lookups}
16
+ t.string :postal_code
17
+ t.string :address_type, null: false
18
+
19
+ t.timestamps
20
+ end
21
+ end
22
+ end
@@ -1,5 +1,5 @@
1
1
  module Comee
2
2
  module Core
3
- VERSION = "0.2.67".freeze
3
+ VERSION = "0.2.68".freeze
4
4
  end
5
5
  end
@@ -0,0 +1,12 @@
1
+ FactoryBot.define do
2
+ factory :client_address, class: "Comee::Core::ClientAddress" do
3
+ client
4
+ address_line1 { Faker::Address.street_address }
5
+ street { Faker::Address.street_name }
6
+ city { Faker::Address.city }
7
+ state { Faker::Address.state }
8
+ country
9
+ postal_code { Faker::Address.postcode }
10
+ address_type { Comee::Core::ClientAddress::SHIPPING_ADDRESS }
11
+ end
12
+ end
@@ -4,4 +4,8 @@ FactoryBot.define do
4
4
  name { Faker::Lorem.word }
5
5
  lookup_type { Faker::Alphanumeric.alpha(number: 8) }
6
6
  end
7
+
8
+ factory :country, parent: :lookup do
9
+ lookup_type { :country }
10
+ end
7
11
  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.67
4
+ version: 0.2.68
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-05-02 00:00:00.000000000 Z
11
+ date: 2024-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers
@@ -268,6 +268,7 @@ files:
268
268
  - app/controllers/comee/core/agents_controller.rb
269
269
  - app/controllers/comee/core/application_controller.rb
270
270
  - app/controllers/comee/core/back_orders_controller.rb
271
+ - app/controllers/comee/core/client_addresses_controller.rb
271
272
  - app/controllers/comee/core/client_prices_controller.rb
272
273
  - app/controllers/comee/core/client_warehouses_controller.rb
273
274
  - app/controllers/comee/core/clients_controller.rb
@@ -305,6 +306,7 @@ files:
305
306
  - app/models/comee/core/back_order.rb
306
307
  - app/models/comee/core/back_order_item.rb
307
308
  - app/models/comee/core/client.rb
309
+ - app/models/comee/core/client_address.rb
308
310
  - app/models/comee/core/client_order.rb
309
311
  - app/models/comee/core/client_price.rb
310
312
  - app/models/comee/core/client_warehouse.rb
@@ -358,6 +360,7 @@ files:
358
360
  - app/models/comee/core/user_application_role.rb
359
361
  - app/notifications/comee/core/back_order_notification.rb
360
362
  - app/serializers/comee/core/agent_serializer.rb
363
+ - app/serializers/comee/core/client_address_serializer.rb
361
364
  - app/serializers/comee/core/client_price_serializer.rb
362
365
  - app/serializers/comee/core/client_serializer.rb
363
366
  - app/serializers/comee/core/client_warehouse_serializer.rb
@@ -459,6 +462,7 @@ files:
459
462
  - db/migrate/20240328132921_create_comee_core_supplier_payments.rb
460
463
  - db/migrate/20240407083617_create_comee_core_email_settings.rb
461
464
  - db/migrate/20240425121701_add_purchase_status_to_sales_order_and_purchase_requisition.rb
465
+ - db/migrate/20240503040722_create_comee_core_client_addresses.rb
462
466
  - lib/comee/core.rb
463
467
  - lib/comee/core/engine.rb
464
468
  - lib/comee/core/version.rb
@@ -469,6 +473,7 @@ files:
469
473
  - spec/factories/comee/core/application_modules.rb
470
474
  - spec/factories/comee/core/back_order_items.rb
471
475
  - spec/factories/comee/core/back_orders.rb
476
+ - spec/factories/comee/core/client_addresses.rb
472
477
  - spec/factories/comee/core/client_orders.rb
473
478
  - spec/factories/comee/core/client_prices.rb
474
479
  - spec/factories/comee/core/client_warehouses.rb