comee_core 0.1.82 → 0.1.83

Sign up to get free protection for your applications and to get access to all the features.
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