comee_core 0.3.5 → 0.3.6

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: 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