comee_core 0.3.6 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/comee/core/additional_services_controller.rb +24 -0
- data/app/models/comee/core/additional_service.rb +30 -0
- data/app/models/comee/core/sales_order.rb +9 -3
- data/app/serializers/comee/core/additional_service_serializer.rb +9 -0
- data/config/routes.rb +9 -1
- data/db/migrate/20240630122016_create_comee_core_additional_services.rb +17 -0
- data/lib/comee/core/version.rb +1 -1
- data/spec/factories/comee/core/additional_services.rb +10 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cf7c91a847172c08d9e35c46340095ff403ffb61939a5a7b69f830fa2394228
|
4
|
+
data.tar.gz: 55174a1b2a8a304b3ee99995b98efdd52557889b5d57b3623e016df11a29e34a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1b2f94a733c313e13ff4ad02c1a2189561d21beef7be6c9cf9089e5320950811b4ddaddf51e7c50e54eefd2918793b3b57b22d1978007df27fcbf8955fdea80
|
7
|
+
data.tar.gz: c6e916957bae4a9f6b29643c2f92e73d362e62b74a84610d0d2750b3e0465b3c8d1f4dba000d8d74d83d147fafc58a25dded8755eac92ba3e2b5139d75cd7c6c
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Comee
|
2
|
+
module Core
|
3
|
+
class AdditionalServicesController < ApplicationController
|
4
|
+
include Common
|
5
|
+
|
6
|
+
def index
|
7
|
+
super do
|
8
|
+
AdditionalService.where(sales_order_id: params[:id])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def filter
|
13
|
+
services = AdditionalService.includes(:sales_order).ransack(params[:q]).result
|
14
|
+
render_content(services)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def model_params
|
20
|
+
params.require(:payload).permit(:sales_order_id, :name, :unit, :quantity, :price)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Comee
|
2
|
+
module Core
|
3
|
+
class AdditionalService < ApplicationRecord
|
4
|
+
before_save :calculate_total_price
|
5
|
+
after_save :update_sales_order
|
6
|
+
|
7
|
+
belongs_to :sales_order
|
8
|
+
|
9
|
+
validates :name, :unit, presence: true
|
10
|
+
validates :quantity, :price, presence: true, numericality: {greater_than: 0}
|
11
|
+
|
12
|
+
def calculate_total_price
|
13
|
+
self.total_price = (price * quantity).round(2)
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_sales_order
|
17
|
+
sales_order.calculate_total_price
|
18
|
+
sales_order.calculate_vat
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.ransackable_attributes(_auth_object = nil)
|
22
|
+
%w[id name sales_order_id]
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.ransackable_associations(_auth_object = nil)
|
26
|
+
%w[sales_order]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -9,6 +9,7 @@ module Comee
|
|
9
9
|
belongs_to :fulfillment_center, optional: true
|
10
10
|
belongs_to :client
|
11
11
|
has_many :sales_order_items
|
12
|
+
has_many :additional_services
|
12
13
|
has_many_attached :files
|
13
14
|
has_one :customs_detail
|
14
15
|
|
@@ -27,12 +28,17 @@ module Comee
|
|
27
28
|
|
28
29
|
def calculate_total_price
|
29
30
|
sales_order_items = SalesOrderItem.where(sales_order_id: id)
|
30
|
-
|
31
|
+
additional_services = AdditionalService.where(sales_order_id: id)
|
32
|
+
self.total_price = sales_order_items.sum(&:total_price) + additional_services.sum(&:total_price)
|
31
33
|
end
|
32
34
|
|
33
35
|
def calculate_vat
|
34
|
-
|
35
|
-
|
36
|
+
return unless client.tax_code == "Inland"
|
37
|
+
|
38
|
+
sales_order_items = SalesOrderItem.where(sales_order_id: id)
|
39
|
+
additional_services = AdditionalService.where(sales_order_id: id)
|
40
|
+
total_price = sales_order_items.sum(&:total_price) + additional_services.sum(&:total_price)
|
41
|
+
self.vat = (total_price * 0.19).round(2)
|
36
42
|
end
|
37
43
|
|
38
44
|
def set_parent_client_name
|
data/config/routes.rb
CHANGED
@@ -147,9 +147,16 @@ Comee::Core::Engine.routes.draw do
|
|
147
147
|
post "filter"
|
148
148
|
end
|
149
149
|
end
|
150
|
-
|
150
|
+
|
151
|
+
resources :additional_services do
|
152
|
+
collection do
|
153
|
+
post "filter"
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
151
157
|
resources :sales_orders do
|
152
158
|
collection do
|
159
|
+
post "filter"
|
153
160
|
post "create_back_order", action: :create_back_order
|
154
161
|
end
|
155
162
|
member do
|
@@ -158,6 +165,7 @@ Comee::Core::Engine.routes.draw do
|
|
158
165
|
post "confirm"
|
159
166
|
post "accept"
|
160
167
|
post "cancel"
|
168
|
+
get "services", controller: :additional_services, action: :index
|
161
169
|
end
|
162
170
|
end
|
163
171
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateComeeCoreAdditionalServices < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :comee_core_additional_services do |t|
|
4
|
+
t.references :sales_order,
|
5
|
+
null: false,
|
6
|
+
index: {name: "so_on_ccas_indx"},
|
7
|
+
foreign_key: {to_table: :comee_core_sales_orders}
|
8
|
+
t.string :name, null: false
|
9
|
+
t.float :quantity, null: false
|
10
|
+
t.string :unit, null: false
|
11
|
+
t.float :price, null: false
|
12
|
+
t.float :total_price, null: false
|
13
|
+
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/comee/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henock L.
|
@@ -279,6 +279,7 @@ files:
|
|
279
279
|
- README.md
|
280
280
|
- Rakefile
|
281
281
|
- app/controllers/comee/core/access_controller.rb
|
282
|
+
- app/controllers/comee/core/additional_services_controller.rb
|
282
283
|
- app/controllers/comee/core/agents_controller.rb
|
283
284
|
- app/controllers/comee/core/application_controller.rb
|
284
285
|
- app/controllers/comee/core/application_modules_controller.rb
|
@@ -323,6 +324,7 @@ files:
|
|
323
324
|
- app/mailers/comee/core/notification_mailer.rb
|
324
325
|
- app/mailers/comee/core/supplier_mailer.rb
|
325
326
|
- app/models/comee/core/additional_item.rb
|
327
|
+
- app/models/comee/core/additional_service.rb
|
326
328
|
- app/models/comee/core/address.rb
|
327
329
|
- app/models/comee/core/agent.rb
|
328
330
|
- app/models/comee/core/application_module.rb
|
@@ -394,6 +396,7 @@ files:
|
|
394
396
|
- app/models/comee/core/user.rb
|
395
397
|
- app/models/comee/core/user_application_role.rb
|
396
398
|
- app/notifications/comee/core/back_order_notification.rb
|
399
|
+
- app/serializers/comee/core/additional_service_serializer.rb
|
397
400
|
- app/serializers/comee/core/agent_serializer.rb
|
398
401
|
- app/serializers/comee/core/application_module_serializer.rb
|
399
402
|
- app/serializers/comee/core/client_address_serializer.rb
|
@@ -528,12 +531,14 @@ files:
|
|
528
531
|
- db/migrate/20240629170409_add_vat_to_sales_orders.rb
|
529
532
|
- db/migrate/20240630063656_add_aliases_field_to_product_lookup.rb
|
530
533
|
- db/migrate/20240630083042_add_agent_to_pickup_schedule.rb
|
534
|
+
- db/migrate/20240630122016_create_comee_core_additional_services.rb
|
531
535
|
- lib/comee/core.rb
|
532
536
|
- lib/comee/core/engine.rb
|
533
537
|
- lib/comee/core/version.rb
|
534
538
|
- lib/comee_core.rb
|
535
539
|
- lib/tasks/comee_core_tasks.rake
|
536
540
|
- spec/factories/comee/core/additional_items.rb
|
541
|
+
- spec/factories/comee/core/additional_services.rb
|
537
542
|
- spec/factories/comee/core/agents.rb
|
538
543
|
- spec/factories/comee/core/application_modules.rb
|
539
544
|
- spec/factories/comee/core/back_order_items.rb
|