effective_orders 6.10.0 → 6.11.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a3716b7b619276755bac8d33027424eed7b97519fdc1454d498349074e2a022
|
4
|
+
data.tar.gz: 5071eb8c4733b659c1d6e72f0ad7974301af0c32d0df6701547eedddaefc723b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30ee25cf450e876da9a219c303c51d1469994fc055d039fe610e7abcddd3d988bc7fa5558ac17dcf05f06ff8afc0d23d6094a1aa106271b091b0fe2c69390310
|
7
|
+
data.tar.gz: abc8e9d7fac67cac46be97ad522f7ffce5e64a47a4a12e8bc9d6f1c17368788dceab075b9ef302f7d937872ebf7f16cbcaabd5d5f9b38ba4f316a46c5dcedc9e
|
@@ -62,6 +62,14 @@ module ActsAsPurchasable
|
|
62
62
|
module ClassMethods
|
63
63
|
def acts_as_purchasable?; true; end
|
64
64
|
|
65
|
+
def before_defer(&block)
|
66
|
+
send :define_method, :before_defer do |order, order_item| self.instance_exec(order, order_item, &block) end
|
67
|
+
end
|
68
|
+
|
69
|
+
def after_defer(&block)
|
70
|
+
send :define_method, :after_defer do |order, order_item| self.instance_exec(order, order_item, &block) end
|
71
|
+
end
|
72
|
+
|
65
73
|
def before_purchase(&block)
|
66
74
|
send :define_method, :before_purchase do |order, order_item| self.instance_exec(order, order_item, &block) end
|
67
75
|
end
|
@@ -70,6 +78,10 @@ module ActsAsPurchasable
|
|
70
78
|
send :define_method, :after_purchase do |order, order_item| self.instance_exec(order, order_item, &block) end
|
71
79
|
end
|
72
80
|
|
81
|
+
def before_decline(&block)
|
82
|
+
send :define_method, :before_decline do |order, order_item| self.instance_exec(order, order_item, &block) end
|
83
|
+
end
|
84
|
+
|
73
85
|
def after_decline(&block)
|
74
86
|
send :define_method, :after_decline do |order, order_item| self.instance_exec(order, order_item, &block) end
|
75
87
|
end
|
@@ -13,6 +13,14 @@ module ActsAsPurchasableParent
|
|
13
13
|
module ClassMethods
|
14
14
|
def acts_as_purchasable_parent?; true; end
|
15
15
|
|
16
|
+
def before_defer(&block)
|
17
|
+
send :define_method, :before_defer do |order| self.instance_exec(order, &block) end
|
18
|
+
end
|
19
|
+
|
20
|
+
def after_defer(&block)
|
21
|
+
send :define_method, :after_defer do |order| self.instance_exec(order, &block) end
|
22
|
+
end
|
23
|
+
|
16
24
|
def before_purchase(&block)
|
17
25
|
send :define_method, :before_purchase do |order| self.instance_exec(order, &block) end
|
18
26
|
end
|
@@ -21,6 +29,10 @@ module ActsAsPurchasableParent
|
|
21
29
|
send :define_method, :after_purchase do |order| self.instance_exec(order, &block) end
|
22
30
|
end
|
23
31
|
|
32
|
+
def before_decline(&block)
|
33
|
+
send :define_method, :before_decline do |order| self.instance_exec(order, &block) end
|
34
|
+
end
|
35
|
+
|
24
36
|
def after_decline(&block)
|
25
37
|
send :define_method, :after_decline do |order| self.instance_exec(order, &block) end
|
26
38
|
end
|
@@ -696,11 +696,41 @@ module Effective
|
|
696
696
|
sync_quickbooks!(skip: true)
|
697
697
|
end
|
698
698
|
|
699
|
-
def defer!(provider: 'none', email: true)
|
700
|
-
|
699
|
+
def defer!(provider: 'none', email: true, validate: true)
|
700
|
+
raise('order already purchased') if purchased?
|
701
|
+
|
702
|
+
# Assign attributes
|
703
|
+
assign_attributes(
|
704
|
+
payment_provider: provider,
|
705
|
+
|
706
|
+
status: :deferred,
|
707
|
+
purchased_at: nil,
|
708
|
+
purchased_by: nil,
|
709
|
+
|
710
|
+
deferred_at: (deferred_at.presence || Time.zone.now),
|
711
|
+
deferred_by: (deferred_by.presence || current_user)
|
712
|
+
)
|
713
|
+
|
714
|
+
if current_user&.email.present?
|
715
|
+
assign_attributes(email: current_user.email)
|
716
|
+
end
|
717
|
+
|
718
|
+
error = nil
|
701
719
|
|
702
|
-
|
703
|
-
|
720
|
+
begin
|
721
|
+
Effective::Order.transaction do
|
722
|
+
run_purchasable_callbacks(:before_defer)
|
723
|
+
save!(validate: validate)
|
724
|
+
run_purchasable_callbacks(:after_defer)
|
725
|
+
end
|
726
|
+
rescue ActiveRecord::RecordInvalid => e
|
727
|
+
self.status = status_was
|
728
|
+
|
729
|
+
error = e.message
|
730
|
+
raise ::ActiveRecord::Rollback
|
731
|
+
end
|
732
|
+
|
733
|
+
raise "Failed to defer order: #{error || errors.full_messages.to_sentence}" unless error.nil?
|
704
734
|
|
705
735
|
send_payment_request_to_buyer! if email
|
706
736
|
|
@@ -709,11 +739,8 @@ module Effective
|
|
709
739
|
|
710
740
|
def decline!(payment: 'none', provider: 'none', card: 'none', validate: true)
|
711
741
|
return false if declined?
|
712
|
-
|
713
742
|
raise('order already purchased') if purchased?
|
714
743
|
|
715
|
-
error = nil
|
716
|
-
|
717
744
|
assign_attributes(
|
718
745
|
skip_buyer_validations: true,
|
719
746
|
|
@@ -726,6 +753,12 @@ module Effective
|
|
726
753
|
payment_card: (card.presence || 'none')
|
727
754
|
)
|
728
755
|
|
756
|
+
if current_user&.email.present?
|
757
|
+
assign_attributes(email: current_user.email)
|
758
|
+
end
|
759
|
+
|
760
|
+
error = nil
|
761
|
+
|
729
762
|
Effective::Order.transaction do
|
730
763
|
begin
|
731
764
|
run_purchasable_callbacks(:before_decline)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_orders
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|