comee_core 0.3.5 → 0.3.6

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: fccced757308f5d37ae6c37658589adcec29908f57c7b7a81acdb91d6217f5d0
4
- data.tar.gz: a7379fb00bd7183e62f2e9f0e9439fa589323b52bc352f6d81bbc7ac07786e3a
3
+ metadata.gz: 904aacbb433502ee95c7973c9ff1f50d5fe9698998a7600dcb84a038068f5125
4
+ data.tar.gz: a943ec5bd2893b7d1cff862f12695f193013740ff3c09606320306dbd252e2a6
5
5
  SHA512:
6
- metadata.gz: 7aeaf156df4bf4e589437f6d9e52d656df42e1f4bee3b9fd1995be62d19c4d00f1d767dc718c658ea41ea5a1bee3f603cf0327dcf969aafd2e19f7253bd3ca95
7
- data.tar.gz: 601e9df140aee781e209deae318c93bb850054855f5808f15842de1cf8d1b07ac86c096e3582b5c5befa86ae4bc72139f20a73e986e81c1f9a307b187c619318
6
+ metadata.gz: c14eda451d86694be060e733b8fdc3cf903872faf587b9c74349663bf0badb23ae6cb8dfc7103b8109ea5da3e457eb36b1b6a0b7cb4773697899d144ca0abed1
7
+ data.tar.gz: ad1835d0bf82d0002b9f710b5f7439cb218abf4223cbbfa46229d1793e7f6f806107deb2a8334906ca7e4a5d2259d7c80497ea006f980d2d3c6475db9ecf5e2d
@@ -31,7 +31,7 @@ module Comee
31
31
  end
32
32
 
33
33
  def model_params
34
- params.required(:payload).permit(:code, :itemable_id, :itemable_type, :item_description, :product_id)
34
+ params.required(:payload).permit(:code, :itemable_id, :itemable_type, :item_description, :product_id, :aliases)
35
35
  end
36
36
  end
37
37
  end
@@ -5,6 +5,8 @@ module Comee
5
5
 
6
6
  belongs_to :pod
7
7
  belongs_to :time_slot
8
+ belongs_to :agent, optional: true
9
+
8
10
  validates :status, presence: true
9
11
 
10
12
  def self.ransackable_attributes(_auth_object = nil)
@@ -9,7 +9,7 @@ module Comee
9
9
  validates :code, uniqueness: {scope: %i[product_id itemable_id itemable_type]}
10
10
 
11
11
  def self.ransackable_attributes(_auth_object = nil)
12
- %w[id code item_description itemable_id itemable_type product_id]
12
+ %w[id code item_description itemable_id itemable_type product_id alias]
13
13
  end
14
14
 
15
15
  def self.ransackable_associations(_auth_object = nil)
@@ -3,7 +3,6 @@ module Comee
3
3
  class SalesOrder < ApplicationRecord
4
4
  before_validation :generate_order_number, if: proc { |so| so.order_number.nil? }
5
5
 
6
- before_save :total_price
7
6
  before_save :set_parent_client_name
8
7
 
9
8
  belongs_to :customer_order
@@ -26,11 +25,16 @@ module Comee
26
25
  numericality: {greater_than_or_equal_to: 0},
27
26
  allow_nil: true
28
27
 
29
- def total_price
28
+ def calculate_total_price
30
29
  sales_order_items = SalesOrderItem.where(sales_order_id: id)
31
30
  self.total_price = sales_order_items.sum(&:total_price)
32
31
  end
33
32
 
33
+ def calculate_vat
34
+ total_price = SalesOrderItem.where(sales_order_id: id).sum(&:total_price)
35
+ self.vat = (total_price * 0.19).round(2) if client.tax_code == "Inland"
36
+ end
37
+
34
38
  def set_parent_client_name
35
39
  self.parent_client_name = client.parent&.name
36
40
  end
@@ -5,7 +5,9 @@ module Comee
5
5
 
6
6
  before_save :calculate_total_price
7
7
  before_save :calculate_handover_date
8
+ after_save :update_sales_order
8
9
  after_save :update_sales_order_purchase_status, if: proc { |item| item.fully_processed? }
10
+ after_destroy :update_sales_order
9
11
 
10
12
  enum processing_status: {unprocessed: 0, partially_processed: 1, fully_processed: 2}
11
13
 
@@ -34,6 +36,11 @@ module Comee
34
36
  self.total_price = (price * quantity).round(2)
35
37
  end
36
38
 
39
+ def update_sales_order
40
+ sales_order.calculate_total_price
41
+ sales_order.calculate_vat
42
+ end
43
+
37
44
  def quantity_remaining
38
45
  quantity - (quantity_delivered + quantity_canceled)
39
46
  end
@@ -1,7 +1,7 @@
1
1
  module Comee
2
2
  module Core
3
3
  class ProductLookupSerializer < ActiveModel::Serializer
4
- attributes :id, :code, :itemable_id, :itemable_type, :item_description
4
+ attributes :id, :code, :itemable_id, :itemable_type, :item_description, :aliases
5
5
  belongs_to :product
6
6
  end
7
7
  end
@@ -0,0 +1,5 @@
1
+ class AddAliasesFieldToProductLookup < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_column :comee_core_product_lookups, :aliases, :string
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class AddAgentToPickupSchedule < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_reference :comee_core_pickup_schedules,
4
+ :agent,
5
+ index: {name: "agent_on_ccps_indx"},
6
+ foreign_key: {to_table: :comee_core_agents}
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
1
  module Comee
2
2
  module Core
3
- VERSION = "0.3.5".freeze
3
+ VERSION = "0.3.6".freeze
4
4
  end
5
5
  end
@@ -6,5 +6,6 @@ FactoryBot.define do
6
6
  truck_no { Faker::Alphanumeric.alpha(number: 10) }
7
7
  driver_license_no { Faker::Alphanumeric.alpha(number: 10) }
8
8
  plate_no { Faker::Alphanumeric.alpha(number: 10) }
9
+ agent
9
10
  end
10
11
  end
@@ -4,5 +4,6 @@ FactoryBot.define do
4
4
  product
5
5
  itemable factory: :supplier
6
6
  item_description { Faker::Lorem.sentence }
7
+ aliases { nil }
7
8
  end
8
9
  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.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
@@ -526,6 +526,8 @@ files:
526
526
  - db/migrate/20240629145738_add_telephone_and_email_to_address.rb
527
527
  - db/migrate/20240629160357_add_more_address_fields_to_agent.rb
528
528
  - db/migrate/20240629170409_add_vat_to_sales_orders.rb
529
+ - db/migrate/20240630063656_add_aliases_field_to_product_lookup.rb
530
+ - db/migrate/20240630083042_add_agent_to_pickup_schedule.rb
529
531
  - lib/comee/core.rb
530
532
  - lib/comee/core/engine.rb
531
533
  - lib/comee/core/version.rb