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 +4 -4
- data/app/models/dscf/marketplace/order.rb +9 -3
- data/app/serializers/dscf/marketplace/order_serializer.rb +1 -1
- data/db/migrate/20251006055550_add_payment_method_to_dscf_marketplace_orders.rb +6 -0
- data/db/migrate/20251006055948_change_default_payment_method_on_orders.rb +5 -0
- data/lib/dscf/marketplace/version.rb +1 -1
- data/spec/factories/dscf/marketplace/orders.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab6f69061e5e0f80602dddeacb33887d68f21174664099fd9578f198e68ae6b3
|
4
|
+
data.tar.gz: 8a8b1e988f3bfad11aa3d3523df0ec70cfbf6b40305f2ddde6a0442d8ce21ff1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
@@ -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.
|
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-
|
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
|