@@ -50,6 +50,32 @@ private function checkIsOrderClosed(OrderInterface $order, $arguments)
50
50
return false ;
51
51
}
52
52
53
+ /**
54
+ * Check is order in cancel state
55
+ *
56
+ * @param OrderInterface $order
57
+ * @param array $arguments
58
+ * @return bool
59
+ */
60
+ private function checkIsOrderProcessing (OrderInterface $ order , $ arguments )
61
+ {
62
+ /** @var $order Order|OrderInterface */
63
+ if ($ order ->getState () == Order::STATE_NEW && in_array (self ::IN_PROGRESS , $ arguments )) {
64
+ return true ;
65
+ }
66
+ return false ;
67
+ }
68
+ /**
69
+ * Returns initial state for order
70
+ *
71
+ * @param OrderInterface $order
72
+ * @return string
73
+ */
74
+ private function getInitialOrderState (OrderInterface $ order )
75
+ {
76
+ return $ order ->getState () === Order::STATE_PROCESSING ? Order::STATE_PROCESSING : Order::STATE_NEW ;
77
+ }
78
+
53
79
/**
54
80
* @param OrderInterface $order
55
81
* @param array $arguments
@@ -58,15 +84,15 @@ private function checkIsOrderClosed(OrderInterface $order, $arguments)
58
84
public function getStateForOrder (OrderInterface $ order , array $ arguments = [])
59
85
{
60
86
/** @var $order Order|OrderInterface */
61
- $ orderState = $ order -> getState () === Order:: STATE_PROCESSING ? Order:: STATE_PROCESSING : Order:: STATE_NEW ;
87
+ $ orderState = $ this -> getInitialOrderState ( $ order ) ;
62
88
if (!$ order ->isCanceled () && !$ order ->canUnhold () && !$ order ->canInvoice () && !$ order ->canShip ()) {
63
89
if ($ this ->checkIsOrderComplete ($ order )) {
64
90
$ orderState = Order::STATE_COMPLETE ;
65
91
} elseif ($ this ->checkIsOrderClosed ($ order , $ arguments )) {
66
92
$ orderState = Order::STATE_CLOSED ;
67
93
}
68
94
}
69
- if ($ order -> getState () == Order:: STATE_NEW && in_array ( self :: IN_PROGRESS , $ arguments )) {
95
+ if ($ this -> checkIsOrderProcessing ( $ order , $ arguments )) {
70
96
$ orderState = Order::STATE_PROCESSING ;
71
97
}
72
98
return $ orderState ;
0 commit comments