comee_core 0.1.63 → 0.1.64

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: 7799ea96479660919b2feddcb0ef645e8345a0fcd76d0a964d16444b128cd8a1
4
- data.tar.gz: 3260186fbe16cfaed82416e5ccaf76a039aa9fca284a01ba3fc8ef7c1797c9bd
3
+ metadata.gz: c4cd6ae8953f0384e6621da475902a2cc7dbde2c84878da91a819a3bb4dd03ef
4
+ data.tar.gz: cffd56f30c07ea7030935b845baffc6285d0064e2cc6e5c7557bc7b4a39ce805
5
5
  SHA512:
6
- metadata.gz: 6075b7c40bf2255b933d80bcaafc54ec3a45bfd237f5c0759bd47830e0d66b382c97a92a33eb0d82f9974867e2b508036b716bfa451a0c26e67936883f87b753
7
- data.tar.gz: 11e4007cd8d5606f29deca92f6d9fbb801fc3867cee39052440d1e45fb40e11607db1e7dd11284ecac5428e2455e11f2c10abf078565d6ea6d947d88d394ddb7
6
+ metadata.gz: 8d3565e8fad90e32587fafa45309b44faaeb04326aaf5ce108dbe4be90150858d40a88476c2b76fa4163552e6066ee05ec76fa3fd7698b8263661c5712e77f99
7
+ data.tar.gz: 4ee979f53c118c6c372d794657140d347b9177467ab3a041bb684e870f261b35b0511da3fc14c1a64923d5d18c98fa33d5e50a79aecdfc94dc436855fd46dc83
@@ -35,7 +35,8 @@ module Comee
35
35
  private
36
36
 
37
37
  def model_params
38
- params.required(:payload).permit(:code, :name, :description, :parent_id, :thumbnail_image, :preferred_units, :source_id, images: [])
38
+ params.required(:payload).permit(:code, :name, :description, :parent_id, :thumbnail_image, :preferred_units, :source_id, :weight,
39
+ :weight_unit_id, :dimensions, :hs_code, :hs_description, images: [])
39
40
  end
40
41
 
41
42
  def price_params
@@ -25,6 +25,33 @@ module Comee
25
25
  render json: {success: true}
26
26
  end
27
27
 
28
+ def filter_with_status
29
+ items = SalesOrderItem.includes(:sales_order, :product, :unit)
30
+ .ransack(params[:q]).result
31
+ statuses = ItemStatus.where(sales_order_item_id: items.map(&:id))
32
+ .select("MAX(id) AS max_id, sales_order_item_id")
33
+ .group(:sales_order_item_id)
34
+ .all
35
+ ids = statuses.map(&:max_id)
36
+ statuses = ItemStatus.where(id: ids).each_with_object({}) { |status, res| res[status.sales_order_item_id] = status }
37
+ result = items.each_with_object([]) do |item, res|
38
+ status = statuses[item.id]
39
+ data = {
40
+ sales_order_no: item.sales_order.order_number,
41
+ customer_item_no: item.customer_item_no,
42
+ product_code: item.product.code,
43
+ unit: item.unit.code,
44
+ quantity: item.quantity,
45
+ delivery_date: item.delivery_date,
46
+ handover_date: item.sales_order.handover_date,
47
+ po_reference: item.po_reference,
48
+ status: status&.status
49
+ }
50
+ res << data.merge(status&.details)
51
+ end
52
+ render json: {success: true, data: result}
53
+ end
54
+
28
55
  private
29
56
 
30
57
  def model_params
@@ -8,6 +8,7 @@ module Comee
8
8
  has_many_attached :images
9
9
 
10
10
  belongs_to :source, class_name: "Comee::Core::FulfillmentCenter", optional: true
11
+ belongs_to :weight_unit, class_name: "Comee::Core::Unit", optional: true
11
12
 
12
13
  validates :code, presence: true, uniqueness: true
13
14
  validates :name, presence: true
@@ -12,6 +12,22 @@ module Comee
12
12
  validates :customer_item_no, :delivery_date, presence: true
13
13
  validates :quantity, :price, presence: true, numericality: {greater_than: 0}
14
14
  validates :quantity_delivered, numericality: {greater_than_or_equal_to: 0}
15
+
16
+ def self.ransackable_attributes(_auth_object = nil)
17
+ %w[
18
+ customer_item_no
19
+ customer_order_item_id
20
+ delivery_date
21
+ eb_number
22
+ handover_date
23
+ lead_time
24
+ po_reference
25
+ product_id
26
+ sales_order_id
27
+ source_id
28
+ unit_id
29
+ ]
30
+ end
15
31
  end
16
32
  end
17
33
  end
@@ -1,8 +1,10 @@
1
1
  module Comee
2
2
  module Core
3
3
  class ProductSerializer < ActiveModel::Serializer
4
- attributes :id, :code, :name, :description, :thumbnail_image_url, :images_url, :preferred_units
4
+ attributes :id, :code, :name, :description, :thumbnail_image_url, :images_url, :preferred_units, :weight, :dimensions, :hs_code,
5
+ :hs_description
5
6
  belongs_to :source
7
+ belongs_to :weight_unit
6
8
  end
7
9
  end
8
10
  end
@@ -4,6 +4,7 @@ module Comee
4
4
  attributes :id, :customer_item_no, :quantity, :quantity_delivered, :price, :delivery_date, :eb_number, :lead_time, :comment,
5
5
  :action_note, :po_reference, :product, :unit
6
6
 
7
+ belongs_to :sales_order
7
8
  belongs_to :customer_order_item
8
9
  belongs_to :source
9
10
  belongs_to :unit
data/config/routes.rb CHANGED
@@ -77,6 +77,10 @@ Comee::Core::Engine.routes.draw do
77
77
  member do
78
78
  get "suggest", controller: :sales_order_items, action: :suggest_values
79
79
  end
80
+
81
+ collection do
82
+ post "filter_with_status"
83
+ end
80
84
  end
81
85
  post "/sales_orders/filter", controller: :sales_orders, action: :filter
82
86
  resources :sales_orders do
@@ -7,6 +7,14 @@ class CreateComeeCoreProducts < ActiveRecord::Migration[7.0]
7
7
  t.boolean :leaf, null: false, default: true
8
8
  t.string :ancestry
9
9
  t.jsonb :preferred_units, null: false, default: []
10
+ t.float :weight
11
+ t.references :weight_unit,
12
+ null: true,
13
+ index: {name: "wu_on_ccp_indx"},
14
+ foreign_key: {to_table: :comee_core_units}
15
+ t.string :dimensions
16
+ t.string :hs_code
17
+ t.string :hs_description
10
18
  t.references :source,
11
19
  null: true,
12
20
  index: {name: "source_on_ccp_indx"},
@@ -1,5 +1,5 @@
1
1
  module Comee
2
2
  module Core
3
- VERSION = "0.1.63".freeze
3
+ VERSION = "0.1.64".freeze
4
4
  end
5
5
  end
@@ -9,6 +9,11 @@ FactoryBot.define do
9
9
  leaf { true }
10
10
  ancestry { root.id.to_s }
11
11
  preferred_units { [] }
12
+ weight { 10 }
13
+ weight_unit factory: :unit
14
+ dimensions { "2cm x 3cm x 1cm" }
15
+ hs_code { Faker::Alphanumeric.alpha(number: 10) }
16
+ hs_description { Faker::Lorem.sentence }
12
17
  source factory: :fulfillment_center
13
18
  end
14
19
  end
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.1.63
4
+ version: 0.1.64
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.