dscf-marketplace 0.4.3 → 0.4.4

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: 2efb9f7107c850ca7e7d328ab4c1c9a1785c50cf9b6b854f426e85f11d1d609f
4
- data.tar.gz: ed4b6f619a6a13e3785386d56072e84d0bf62ad6f041a122b3ae9fab51923e18
3
+ metadata.gz: ab6f69061e5e0f80602dddeacb33887d68f21174664099fd9578f198e68ae6b3
4
+ data.tar.gz: 8a8b1e988f3bfad11aa3d3523df0ec70cfbf6b40305f2ddde6a0442d8ce21ff1
5
5
  SHA512:
6
- metadata.gz: 180b318401c1043e7d0ded241270494d437e18aac507c461594558f87135c4b395b561bf82fcfba0cdac89fbf93784fad91028d11ff49d82219afbddb40ab2ab
7
- data.tar.gz: fea2f807396c0a948d8122099930dc6bf5172458b5246c26af688894fd528ed3ac2c24520f9e5875ed261fbb6be8dc0b44021fe350ab62cde1df9240e5294bf2
6
+ metadata.gz: 4dc07e89f8c0ed9958999cd4aff3eca8310013f7657266396ac3231347f9b8f11c3c5a40966c3dfd448e20c7fc47fc28db33c6b6683849977cb0843bca7376b4
7
+ data.tar.gz: c340641404557bc77b19f8e1b666291842d86e85dfd6f4e309af235bc9382c6a71563e5ef99c43cbfc0b983aed09034f6b194a38c8b9137209f89c1ad7801921
@@ -3,6 +3,7 @@ module Dscf::Marketplace
3
3
  enum :order_type, {rfq_based: 0, direct_listing: 1}
4
4
  enum :status, {pending: 0, confirmed: 1, processing: 2, completed: 3, cancelled: 4}
5
5
  enum :fulfillment_type, {self_pickup: 0, delivery: 1}
6
+ enum :payment_method, {cash: 0, credit: 1, transfer: 2}, default: :cash
6
7
 
7
8
  belongs_to :quotation, optional: true
8
9
  belongs_to :listing, optional: true
@@ -17,6 +18,7 @@ module Dscf::Marketplace
17
18
  validates :order_type, presence: true
18
19
  validates :status, presence: true
19
20
  validates :fulfillment_type, presence: true
21
+ validates :payment_method, presence: true
20
22
  validates :user, presence: true # Keep for backward compatibility
21
23
  validates :ordered_by, presence: true
22
24
  validates :ordered_to, presence: true
@@ -27,19 +29,21 @@ module Dscf::Marketplace
27
29
 
28
30
  # Ransack configuration for secure filtering
29
31
  def self.ransackable_attributes(_auth_object = nil)
30
- %w[id quotation_id listing_id user_id ordered_by_id ordered_to_id delivery_order_id dropoff_address_id order_type status fulfillment_type total_amount created_at updated_at]
32
+ %w[id quotation_id listing_id user_id ordered_by_id ordered_to_id delivery_order_id dropoff_address_id order_type status fulfillment_type payment_method total_amount created_at updated_at]
31
33
  end
32
34
 
33
35
  def self.ransackable_associations(_auth_object = nil)
34
36
  %w[quotation listing user ordered_by ordered_to delivery_order dropoff_address order_items]
35
37
  end
36
38
 
37
- def self.create_from_quotation(quotation, dropoff_address = nil)
39
+ def self.create_from_quotation(quotation, dropoff_address = nil, payment_method = :cash)
38
40
  return nil unless quotation.accepted?
39
41
 
40
42
  order = create!(
41
43
  order_type: :rfq_based,
42
44
  status: :processing,
45
+ fulfillment_type: dropoff_address.present? ? :delivery : :self_pickup,
46
+ payment_method: payment_method,
43
47
  quotation: quotation,
44
48
  user: quotation.request_for_quotation.user, # Keep for backward compatibility
45
49
  ordered_by: quotation.request_for_quotation.user,
@@ -62,12 +66,14 @@ module Dscf::Marketplace
62
66
  order
63
67
  end
64
68
 
65
- def self.create_from_listing(listing, user, quantity, dropoff_address = nil)
69
+ def self.create_from_listing(listing, user, quantity, dropoff_address = nil, payment_method = :cash)
66
70
  return nil unless listing.status == "active" && quantity <= listing.quantity
67
71
 
68
72
  order = create!(
69
73
  order_type: :direct_listing,
70
74
  status: :pending,
75
+ fulfillment_type: dropoff_address.present? ? :delivery : :self_pickup,
76
+ payment_method: payment_method,
71
77
  listing: listing,
72
78
  user: user, # Keep for backward compatibility
73
79
  ordered_by: user,
@@ -2,7 +2,7 @@ module Dscf
2
2
  module Marketplace
3
3
  class OrderSerializer < ActiveModel::Serializer
4
4
  attributes :id, :quotation_id, :listing_id, :user_id, :ordered_by_id, :ordered_to_id, :delivery_order_id, :dropoff_address_id,
5
- :order_type, :status, :fulfillment_type, :total_amount,
5
+ :order_type, :status, :fulfillment_type, :payment_method, :total_amount,
6
6
  :buyer_phone, :buyer_email, :seller_name, :seller_phone, :seller_email,
7
7
  :created_at, :updated_at
8
8
 
@@ -0,0 +1,6 @@
1
+ class AddPaymentMethodToDscfMarketplaceOrders < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :dscf_marketplace_orders, :payment_method, :integer, default: 0
4
+ add_index :dscf_marketplace_orders, :payment_method, name: "payment_method_on_dm_orders_idx"
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class ChangeDefaultPaymentMethodOnOrders < ActiveRecord::Migration[8.0]
2
+ def change
3
+ change_column_default :dscf_marketplace_orders, :payment_method, 0
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Marketplace
3
- VERSION = "0.4.3".freeze
3
+ VERSION = "0.4.4".freeze
4
4
  end
5
5
  end
@@ -3,6 +3,7 @@ FactoryBot.define do
3
3
  order_type { :rfq_based }
4
4
  status { :pending }
5
5
  fulfillment_type { :self_pickup }
6
+ payment_method { :cash }
6
7
  association :user, factory: :dscf_core_user # Keep for backward compatibility
7
8
  association :ordered_to, factory: :dscf_core_business
8
9
  association :quotation, factory: :dscf_marketplace_quotation
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-marketplace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-09-25 00:00:00.000000000 Z
10
+ date: 2025-10-06 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -503,6 +503,8 @@ files:
503
503
  - db/migrate/20250909092700_add_notes_to_dscf_marketplace_quotation_items.rb
504
504
  - db/migrate/20250916083536_make_driver_id_nullable_in_delivery_orders.rb
505
505
  - db/migrate/20250917110618_add_dropoff_address_to_dscf_marketplace_orders.rb
506
+ - db/migrate/20251006055550_add_payment_method_to_dscf_marketplace_orders.rb
507
+ - db/migrate/20251006055948_change_default_payment_method_on_orders.rb
506
508
  - db/seeds.rb
507
509
  - lib/dscf/marketplace.rb
508
510
  - lib/dscf/marketplace/engine.rb