|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* Copyright © Getnet. All rights reserved. |
|
4
|
|
|
* |
|
5
|
|
|
* @author Bruno Elisei <[email protected]> |
|
6
|
|
|
* See LICENSE for license details. |
|
7
|
|
|
*/ |
|
8
|
|
|
|
|
9
|
|
|
namespace Getnet\SubSellerMagento\Model\Seller; |
|
10
|
|
|
|
|
11
|
|
|
use Getnet\SubSellerMagento\Model\Config\Source; |
|
12
|
|
|
use Magento\Framework\App\ObjectManager; |
|
13
|
|
|
use Magento\Framework\Locale\FormatInterface; |
|
14
|
|
|
use Magento\Framework\Serialize\Serializer\Serialize; |
|
15
|
|
|
use Magento\Framework\Stdlib\DateTime\DateTime; |
|
16
|
|
|
use Magento\Framework\Stdlib\DateTime\TimezoneInterface; |
|
17
|
|
|
|
|
18
|
|
|
/** |
|
19
|
|
|
* Sub Seller Model converter. |
|
20
|
|
|
* |
|
21
|
|
|
* Converts a Sub Seller Model to a Data Object or vice versa. |
|
22
|
|
|
* |
|
23
|
|
|
* @SuppressWarnings(PHPMD) |
|
24
|
|
|
*/ |
|
25
|
|
|
class Converter |
|
26
|
|
|
{ |
|
27
|
|
|
/** |
|
28
|
|
|
* @var Serialize |
|
29
|
|
|
*/ |
|
30
|
|
|
protected $serialize; |
|
31
|
|
|
|
|
32
|
|
|
/** |
|
33
|
|
|
* @var \Getnet\SubSellerMagento\Api\Data\SubSellerInterfaceFactory |
|
|
|
|
|
|
34
|
|
|
*/ |
|
35
|
|
|
protected $subSellerDataObjectFactory; |
|
36
|
|
|
|
|
37
|
|
|
/** |
|
38
|
|
|
* @var Source\Status |
|
39
|
|
|
*/ |
|
40
|
|
|
protected $status; |
|
41
|
|
|
|
|
42
|
|
|
/** |
|
43
|
|
|
* @var FormatInterface|null |
|
44
|
|
|
*/ |
|
45
|
|
|
private $format; |
|
46
|
|
|
|
|
47
|
|
|
/** |
|
48
|
|
|
* @var DateTime |
|
49
|
|
|
*/ |
|
50
|
|
|
protected $date; |
|
51
|
|
|
|
|
52
|
|
|
/** |
|
53
|
|
|
* @var TimezoneInterface |
|
54
|
|
|
*/ |
|
55
|
|
|
protected $timezone; |
|
56
|
|
|
|
|
57
|
|
|
/** |
|
58
|
|
|
* @param Serialize $serialize |
|
59
|
|
|
* @param \Getnet\SubSellerMagento\Api\Data\SubSellerInterfaceFactory $subSellerDataObjectFactory |
|
60
|
|
|
* @param Source\Status $status |
|
61
|
|
|
* @param DateTime $date |
|
62
|
|
|
* @param TimezoneInterface $timezone |
|
63
|
|
|
* @param FormatInterface|null $format |
|
64
|
|
|
*/ |
|
65
|
|
|
public function __construct( |
|
66
|
|
|
Serialize $serialize, |
|
67
|
|
|
\Getnet\SubSellerMagento\Api\Data\SubSellerInterfaceFactory $subSellerDataObjectFactory, |
|
68
|
|
|
Source\Status $status, |
|
69
|
|
|
DateTime $date, |
|
70
|
|
|
TimezoneInterface $timezone, |
|
71
|
|
|
FormatInterface $format = null |
|
72
|
|
|
) { |
|
73
|
|
|
$this->serialize = $serialize; |
|
74
|
|
|
$this->subSellerDataObjectFactory = $subSellerDataObjectFactory; |
|
75
|
|
|
$this->status = $status; |
|
76
|
|
|
$this->date = $date; |
|
77
|
|
|
$this->timezone = $timezone; |
|
78
|
|
|
$this->format = $format ?: ObjectManager::getInstance()->get(FormatInterface::class); |
|
79
|
|
|
} |
|
80
|
|
|
// phpcs:disable Generic.Files.LineLength |
|
81
|
|
|
|
|
82
|
|
|
/** |
|
83
|
|
|
* Extract sub seller data in a format which is. |
|
84
|
|
|
* |
|
85
|
|
|
* @param \Getnet\SubSellerMagento\Api\Data\SubSellerInterface $subSeller |
|
86
|
|
|
* @param bool $returnNumericLogic |
|
87
|
|
|
* |
|
88
|
|
|
* @return array |
|
89
|
|
|
* @SuppressWarnings(PHPMD.NPathComplexity) |
|
90
|
|
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity) |
|
91
|
|
|
* @SuppressWarnings(PHPCS.Generic.Files.LineLength) |
|
92
|
|
|
*/ |
|
93
|
|
|
public function createArrayFromServiceObject( |
|
94
|
|
|
\Getnet\SubSellerMagento\Api\Data\SubSellerInterface $subSeller, |
|
95
|
|
|
$returnNumericLogic = false |
|
96
|
|
|
) { |
|
97
|
|
|
$businessAddress = []; |
|
98
|
|
|
$bankAccountsUniqueAccount = []; |
|
99
|
|
|
$identificationDocument = []; |
|
100
|
|
|
$status = null; |
|
101
|
|
|
if ($subSeller->getStatus()) { |
|
|
|
|
|
|
102
|
|
|
$statusOptions = $this->status->toOptionArray(); |
|
103
|
|
|
$status = 1; |
|
104
|
|
|
if ($subSeller->getStatus() <= 3) { |
|
105
|
|
|
$status = $statusOptions[$subSeller->getStatus()]; |
|
106
|
|
|
$status = $status->getText(); |
|
107
|
|
|
} |
|
108
|
|
|
} |
|
109
|
|
|
|
|
110
|
|
|
if ($subSeller->getAddresses()) { |
|
111
|
|
|
unset($businessAddress); |
|
112
|
|
|
$addresses = $subSeller->getAddresses(); |
|
113
|
|
|
$businessAddress = $addresses['addresses']['business_address']; |
|
114
|
|
|
} |
|
115
|
|
|
|
|
116
|
|
|
if ($subSeller->getBankAccounts()) { |
|
117
|
|
|
unset($bankAccountsUniqueAccount); |
|
118
|
|
|
$bankAccounts = $subSeller->getBankAccounts(); |
|
119
|
|
|
$bankAccountsUniqueAccount = $bankAccounts['bank_accounts']['unique_account']; |
|
120
|
|
|
} |
|
121
|
|
|
|
|
122
|
|
|
if ($subSeller->getIdentificationDocument()) { |
|
|
|
|
|
|
123
|
|
|
unset($identificationDocument); |
|
124
|
|
|
$identificationDocument = $subSeller->getIdentificationDocument(); |
|
125
|
|
|
$identificationDocument = $identificationDocument['identification_document']; |
|
|
|
|
|
|
126
|
|
|
} |
|
127
|
|
|
|
|
128
|
|
|
$subSellerFormData = [ |
|
129
|
|
|
'id' => $subSeller->getId(), |
|
130
|
|
|
'merchant_id' => $subSeller->getMerchantId(), |
|
131
|
|
|
'code' => $subSeller->getCode(), |
|
132
|
|
|
'id_ext' => $subSeller->getIdExt(), |
|
133
|
|
|
'email' => $subSeller->getEmail(), |
|
134
|
|
|
'legal_document_number' => $subSeller->getLegalDocumentNumber(), |
|
135
|
|
|
'type' => $subSeller->getType(), |
|
136
|
|
|
'legal_name' => $subSeller->getLegalName(), |
|
137
|
|
|
'birth_date' => $subSeller->getBirthDate(), |
|
138
|
|
|
'address_street' => isset($businessAddress['address_street']) ? $businessAddress['address_street'] : null, |
|
139
|
|
|
'address_street_number' => isset($businessAddress['address_street_number']) ? $businessAddress['address_street_number'] : null, |
|
140
|
|
|
'address_street_district' => isset($businessAddress['address_street_district']) ? $businessAddress['address_street_district'] : null, |
|
141
|
|
|
'address_street_complement' => isset($businessAddress['address_street_complement']) ? $businessAddress['address_street_complement'] : null, |
|
142
|
|
|
'address_city' => isset($businessAddress['address_city']) ? $businessAddress['address_city'] : null, |
|
143
|
|
|
'address_region' => isset($businessAddress['address_region']) ? $businessAddress['address_region'] : null, |
|
144
|
|
|
'address_region_id' => isset($businessAddress['address_region_id']) ? $businessAddress['address_region_id'] : null, |
|
145
|
|
|
'address_country_id' => isset($businessAddress['address_country_id']) ? $businessAddress['address_country_id'] : null, |
|
146
|
|
|
'address_postcode' => isset($businessAddress['address_postcode']) ? $businessAddress['address_postcode'] : null, |
|
147
|
|
|
'telephone' => $subSeller->getTelephone(), |
|
148
|
|
|
'account_type' => isset($bankAccountsUniqueAccount['account_type']) ? $bankAccountsUniqueAccount['account_type'] : null, |
|
149
|
|
|
'bank' => isset($bankAccountsUniqueAccount['bank']) ? $bankAccountsUniqueAccount['bank'] : null, |
|
150
|
|
|
'agency' => isset($bankAccountsUniqueAccount['agency']) ? $bankAccountsUniqueAccount['agency'] : null, |
|
151
|
|
|
'agency_digit' => isset($bankAccountsUniqueAccount['agency_digit']) ? $bankAccountsUniqueAccount['agency_digit'] : null, |
|
152
|
|
|
'account' => isset($bankAccountsUniqueAccount['account']) ? $bankAccountsUniqueAccount['account'] : null, |
|
153
|
|
|
'account_digit' => isset($bankAccountsUniqueAccount['account_digit']) ? $bankAccountsUniqueAccount['account_digit'] : null, |
|
154
|
|
|
'payment_plan' => $subSeller->getPaymentPlan(), |
|
155
|
|
|
'accepted_contract' => $subSeller->getAcceptedContract(), |
|
156
|
|
|
'marketplace_store' => $subSeller->getMarketplaceStore(), |
|
157
|
|
|
'monthly_gross_income' => $subSeller->getMonthlyGrossIncome(), |
|
158
|
|
|
'gross_equity' => $subSeller->getGrossEquity(), |
|
159
|
|
|
'status' => $status, |
|
160
|
|
|
'status_comment' => $subSeller->getStatusComment(), |
|
161
|
|
|
'created_at' => $subSeller->getCreatedAt(), |
|
|
|
|
|
|
162
|
|
|
'updated_at' => $subSeller->getUpdatedAt(), |
|
|
|
|
|
|
163
|
|
|
]; |
|
164
|
|
|
|
|
165
|
|
|
if ($subSellerFormData['address_region_id'] === '0') { |
|
166
|
|
|
$subSellerFormData['address_region_id'] = ''; |
|
167
|
|
|
} |
|
168
|
|
|
|
|
169
|
|
|
if ($subSeller->getType()) { |
|
|
|
|
|
|
170
|
|
|
$subSellerFormData['type'] = $returnNumericLogic ? 1 : true; |
|
171
|
|
|
} |
|
172
|
|
|
|
|
173
|
|
|
return $subSellerFormData; |
|
174
|
|
|
} |
|
175
|
|
|
|
|
176
|
|
|
/** |
|
177
|
|
|
* Convert an array to a sub seller data object. |
|
178
|
|
|
* |
|
179
|
|
|
* @param array $formData |
|
180
|
|
|
* |
|
181
|
|
|
* @return \Getnet\SubSellerMagento\Api\Data\SubSellerInterface |
|
182
|
|
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity) |
|
183
|
|
|
* @SuppressWarnings(PHPMD.NPathComplexity) |
|
184
|
|
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength) |
|
185
|
|
|
*/ |
|
186
|
|
|
public function populateSubSellerData($formData) |
|
187
|
|
|
{ |
|
188
|
|
|
$birthDate = $this->extractFormData($formData, 'birth_date'); |
|
189
|
|
|
if (!$birthDate) { |
|
190
|
|
|
$birthDate = '01/01/1970'; |
|
191
|
|
|
} |
|
192
|
|
|
|
|
193
|
|
|
$birthDate = $this->convertDate($birthDate); |
|
194
|
|
|
|
|
195
|
|
|
$status = $this->extractFormData($formData, 'status'); |
|
196
|
|
|
$statusComment = $this->extractFormData($formData, 'status_comment'); |
|
197
|
|
|
if ($status === 1) { |
|
|
|
|
|
|
198
|
|
|
$statusComment = null; |
|
199
|
|
|
} |
|
200
|
|
|
|
|
201
|
|
|
$subSeller = $this->subSellerDataObjectFactory->create(); |
|
202
|
|
|
$subSeller->setId($this->extractFormData($formData, 'id')) |
|
203
|
|
|
->setMerchantId($this->extractFormData($formData, 'merchant_id')) |
|
204
|
|
|
->setCode($this->extractFormData($formData, 'code')) |
|
205
|
|
|
->setEmail($this->extractFormData($formData, 'email')) |
|
206
|
|
|
->setLegalDocumentNumber($this->extractFormData($formData, 'legal_document_number')) |
|
207
|
|
|
->setType($this->extractFormData($formData, 'type')) |
|
208
|
|
|
->setLegalName($this->extractFormData($formData, 'legal_name')) |
|
209
|
|
|
->setBirthDate($birthDate) |
|
210
|
|
|
->setAddresses($this->extractFormData($formData, 'addresses')) |
|
211
|
|
|
->setTelephone($this->extractFormData($formData, 'telephone')) |
|
212
|
|
|
->setFax($this->extractFormData($formData, 'fax')) |
|
213
|
|
|
->setBankAccounts($this->extractFormData($formData, 'bank_accounts')) |
|
214
|
|
|
->setPaymentPlan($this->extractFormData($formData, 'payment_plan')) |
|
215
|
|
|
->setAcceptedContract($this->extractFormData($formData, 'accepted_contract')) |
|
216
|
|
|
->setMarketplaceStore($this->extractFormData($formData, 'marketplace_store')) |
|
217
|
|
|
->setOccupation($this->extractFormData($formData, 'occupation')) |
|
218
|
|
|
->setMonthlyGrossIncome($this->extractFormData($formData, 'monthly_gross_income')) |
|
219
|
|
|
->setGrossEquity($this->extractFormData($formData, 'gross_equity')) |
|
220
|
|
|
->setStatus($status) |
|
221
|
|
|
->setStatusComment($statusComment); |
|
222
|
|
|
|
|
223
|
|
|
return $subSeller; |
|
224
|
|
|
} |
|
225
|
|
|
|
|
226
|
|
|
/** |
|
227
|
|
|
* Determines if an array value is set in the form data array and returns it. |
|
228
|
|
|
* |
|
229
|
|
|
* @param array $formData the form to get data from |
|
230
|
|
|
* @param string $fieldName the key |
|
231
|
|
|
* |
|
232
|
|
|
* @return null|string |
|
233
|
|
|
*/ |
|
234
|
|
|
protected function extractFormData($formData, $fieldName) |
|
235
|
|
|
{ |
|
236
|
|
|
if (isset($formData[$fieldName])) { |
|
237
|
|
|
return $formData[$fieldName]; |
|
238
|
|
|
} |
|
239
|
|
|
|
|
240
|
|
|
return null; |
|
241
|
|
|
} |
|
242
|
|
|
|
|
243
|
|
|
/** |
|
244
|
|
|
* Convert Date. |
|
245
|
|
|
* |
|
246
|
|
|
* @param string $date |
|
247
|
|
|
* |
|
248
|
|
|
* @return string |
|
249
|
|
|
*/ |
|
250
|
|
|
public function convertDate(string $date): string |
|
251
|
|
|
{ |
|
252
|
|
|
$date = str_replace('/', '-', $date); |
|
253
|
|
|
$defaultTimezone = $this->timezone->getDefaultTimezone(); |
|
254
|
|
|
$configTimezone = $this->timezone->getConfigTimezone(); |
|
255
|
|
|
$date = new \DateTime($date, new \DateTimeZone($configTimezone)); |
|
256
|
|
|
$date->setTimezone(new \DateTimeZone($defaultTimezone)); |
|
257
|
|
|
|
|
258
|
|
|
return $date->format('Y-m-d'); |
|
259
|
|
|
} |
|
260
|
|
|
} |
|
261
|
|
|
|
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths