8
8
namespace Signifyd \Connect \Cron ;
9
9
10
10
use Magento \Framework \ObjectManagerInterface ;
11
+ use Magento \Sales \Model \ResourceModel \Order as OrderResourceModel ;
12
+ use Magento \Sales \Model \OrderFactory ;
11
13
use Signifyd \Connect \Logger \Logger ;
12
14
use Signifyd \Connect \Helper \PurchaseHelper ;
13
15
use Signifyd \Connect \Helper \Retry ;
14
16
use Signifyd \Connect \Model \Casedata ;
17
+ use Signifyd \Connect \Model \ResourceModel \Casedata as CasedataResourceModel ;
18
+ use Signifyd \Connect \Model \CasedataFactory ;
15
19
16
20
class RetryCaseJob
17
21
{
@@ -35,16 +39,60 @@ class RetryCaseJob
35
39
*/
36
40
protected $ caseRetryObj ;
37
41
42
+ /**
43
+ * @var OrderResourceModel
44
+ */
45
+ protected $ orderResourceModel ;
46
+
47
+ /**
48
+ * @var OrderFactory
49
+ */
50
+ protected $ orderFactory ;
51
+
52
+ /**
53
+ * @var CasedataResourceModel
54
+ */
55
+ protected $ casedataResourceModel ;
56
+
57
+ /**
58
+ * @var CasedataFactory\
59
+ */
60
+ protected $ casedataFactory ;
61
+
62
+ /**
63
+ * @var \StripeIntegration\Payments\Model\Config
64
+ */
65
+ protected $ stripeConfig ;
66
+
67
+ /**
68
+ * RetryCaseJob constructor.
69
+ * @param ObjectManagerInterface $objectManager
70
+ * @param PurchaseHelper $helper
71
+ * @param Logger $logger
72
+ * @param Retry $caseRetryObj
73
+ * @param OrderResourceModel $orderResourceModel
74
+ * @param OrderFactory $orderFactory
75
+ * @param CasedataResourceModel $casedataResourceModel
76
+ * @param CasedataFactory $casedataFactory
77
+ */
38
78
public function __construct (
39
79
ObjectManagerInterface $ objectManager ,
40
80
PurchaseHelper $ helper ,
41
81
Logger $ logger ,
42
- Retry $ caseRetryObj
82
+ Retry $ caseRetryObj ,
83
+ OrderResourceModel $ orderResourceModel ,
84
+ OrderFactory $ orderFactory ,
85
+ CasedataResourceModel $ casedataResourceModel ,
86
+ CasedataFactory $ casedataFactory
43
87
) {
44
88
$ this ->_objectManager = $ objectManager ;
45
89
$ this ->_helper = $ helper ;
46
90
$ this ->logger = $ logger ;
47
91
$ this ->caseRetryObj = $ caseRetryObj ;
92
+ $ this ->orderResourceModel = $ orderResourceModel ;
93
+ $ this ->orderFactory = $ orderFactory ;
94
+ $ this ->casedataResourceModel = $ casedataResourceModel ;
95
+ $ this ->casedataFactory = $ casedataFactory ;
48
96
}
49
97
50
98
/**
@@ -70,13 +118,15 @@ public function execute()
70
118
$ result = $ this ->_helper ->postCaseToSignifyd ($ caseData , $ order );
71
119
72
120
if ($ result ) {
73
- /** @var \Signifyd\Connect\Model\Casedata $caseObj */
74
- $ caseObj = $ this ->_objectManager ->create (\Signifyd \Connect \Model \Casedata::class)
75
- ->load ($ case ->getOrderIncrement ())
76
- ->setCode ($ result )
121
+ /** @var Casedata $caseObj */
122
+ $ caseObj = $ this ->casedataFactory ->create ();
123
+ $ this ->casedataResourceModel ->load ($ caseObj , $ case ->getOrderIncrement ());
124
+
125
+ $ caseObj ->setCode ($ result )
77
126
->setMagentoStatus (Casedata::IN_REVIEW_STATUS )
78
127
->setUpdated (strftime ('%Y-%m-%d %H:%M:%S ' , time ()));
79
- $ caseObj ->save ();
128
+
129
+ $ this ->casedataResourceModel ->save ($ caseObj );
80
130
}
81
131
}
82
132
@@ -109,8 +159,41 @@ public function execute()
109
159
return $ this ;
110
160
}
111
161
162
+ /**
163
+ * @param $incrementId
164
+ * @return \Magento\Sales\Model\Order
165
+ */
112
166
public function getOrder ($ incrementId )
113
167
{
114
- return $ this ->_objectManager ->get (\Magento \Sales \Model \Order::class)->loadByIncrementId ($ incrementId );
168
+ $ order = $ this ->orderFactory ->create ();
169
+ $ this ->orderResourceModel ->load ($ order , $ incrementId , 'increment_id ' );
170
+
171
+ if ($ order ->getPayment ()->getMethod () == 'stripe_payments ' ) {
172
+ $ this ->reInitStripe ($ order );
173
+ }
174
+
175
+ return $ order ;
176
+ }
177
+
178
+ /**
179
+ * @param \Magento\Sales\Model\Order $order
180
+ * @return bool
181
+ */
182
+ public function reInitStripe (\Magento \Sales \Model \Order $ order )
183
+ {
184
+ if (class_exists (\StripeIntegration \Payments \Model \Config::class) === false ) {
185
+ return false ;
186
+ }
187
+
188
+ if ($ this ->stripeConfig === null ) {
189
+ $ this ->stripeConfig = $ this ->_objectManager ->get (\StripeIntegration \Payments \Model \Config::class);
190
+ }
191
+
192
+ if (version_compare (\StripeIntegration \Payments \Model \Config::$ moduleVersion , '1.8.8 ' ) >= 0 &&
193
+ method_exists ($ this ->stripeConfig , 'reInitStripe ' )) {
194
+ $ this ->stripeConfig ->reInitStripe ($ order ->getStoreId (), $ order ->getBaseCurrencyCode (), null );
195
+ }
196
+
197
+ return true ;
115
198
}
116
199
}
0 commit comments