comee_core 0.1.82 → 0.1.83

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: aec2eead92d024daab37e1477e49f59cf15b03710c8f2846cca144a2991bb2a1
4
- data.tar.gz: 11b7949daff48bb2b49466abbede7b76c39b1e862bb332a1b5f5999308b1fcc4
3
+ metadata.gz: 76f47c496c4a524edbc87938c14f4056182ec04520fdb83c3c78d13e38a279eb
4
+ data.tar.gz: ca6a83b2354cd9c1a8b3a7a61c72cbbd134b2c09bc86a445abd147ad1e69368f
5
5
  SHA512:
6
- metadata.gz: 438cb2d9d91f97c3d7ab2aa099e949045dadcf67528b9eb146b356adaa9bb849776256fc5c258ef99b461252ba6765e80e2d864c31f35f631a5db70e7417c176
7
- data.tar.gz: 986ce5f97c44033fc95ff38ace756d151dcaeef290be9b6d4fa0349898c6f4c851a918d74242bd71462eb04fde947def19ded389c56c570ae432aae59eb29431
6
+ metadata.gz: e2c96de79bcd9c67931f8c93b0318b48cc5677ccb1e158c3057c2d1de7d607bf7ee2db009d67cab29698ff895bf5d81d4b1a141ef86708291644b2ada7698be8
7
+ data.tar.gz: a77db4503767df48c75a495a5778852779901be087ef487b1c6128816a4bb8a6645599024724405bcd198fa889e40588e03b13efba6fbd32e23f72c037f1f902
@@ -3,7 +3,12 @@ module Comee
3
3
  class CustomerOrdersController < ApplicationController
4
4
  include Common
5
5
 
6
- before_action :set_service, only: %i[submit submit_for_confirmation accept cancel]
6
+ before_action :set_service, only: %i[create_with_items submit submit_for_confirmation accept cancel]
7
+
8
+ def create_with_items
9
+ order = @service.create(create_with_item_params)
10
+ render json: {success: true, data: serialize(order)}
11
+ end
7
12
 
8
13
  def submit
9
14
  order = @service.submit(params[:id])
@@ -45,6 +50,11 @@ module Comee
45
50
  :file)
46
51
  end
47
52
 
53
+ def create_with_item_params
54
+ params.require(:payload).permit(:order_number, :order_date, :order_terms, :delivery_address, :invoice_address, :status, :client_id,
55
+ items: %i[customer_item_no product_id quantity price unit_id delivery_date])
56
+ end
57
+
48
58
  def set_service
49
59
  @service = CustomerOrderService.new
50
60
  end
@@ -6,7 +6,10 @@ module Comee
6
6
 
7
7
  def index
8
8
  super do
9
- Comee::Core::SalesOrder.includes(:customer_order, :fulfillment_center, :sales_order_items).all
9
+ [
10
+ Comee::Core::SalesOrder.includes(:customer_order, :fulfillment_center, :sales_order_items).all,
11
+ include: ["sales_order_items", "sales_order_items.product", "sales_order_items.unit"]
12
+ ]
10
13
  end
11
14
  end
12
15
 
@@ -9,16 +9,28 @@ module Comee
9
9
  end
10
10
 
11
11
  def index
12
- data = if block_given?
13
- yield
14
- else
15
- @clazz.all
16
- end
12
+ data = nil
13
+ options = {}
14
+ if block_given?
15
+ incoming = yield
16
+ if incoming.instance_of?(Array)
17
+ data, options = incoming
18
+ else
19
+ data = incoming
20
+ end
21
+ else
22
+ data = @clazz.all
23
+ end
24
+ # data, options = if block_given?
25
+ # yield
26
+ # else
27
+ # [@clazz.all, {}]
28
+ # end
17
29
  page = params[:page]
18
30
  if page
19
- render json: {success: true, data: serialize(data), page: page, total: @clazz.count}
31
+ render json: {success: true, data: serialize(data, options), page: page, total: @clazz.count}
20
32
  else
21
- render json: {success: true, data: serialize(data)}
33
+ render json: {success: true, data: serialize(data, options)}
22
34
  end
23
35
  end
24
36
 
@@ -58,8 +70,8 @@ module Comee
58
70
 
59
71
  private
60
72
 
61
- def serialize(data)
62
- ActiveModelSerializers::SerializableResource.new(data)
73
+ def serialize(data, options = {})
74
+ ActiveModelSerializers::SerializableResource.new(data, options)
63
75
  end
64
76
 
65
77
  def set_clazz
@@ -9,6 +9,10 @@ module Comee
9
9
  def self.ransackable_attributes(_auth_object = nil)
10
10
  %w[code item_description itemable_id itemable_type product_id]
11
11
  end
12
+
13
+ def self.ransackable_associations(_auth_object = nil)
14
+ []
15
+ end
12
16
  end
13
17
  end
14
18
  end
@@ -1,6 +1,19 @@
1
1
  module Comee
2
2
  module Core
3
3
  class CustomerOrderService
4
+ def create(params)
5
+ order = nil
6
+ params = params.with_indifferent_access
7
+ ActiveRecord::Base.transaction do
8
+ order_params = params.except(:items)
9
+ order = Comee::Core::CustomerOrder.create(**order_params)
10
+ items = params.slice(:items)[:items]
11
+ items.each { |item| item[:customer_order_id] = order.id }
12
+ Comee::Core::CustomerOrderItem.insert_all!(items)
13
+ end
14
+ order
15
+ end
16
+
4
17
  ##
5
18
  # This method converts a price value per a unit of measure to a price value per another
6
19
  # unit of measure.
data/config/routes.rb CHANGED
@@ -42,7 +42,6 @@ Comee::Core::Engine.routes.draw do
42
42
  end
43
43
  end
44
44
  resources :external_rfqs
45
- post "/customer_orders/filter", controller: :customer_orders, action: :filter
46
45
  resources :customer_orders do
47
46
  member do
48
47
  post "submit"
@@ -50,6 +49,10 @@ Comee::Core::Engine.routes.draw do
50
49
  post "accept"
51
50
  post "cancel"
52
51
  end
52
+ collection do
53
+ post "filter"
54
+ post "create_with_items"
55
+ end
53
56
  end
54
57
  resources :customer_order_items do
55
58
  collection do
@@ -1,5 +1,5 @@
1
1
  module Comee
2
2
  module Core
3
- VERSION = "0.1.82".freeze
3
+ VERSION = "0.1.83".freeze
4
4
  end
5
5
  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.82
4
+ version: 0.1.83
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-01-06 00:00:00.000000000 Z
11
+ date: 2024-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers