PluginProbe
Packeta / 2.1
Packeta v2.1
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
← All changes | src/Packetery/Module/Order/BulkActions.php +21 -29 1.6.12.1 View file →
@@ -8,9 +8,8 @@
8 8 declare( strict_types=1 );
9 9
10 10 namespace Packetery\Module\Order;
11 11
12 -use Packetery\Module\Options;
13 12 use Packetery\Latte\Engine;
14 13 use Packetery\Nette\Http\Request;
15 14
16 15 /**
@@ -18,8 +17,10 @@
18 17 *
19 18 * @package Packetery\Order
20 19 */
21 20 class BulkActions {
21 + const ACTION_SUBMIT_TO_API = 'submit_to_api';
22 +
22 23 /**
23 24 * Latte engine.
24 25 *
25 26 * @var Engine
@@ -40,15 +41,8 @@
40 41 */
41 42 private $packetSubmitter;
42 43
43 44 /**
44 - * Options provider.
45 - *
46 - * @var Options\Provider
47 - */
48 - private $optionsProvider;
49 -
50 - /**
51 45 * Order repository.
52 46 *
53 47 * @var Repository
54 48 */
@@ -56,25 +50,22 @@
56 50
57 51 /**
58 52 * BulkActions constructor.
59 53 *
60 - * @param Engine $latteEngine Latte engine.
61 - * @param Request $httpRequest HTTP request.
62 - * @param PacketSubmitter $packetSubmitter Order API Client.
63 - * @param Options\Provider $optionsProvider Options provider.
64 - * @param Repository $orderRepository Order repository.
54 + * @param Engine $latteEngine Latte engine.
55 + * @param Request $httpRequest HTTP request.
56 + * @param PacketSubmitter $packetSubmitter Order API Client.
57 + * @param Repository $orderRepository Order repository.
65 58 */
66 59 public function __construct(
67 60 Engine $latteEngine,
68 61 Request $httpRequest,
69 62 PacketSubmitter $packetSubmitter,
70 - Options\Provider $optionsProvider,
71 63 Repository $orderRepository
72 64 ) {
73 65 $this->latteEngine = $latteEngine;
74 66 $this->httpRequest = $httpRequest;
75 67 $this->packetSubmitter = $packetSubmitter;
76 - $this->optionsProvider = $optionsProvider;
77 68 $this->orderRepository = $orderRepository;
78 69 }
79 70
80 71 /**
@@ -79,17 +70,17 @@
79 70
80 71 /**
81 72 * Adds custom actions to dropdown in admin order list.
82 73 *
83 - * @param array $actions Array of action.
74 + * @param array<string, string> $actions Array of action.
84 75 *
85 - * @return array
76 + * @return array<string, string>
86 77 */
87 78 public function addActions( array $actions ): array {
88 - $actions['submit_to_api'] = __( 'Submit orders to Packeta', 'packeta' );
89 - $actions[ LabelPrint::ACTION_PACKETA_LABELS ] = __( 'Print labels', 'packeta' );
90 - $actions[ LabelPrint::ACTION_CARRIER_LABELS ] = __( 'Print carrier labels', 'packeta' );
91 - $actions[ CollectionPrint::ACTION_PRINT_ORDER_COLLECTION ] = __( 'Print AWB', 'packeta' );
79 + $actions[ self::ACTION_SUBMIT_TO_API ] = __( 'Packeta export', 'packeta' );
80 + $actions[ LabelPrint::ACTION_PACKETA_LABELS ] = __( 'Packeta download labels', 'packeta' );
81 + $actions[ LabelPrint::ACTION_CARRIER_LABELS ] = __( 'Packeta download carrier labels', 'packeta' );
82 + $actions[ CollectionPrint::ACTION_PRINT_ORDER_COLLECTION ] = __( 'Packeta AWB (delivery note)', 'packeta' );
92 83
93 84 return $actions;
94 85 }
95 86
@@ -97,14 +88,14 @@
97 88 * Executes the action for selected orders and returns url to redirect to.
98 89 *
99 90 * @param string $redirectTo Url.
100 91 * @param string $action Action id.
101 - * @param array $postIds Order ids.
92 + * @param int[] $postIds Order ids.
102 93 *
103 94 * @return string
104 95 */
105 96 public function handleActions( string $redirectTo, string $action, array $postIds ): string {
106 - if ( CollectionPrint::ACTION_PRINT_ORDER_COLLECTION === $action ) {
97 + if ( $action === CollectionPrint::ACTION_PRINT_ORDER_COLLECTION ) {
107 98 set_transient( CollectionPrint::getOrderIdsTransientName(), $postIds );
108 99
109 100 return add_query_arg(
110 101 [
@@ -126,23 +117,24 @@
126 117 'admin.php'
127 118 );
128 119 }
129 120
130 - if ( 'submit_to_api' === $action ) {
121 + if ( $action === self::ACTION_SUBMIT_TO_API ) {
131 122 $finalSubmissionResult = new PacketSubmissionResult();
132 123 foreach ( $postIds as $postId ) {
133 124 $wcOrder = $this->orderRepository->getWcOrderById( $postId );
134 - if ( null !== $wcOrder ) {
125 + if ( $wcOrder !== null ) {
135 126 $submissionResult = $this->packetSubmitter->submitPacket(
136 127 $wcOrder,
137 - $this->optionsProvider->isOrderStatusAutoChangeEnabled()
128 + null,
129 + true
138 130 );
139 131 $finalSubmissionResult->merge( $submissionResult );
140 132 }
141 133 }
142 134
143 - $queryArgs = $finalSubmissionResult->getCounter();
144 - $queryArgs['submit_to_api'] = true;
135 + $queryArgs = $finalSubmissionResult->getCounter();
136 + $queryArgs[ self::ACTION_SUBMIT_TO_API ] = true;
145 137
146 138 if ( count( $postIds ) === 1 ) {
147 139 $queryArgs['packetery_order_id'] = array_pop( $postIds );
148 140 }
@@ -157,9 +149,9 @@
157 149 * Renders packets export result.
158 150 */
159 151 public function renderPacketsExportResult(): void {
160 152 $get = $this->httpRequest->getQuery();
161 - if ( empty( $get['submit_to_api'] ) ) {
153 + if ( ! isset( $get[ self::ACTION_SUBMIT_TO_API ] ) ) {
162 154 return;
163 155 }
164 156
165 157 $orderId = ( $get['packetery_order_id'] ?? null );