• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

webeweb / core-library / 8940432054

03 May 2024 02:19PM UTC coverage: 99.7% (-0.002%) from 99.702%
8940432054

push

github

webeweb
Code checkstyle

50780 of 50933 relevant lines covered (99.7%)

16.33 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

99.58
/lib/easilys/Serializer/JsonDeserializer.php
1
<?php
2

3
declare(strict_types = 1);
4

5
/*
6
 * This file is part of the core-library package.
7
 *
8
 * (c) 2023 WEBEWEB
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13

14
namespace WBW\Library\Easilys\Serializer;
15

16
use WBW\Library\Common\Helper\ArrayHelper;
17
use WBW\Library\Common\Serializer\SerializerKeys as BaseSerializerKeys;
18
use WBW\Library\Easilys\Model\AccountingGeneral;
19
use WBW\Library\Easilys\Model\Address;
20
use WBW\Library\Easilys\Model\Allergen;
21
use WBW\Library\Easilys\Model\AnalyticalGroup;
22
use WBW\Library\Easilys\Model\AutomaticStockTransfer;
23
use WBW\Library\Easilys\Model\Certification;
24
use WBW\Library\Easilys\Model\Code;
25
use WBW\Library\Easilys\Model\ControlSampleConfig;
26
use WBW\Library\Easilys\Model\DairySubsidy;
27
use WBW\Library\Easilys\Model\DeliveryDaysProduction;
28
use WBW\Library\Easilys\Model\DeliveryWeekday;
29
use WBW\Library\Easilys\Model\Email;
30
use WBW\Library\Easilys\Model\ExtData;
31
use WBW\Library\Easilys\Model\Family;
32
use WBW\Library\Easilys\Model\Fax;
33
use WBW\Library\Easilys\Model\Generic;
34
use WBW\Library\Easilys\Model\GenericFamily;
35
use WBW\Library\Easilys\Model\LinkedUser;
36
use WBW\Library\Easilys\Model\NutritionValue;
37
use WBW\Library\Easilys\Model\Origin;
38
use WBW\Library\Easilys\Model\PackagingLevel;
39
use WBW\Library\Easilys\Model\Params;
40
use WBW\Library\Easilys\Model\Phone;
41
use WBW\Library\Easilys\Model\PriceList;
42
use WBW\Library\Easilys\Model\PriceListSupplierProduct;
43
use WBW\Library\Easilys\Model\ProdFamily;
44
use WBW\Library\Easilys\Model\Product;
45
use WBW\Library\Easilys\Model\ProductionUnit;
46
use WBW\Library\Easilys\Model\Quality;
47
use WBW\Library\Easilys\Model\Range;
48
use WBW\Library\Easilys\Model\Site;
49
use WBW\Library\Easilys\Model\StorageType;
50
use WBW\Library\Easilys\Model\Storehouse;
51
use WBW\Library\Easilys\Model\Supplier;
52
use WBW\Library\Easilys\Model\SupplierProduct;
53
use WBW\Library\Easilys\Model\SupplierProductReference;
54
use WBW\Library\Easilys\Model\Tag;
55
use WBW\Library\Easilys\Model\Tax;
56
use WBW\Library\Easilys\Model\Tree;
57
use WBW\Library\Easilys\Model\Unit;
58

59
/**
60
 * JSON deserializer.
61
 *
62
 * @author webeweb <https://github.com/webeweb>
63
 * @package WBW\Library\Easilys\Serializer
64
 */
65
class JsonDeserializer {
66

67
    /**
68
     * Deserialize an accounting general.
69
     *
70
     * @param array<string,mixed> $data The data.
71
     * @return AccountingGeneral|null Returns the accounting general.
72
     */
73
    public static function deserializeAccountingGeneral(array $data): ?AccountingGeneral {
74

75
        if (0 === count($data)) {
24✔
76
            return null;
16✔
77
        }
78

79
        $model = new AccountingGeneral();
16✔
80
        $model->setAccountingCreditInvoice(ArrayHelper::get($data, SerializerKeys::ACCOUNTING_CREDIT_INVOICE));
16✔
81
        $model->setAccountingGeneralSupplier(ArrayHelper::get($data, SerializerKeys::ACCOUNTING_GENERAL_SUPPLIER));
16✔
82
        $model->setAccountingPurchaseInvoice(ArrayHelper::get($data, SerializerKeys::ACCOUNTING_PURCHASE_INVOICE));
16✔
83

84
        return $model;
16✔
85
    }
86

87
    /**
88
     * Deserialize a address.
89
     *
90
     * @param array<string,mixed> $data The data.
91
     * @return Address|null Returns the address.
92
     */
93
    public static function deserializeAddress(array $data): ?Address {
94

95
        if (0 === count($data)) {
40✔
96
            return null;
24✔
97
        }
98

99
        $model = new Address();
24✔
100
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
101
        $model->setAddress(ArrayHelper::get($data, SerializerKeys::ADDRESS));
24✔
102
        $model->setCity(ArrayHelper::get($data, SerializerKeys::CITY));
24✔
103
        $model->setCountry(ArrayHelper::get($data, BaseSerializerKeys::COUNTRY));
24✔
104
        $model->setIsMain(ArrayHelper::get($data, SerializerKeys::IS_MAIN));
24✔
105
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
106
        $model->setPostalCode(ArrayHelper::get($data, BaseSerializerKeys::POSTAL_CODE));
24✔
107
        $model->setType(ArrayHelper::get($data, BaseSerializerKeys::TYPE));
24✔
108

109
        return $model;
24✔
110
    }
111

112
    /**
113
     * Deserialize an allergen.
114
     *
115
     * @param array<string,mixed> $data The data.
116
     * @return Allergen|null Returns the allergen.
117
     */
118
    public static function deserializeAllergen(array $data): ?Allergen {
119

120
        if (0 === count($data)) {
16✔
121
            return null;
8✔
122
        }
123

124
        $model = new Allergen();
16✔
125
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
126
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
127

128
        return $model;
16✔
129
    }
130

131
    /**
132
     * Deserialize an analytical group.
133
     *
134
     * @param array<string,mixed> $data The data.
135
     * @return AnalyticalGroup|null Returns the analytical group.
136
     */
137
    public static function deserializeAnalyticalGroup(array $data): ?AnalyticalGroup {
138

139
        if (0 === count($data)) {
24✔
140
            return null;
16✔
141
        }
142

143
        $model = new AnalyticalGroup();
16✔
144
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
145
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
146

147
        return $model;
16✔
148
    }
149

150
    /**
151
     * Deserialize a automatic stock transfer.
152
     *
153
     * @param array<string,mixed> $data The data.
154
     * @return AutomaticStockTransfer|null Returns the automatic stock transfer.
155
     */
156
    public static function deserializeAutomaticStockTransfer(array $data): ?AutomaticStockTransfer {
157

158
        if (0 === count($data)) {
24✔
159
            return null;
16✔
160
        }
161

162
        $model = new AutomaticStockTransfer();
16✔
163
        $model->setFromConsumption(ArrayHelper::get($data, SerializerKeys::FROM_CONSUMPTION));
16✔
164

165
        return $model;
16✔
166
    }
167

168
    /**
169
     * Deserialize a certification.
170
     *
171
     * @param array<string,mixed> $data The data.
172
     * @return Certification|null Returns the certification.
173
     */
174
    public static function deserializeCertification(array $data): ?Certification {
175

176
        if (0 === count($data)) {
16✔
177
            return null;
8✔
178
        }
179

180
        $model = new Certification();
16✔
181
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
182
        $model->setCode(ArrayHelper::get($data, BaseSerializerKeys::CODE));
16✔
183
        $model->setImage(ArrayHelper::get($data, BaseSerializerKeys::IMAGE));
16✔
184
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
185

186
        return $model;
16✔
187
    }
188

189
    /**
190
     * Deserialize a code.
191
     *
192
     * @param array<string,mixed> $data The data.
193
     * @return Code|null Returns the code.
194
     */
195
    public static function deserializeCode(array $data): ?Code {
196

197
        if (0 === count($data)) {
16✔
198
            return null;
8✔
199
        }
200

201
        $model = new Code();
16✔
202
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
203
        $model->setCodePackaging(ArrayHelper::get($data, SerializerKeys::CODE_PACKAGING));
16✔
204
        $model->setIdPackagingUnit(ArrayHelper::get($data, SerializerKeys::ID_PACKAGING_UNIT));
16✔
205
        $model->setLabelPackaging(ArrayHelper::get($data, SerializerKeys::LABEL_PACKAGING));
16✔
206

207
        return $model;
16✔
208
    }
209

210
    /**
211
     * Deserialize a control sample config.
212
     *
213
     * @param array<string,mixed> $data The data.
214
     * @return ControlSampleConfig|null Returns the control sample config.
215
     */
216
    public static function deserializeControlSampleConfig(array $data): ?ControlSampleConfig {
217

218
        if (0 === count($data)) {
24✔
219
            return null;
16✔
220
        }
221

222
        $model = new ControlSampleConfig();
16✔
223
        $model->setAmountForConsumptionSite(ArrayHelper::get($data, SerializerKeys::AMOUNT_FOR_CONSUMPTION_SITE));
16✔
224
        $model->setAmountForProductionSite(ArrayHelper::get($data, SerializerKeys::AMOUNT_FOR_PRODUCTION_SITE));
16✔
225
        $model->setIsControlSampleActive(ArrayHelper::get($data, SerializerKeys::IS_CONTROL_SAMPLE_ACTIVE));
16✔
226
        $model->setIsControlSampleBillable(ArrayHelper::get($data, SerializerKeys::IS_CONTROL_SAMPLE_BILLABLE));
16✔
227

228
        return $model;
16✔
229
    }
230

231
    /**
232
     * Deserialize a dairy subsidy.
233
     *
234
     * @param array<string,mixed> $data The data.
235
     * @return DairySubsidy|null Returns the tree.
236
     */
237
    public static function deserializeDairySubsidy(array $data): ?DairySubsidy {
238

239
        if (0 === count($data)) {
24✔
240
            return null;
16✔
241
        }
242

243
        $model = new DairySubsidy();
16✔
244
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
245
        $model->setAmount(ArrayHelper::get($data, SerializerKeys::AMOUNT));
16✔
246
        $model->setCode(ArrayHelper::get($data, BaseSerializerKeys::CODE));
16✔
247
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
248
        $model->setUnit(static::deserializeUnit(ArrayHelper::get($data, SerializerKeys::UNIT, [])));
16✔
249

250
        return $model;
16✔
251
    }
252

253
    /**
254
     * Deserialize a delivery days production.
255
     *
256
     * @param array<string,mixed> $data The data.
257
     * @return DeliveryDaysProduction|null Returns the fax.
258
     */
259
    public static function deserializeDeliveryDaysProduction(array $data): ?DeliveryDaysProduction {
260

261
        if (0 === count($data)) {
16✔
262
            return null;
8✔
263
        }
264

265
        $model = new DeliveryDaysProduction();
16✔
266
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
267
        $model->setDays(ArrayHelper::get($data, SerializerKeys::DAYS));
16✔
268

269
        return $model;
16✔
270
    }
271

272
    /**
273
     * Deserialize a delivery weekday.
274
     *
275
     * @param array<string,mixed> $data The data.
276
     * @return DeliveryWeekday|null Returns the delivery weekday.
277
     */
278
    public static function deserializeDeliveryWeekday(array $data): ?DeliveryWeekday {
279

280
        if (0 === count($data)) {
16✔
281
            return null;
8✔
282
        }
283

284
        $model = new DeliveryWeekday();
16✔
285
        $model->setWeekday(ArrayHelper::get($data, SerializerKeys::WEEKDAY));
16✔
286

287
        return $model;
16✔
288
    }
289

290
    /**
291
     * Deserialize an email.
292
     *
293
     * @param array<string,mixed> $data The data.
294
     * @return Email|null Returns the email.
295
     */
296
    public static function deserializeEmail(array $data): ?Email {
297

298
        if (0 === count($data)) {
16✔
299
            return null;
8✔
300
        }
301

302
        $model = new Email();
16✔
303
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
304
        $model->setContext(ArrayHelper::get($data, SerializerKeys::CONTEXT));
16✔
305
        $model->setEmail(ArrayHelper::get($data, SerializerKeys::E_MAIL));
16✔
306
        $model->setIsMain(ArrayHelper::get($data, SerializerKeys::IS_MAIN));
16✔
307
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
308

309
        return $model;
16✔
310
    }
311

312
    /**
313
     * Deserialize an ext data.
314
     *
315
     * @param array<string,mixed> $data The data.
316
     * @return ExtData|null Returns the ext data.
317
     */
318
    public static function deserializeExtData(array $data): ?ExtData {
319

320
        if (0 === count($data)) {
24✔
321
            return null;
24✔
322
        }
323

324
        return new ExtData();
8✔
325
    }
326

327
    /**
328
     * Deserialize a family.
329
     *
330
     * @param array<string,mixed> $data The data.
331
     * @return Family|null Returns the family.
332
     */
333
    public static function deserializeFamily(array $data): ?Family {
334

335
        if (0 === count($data)) {
32✔
336
            return null;
32✔
337
        }
338

339
        $model = new Family();
16✔
340
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
341
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
342
        $model->setParent(static::deserializeFamily(ArrayHelper::get($data, SerializerKeys::PARENT, [])));
16✔
343

344
        return $model;
16✔
345
    }
346

347
    /**
348
     * Deserialize a fax.
349
     *
350
     * @param array<string,mixed> $data The data.
351
     * @return Fax|null Returns the fax.
352
     */
353
    public static function deserializeFax(array $data): ?Fax {
354

355
        if (0 === count($data)) {
16✔
356
            return null;
8✔
357
        }
358

359
        $model = new Fax();
16✔
360
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
361
        $model->setNumber(ArrayHelper::get($data, BaseSerializerKeys::NUMBER));
16✔
362

363
        return $model;
16✔
364
    }
365

366
    /**
367
     * Deserialize a generic.
368
     *
369
     * @param array<string,mixed> $data The data.
370
     * @return Generic|null Returns the generic.
371
     */
372
    public static function deserializeGeneric(array $data): ?Generic {
373

374
        if (0 === count($data)) {
16✔
375
            return null;
8✔
376
        }
377

378
        $model = new Generic();
16✔
379
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
380
        $model->setGenericFamily(static::deserializeGenericFamily(ArrayHelper::get($data, SerializerKeys::GENERIC_FAMILY, [])));
16✔
381
        $model->setIdSiteOwner(ArrayHelper::get($data, SerializerKeys::ID_SITE_OWNER));
16✔
382
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
383
        $model->setProductionUnit(static::deserializeProductionUnit(ArrayHelper::get($data, SerializerKeys::PRODUCTION_UNIT, [])));
16✔
384

385
        return $model;
16✔
386
    }
387

388
    /**
389
     * Deserialize a generic family.
390
     *
391
     * @param array<string,mixed> $data The data.
392
     * @return GenericFamily|null Returns the generic family.
393
     */
394
    public static function deserializeGenericFamily(array $data): ?GenericFamily {
395

396
        if (0 === count($data)) {
24✔
397
            return null;
24✔
398
        }
399

400
        $model = new GenericFamily();
16✔
401
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
402
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
403
        $model->setParent(static::deserializeGenericFamily(ArrayHelper::get($data, SerializerKeys::PARENT, [])));
16✔
404

405
        return $model;
16✔
406
    }
407

408
    /**
409
     * Deserialize a linked user.
410
     *
411
     * @param array<string,mixed> $data The data.
412
     * @return LinkedUser|null Returns the linked user.
413
     */
414
    public static function deserializeLinkedUser(array $data): ?LinkedUser {
415

416
        if (0 === count($data)) {
16✔
417
            return null;
8✔
418
        }
419

420
        $model = new LinkedUser();
16✔
421
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
422
        $model->setFirstName(ArrayHelper::get($data, BaseSerializerKeys::FIRST_NAME));
16✔
423
        $model->setLastName(ArrayHelper::get($data, BaseSerializerKeys::LAST_NAME));
16✔
424

425
        return $model;
16✔
426
    }
427

428
    /**
429
     * Deserialize a nutrition value.
430
     *
431
     * @param array<string,mixed> $data The data.
432
     * @return NutritionValue|null Returns the nutrition value.
433
     */
434
    public static function deserializeNutritionValue(array $data): ?NutritionValue {
435

436
        if (0 === count($data)) {
32✔
437
            return null;
24✔
438
        }
439

440
        $model = new NutritionValue();
16✔
441
        $model->setCalcium(ArrayHelper::get($data, SerializerKeys::CALCIUM));
16✔
442
        $model->setCarbohydrate(ArrayHelper::get($data, SerializerKeys::CARBOHYDRATE));
16✔
443
        $model->setEnergyKcal(ArrayHelper::get($data, SerializerKeys::ENERGY_KCAL));
16✔
444
        $model->setEnergyKj(ArrayHelper::get($data, SerializerKeys::ENERGY_KJ));
16✔
445
        $model->setEthanol(ArrayHelper::get($data, SerializerKeys::ETHANOL));
16✔
446
        $model->setFiber(ArrayHelper::get($data, SerializerKeys::FIBER));
16✔
447
        $model->setIncludingSaturatedFattyAcids(ArrayHelper::get($data, SerializerKeys::INCLUDING_SATURATED_FATTY_ACIDS));
16✔
448
        $model->setIncludingSugar(ArrayHelper::get($data, SerializerKeys::INCLUDING_SUGAR));
16✔
449
        $model->setLipid(ArrayHelper::get($data, SerializerKeys::LIPID));
16✔
450
        $model->setOrganicAcid(ArrayHelper::get($data, SerializerKeys::ORGANIC_ACID));
16✔
451
        $model->setPolyols(ArrayHelper::get($data, SerializerKeys::POLYOLS));
16✔
452
        $model->setProtein(ArrayHelper::get($data, SerializerKeys::PROTEIN));
16✔
453
        $model->setSalt(ArrayHelper::get($data, SerializerKeys::SALT));
16✔
454

455
        return $model;
16✔
456
    }
457

458
    /**
459
     * Deserialize an origin.
460
     *
461
     * @param array<string,mixed> $data The data.
462
     * @return Origin|null Returns the origin.
463
     */
464
    public static function deserializeOrigin(array $data): ?Origin {
465

466
        if (0 === count($data)) {
32✔
467
            return null;
24✔
468
        }
469

470
        $model = new Origin();
16✔
471
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
472
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
473

474
        return $model;
16✔
475
    }
476

477
    /**
478
     * Deserialize a packaging level.
479
     *
480
     * @param array<string,mixed> $data The data.
481
     * @return PackagingLevel|null Returns the allergen.
482
     */
483
    public static function deserializePackagingLevel(array $data): ?PackagingLevel {
484

485
        if (0 === count($data)) {
24✔
486
            return null;
16✔
487
        }
488

489
        $model = new PackagingLevel();
16✔
490
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
491

492
        return $model;
16✔
493
    }
494

495
    /**
496
     * Deserialize a params.
497
     *
498
     * @param array<string,mixed> $data The data.
499
     * @return Params|null Returns the params.
500
     */
501
    public static function deserializeParams(array $data): ?Params {
502

503
        if (0 === count($data)) {
24✔
504
            return null;
16✔
505
        }
506

507
        $model = new Params();
16✔
508
        $model->setSupplierOrderAutoReceipt(ArrayHelper::get($data, SerializerKeys::SUPPLIER_ORDER_AUTO_RECEIPT));
16✔
509

510
        return $model;
16✔
511
    }
512

513
    /**
514
     * Deserialize a phone.
515
     *
516
     * @param array<string,mixed> $data The data.
517
     * @return Phone|null Returns the phone.
518
     */
519
    public static function deserializePhone(array $data): ?Phone {
520

521
        if (0 === count($data)) {
16✔
522
            return null;
8✔
523
        }
524

525
        $model = new Phone();
16✔
526
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
527
        $model->setContext(ArrayHelper::get($data, SerializerKeys::CONTEXT));
16✔
528
        $model->setIsMain(ArrayHelper::get($data, SerializerKeys::IS_MAIN));
16✔
529
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
530
        $model->setNumber(ArrayHelper::get($data, BaseSerializerKeys::NUMBER));
16✔
531
        $model->setType(ArrayHelper::get($data, BaseSerializerKeys::TYPE));
16✔
532

533
        return $model;
16✔
534
    }
535

536
    /**
537
     * Deserialize a price list.
538
     *
539
     * @param array<string,mixed> $data The data.
540
     * @return PriceList|null Returns the price list.
541
     */
542
    public static function deserializePriceList(array $data): ?PriceList {
543

544
        if (0 === count($data)) {
32✔
545
            return null;
16✔
546
        }
547

548
        $model = new PriceList();
24✔
549
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
550
        $model->setDateCreated(ArrayHelper::get($data, SerializerKeys::DATE_CREATED));
24✔
551
        $model->setDateEnd(ArrayHelper::get($data, SerializerKeys::DATE_END));
24✔
552
        $model->setDateStart(ArrayHelper::get($data, SerializerKeys::DATE_START));
24✔
553
        $model->setDateUpdated(ArrayHelper::get($data, SerializerKeys::DATE_UPDATED));
24✔
554
        $model->setExtId(ArrayHelper::get($data, SerializerKeys::EXT_ID));
24✔
555
        $model->setIdSiteOwner(ArrayHelper::get($data, SerializerKeys::ID_SITE_OWNER));
24✔
556
        $model->setIdUser(ArrayHelper::get($data, SerializerKeys::ID_USER));
24✔
557
        $model->setIsValidated(ArrayHelper::get($data, SerializerKeys::IS_VALIDATED));
24✔
558
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
559
        $model->setProdFamily(static::deserializeProdFamily(ArrayHelper::get($data, SerializerKeys::PROD_FAMILY, [])));
24✔
560
        $model->setSupplier(static::deserializeSupplier(ArrayHelper::get($data, SerializerKeys::SUPPLIER, [])));
24✔
561

562
        return $model;
24✔
563
    }
564

565
    /**
566
     * Deserialize a price list supplier product.
567
     *
568
     * @param array<string,mixed> $data The data.
569
     * @return PriceListSupplierProduct|null Returns the ext data.
570
     */
571
    public static function deserializePriceListSupplierProduct(array $data): ?PriceListSupplierProduct {
572

573
        if (0 === count($data)) {
16✔
574
            return null;
8✔
575
        }
576

577
        $model = new PriceListSupplierProduct();
16✔
578
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
579
        $model->setDateEnd(ArrayHelper::get($data, SerializerKeys::DATE_END));
16✔
580
        $model->setDateStart(ArrayHelper::get($data, SerializerKeys::DATE_START));
16✔
581
        $model->setDateUpdated(ArrayHelper::get($data, SerializerKeys::DATE_UPDATED));
16✔
582
        $model->setIsAvailable(ArrayHelper::get($data, SerializerKeys::IS_AVAILABLE));
16✔
583
        $model->setIsCurrent(ArrayHelper::get($data, SerializerKeys::IS_CURRENT));
16✔
584
        $model->setIsFuture(ArrayHelper::get($data, SerializerKeys::IS_FUTURE));
16✔
585
        $model->setIsOrderable(ArrayHelper::get($data, SerializerKeys::IS_ORDERABLE));
16✔
586
        $model->setPriceBillingUnit(ArrayHelper::get($data, SerializerKeys::PRICE_BILLING_UNIT));
16✔
587
        $model->setPriceList(static::deserializePriceList(ArrayHelper::get($data, SerializerKeys::PRICE_LIST, [])));
16✔
588
        $model->setPriceOrderUnit(ArrayHelper::get($data, SerializerKeys::PRICE_ORDER_UNIT));
16✔
589
        $model->setReceivedQuantity(ArrayHelper::get($data, SerializerKeys::RECEIVED_QUANTITY));
16✔
590
        $model->setSupplierProduct(static::deserializeSupplierProduct(ArrayHelper::get($data, SerializerKeys::SUPPLIER_PRODUCT, [])));
16✔
591
        $model->setTargetQuantity(ArrayHelper::get($data, SerializerKeys::TARGET_QUANTITY));
16✔
592

593
        return $model;
16✔
594
    }
595

596
    /**
597
     * Deserialize a prod family.
598
     *
599
     * @param array<string,mixed> $data The data.
600
     * @return ProdFamily|null Returns the prod family.
601
     */
602
    public static function deserializeProdFamily(array $data): ?ProdFamily {
603

604
        if (0 === count($data)) {
40✔
605
            return null;
24✔
606
        }
607

608
        $model = new ProdFamily();
24✔
609
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
610
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
611

612
        return $model;
24✔
613
    }
614

615
    /**
616
     * Deserialize a product.
617
     *
618
     * @param array<string,mixed> $data The data.
619
     * @return Product|null Returns the product.
620
     */
621
    public static function deserializeProduct(array $data): ?Product {
622

623
        if (0 === count($data)) {
32✔
624
            return null;
16✔
625
        }
626

627
        $model = new Product();
24✔
628
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
629
        $model->setBestBeforeStatus(ArrayHelper::get($data, SerializerKeys::BEST_BEFORE_STATUS));
24✔
630
        $model->setBrand(ArrayHelper::get($data, SerializerKeys::BRAND));
24✔
631
        $model->setComposition(ArrayHelper::get($data, SerializerKeys::COMPOSITION));
24✔
632
        $model->setCodeInternal(ArrayHelper::get($data, SerializerKeys::CODE_INTERNAL));
24✔
633
        $model->setDateCreated(ArrayHelper::get($data, SerializerKeys::DATE_CREATED));
24✔
634
        $model->setDateUpdated(ArrayHelper::get($data, SerializerKeys::DATE_UPDATED));
24✔
635
        $model->setDocumentUrl(ArrayHelper::get($data, SerializerKeys::DOCUMENT_URL));
24✔
636
        $model->setEan13(ArrayHelper::get($data, SerializerKeys::EAN_13));
24✔
637
        $model->setExtDocumentProductSheet(ArrayHelper::get($data, SerializerKeys::EXT_DOCUMENT_PRODUCT_SHEET));
24✔
638
        $model->setFamily(static::deserializeFamily(ArrayHelper::get($data, SerializerKeys::FAMILY, [])));
24✔
639
        $model->setIcon(ArrayHelper::get($data, BaseSerializerKeys::ICON));
24✔
640
        $model->setImage(ArrayHelper::get($data, BaseSerializerKeys::IMAGE));
24✔
641
        $model->setIdDocumentProductSheet(ArrayHelper::get($data, SerializerKeys::ID_DOCUMENT_PRODUCT_SHEET));
24✔
642
        $model->setIdSiteOwner(ArrayHelper::get($data, SerializerKeys::ID_SITE_OWNER));
24✔
643
        $model->setImportedOriginSupplierLabel(ArrayHelper::get($data, SerializerKeys::IMPORTED_ORIGIN_SUPPLIER_LABEL));
24✔
644
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
645
        $model->setLabelDocumentProductSheet(ArrayHelper::get($data, SerializerKeys::LABEL_DOCUMENT_PRODUCT_SHEET));
24✔
646
        $model->setLabelPublic(ArrayHelper::get($data, SerializerKeys::LABEL_PUBLIC));
24✔
647
        $model->setNutritionValue(static::deserializeNutritionValue(ArrayHelper::get($data, SerializerKeys::NUTRITION_VALUE, [])));
24✔
648
        $model->setOrigin(static::deserializeOrigin(ArrayHelper::get($data, SerializerKeys::ORIGIN, [])));
24✔
649
        $model->setQuality(static::deserializeQuality(ArrayHelper::get($data, SerializerKeys::QUALITY, [])));
24✔
650
        $model->setRange(static::deserializeRange(ArrayHelper::get($data, SerializerKeys::RANGE, [])));
24✔
651
        $model->setRatioCookedOverRaw(ArrayHelper::get($data, SerializerKeys::RATIO_COOKED_OVER_RAW));
24✔
652
        $model->setRefProductOfSupplier(ArrayHelper::get($data, SerializerKeys::REF_PRODUCT_OF_SUPPLIER));
24✔
653
        $model->setStorageType(static::deserializeStorageType(ArrayHelper::get($data, SerializerKeys::STORAGE_TYPE, [])));
24✔
654
        $model->setSupplierAllergen(ArrayHelper::get($data, SerializerKeys::SUPPLIER_ALLERGEN));
24✔
655
        $model->setSupplierCertification(ArrayHelper::get($data, SerializerKeys::SUPPLIER_CERTIFICATION));
24✔
656
        $model->setSupplierLabel(ArrayHelper::get($data, SerializerKeys::SUPPLIER_LABEL));
24✔
657
        $model->setTax(static::deserializeTax(ArrayHelper::get($data, SerializerKeys::TAX, [])));
24✔
658
        $model->setWeightPerPiece(ArrayHelper::get($data, SerializerKeys::WEIGHT_PER_PIECE));
24✔
659
        $model->setWeightProductionUnit(ArrayHelper::get($data, SerializerKeys::WEIGHT_PRODUCTION_UNIT));
24✔
660

661
        foreach (ArrayHelper::get($data, SerializerKeys::ALLERGENS, []) as $current) {
24✔
662
            $model->addAllergen(static::deserializeAllergen($current));
8✔
663
        }
664

665
        foreach (ArrayHelper::get($data, SerializerKeys::CERTIFICATIONS, []) as $current) {
24✔
666
            $model->addCertification(static::deserializeCertification($current));
8✔
667
        }
668

669
        foreach (ArrayHelper::get($data, SerializerKeys::CODES, []) as $current) {
24✔
670
            $model->addCode(static::deserializeCode($current));
8✔
671
        }
672

673
        foreach (ArrayHelper::get($data, SerializerKeys::GENERICS, []) as $current) {
24✔
674
            $model->addGeneric(static::deserializeGeneric($current));
8✔
675
        }
676

677
        foreach (ArrayHelper::get($data, SerializerKeys::PURCHASE_GENERICS, []) as $current) {
24✔
678
            $model->addPurchaseGeneric(static::deserializeGeneric($current));
×
679
        }
680

681
        return $model;
24✔
682
    }
683

684
    /**
685
     * Deserialize a production unit.
686
     *
687
     * @param array<string,mixed> $data The data.
688
     * @return ProductionUnit|null Returns the production unit.
689
     */
690
    public static function deserializeProductionUnit(array $data): ?ProductionUnit {
691

692
        if (0 === count($data)) {
24✔
693
            return null;
16✔
694
        }
695

696
        $model = new ProductionUnit();
16✔
697
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
698
        $model->setCode(ArrayHelper::get($data, BaseSerializerKeys::CODE));
16✔
699
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
700

701
        return $model;
16✔
702
    }
703

704
    /**
705
     * Deserialize a quality.
706
     *
707
     * @param array<string,mixed> $data The data.
708
     * @return Quality|null Returns the quality.
709
     */
710
    public static function deserializeQuality(array $data): ?Quality {
711

712
        if (0 === count($data)) {
40✔
713
            return null;
24✔
714
        }
715

716
        $model = new Quality();
24✔
717
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
718
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
719

720
        return $model;
24✔
721
    }
722

723
    /**
724
     * Deserialize a range.
725
     *
726
     * @param array<string,mixed> $data The data.
727
     * @return Range|null Returns the range.
728
     */
729
    public static function deserializeRange(array $data): ?Range {
730

731
        if (0 === count($data)) {
40✔
732
            return null;
24✔
733
        }
734

735
        $model = new Range();
24✔
736
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
737
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
738

739
        return $model;
24✔
740
    }
741

742
    /**
743
     * Deserialize a site.
744
     *
745
     * @param array<string,mixed> $data The data.
746
     * @return Site|null Returns the site.
747
     */
748
    public static function deserializeSite(array $data): ?Site {
749

750
        if (0 === count($data)) {
64✔
751
            return null;
56✔
752
        }
753

754
        $model = new Site();
16✔
755

756
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
757
        $model->setAccountingGeneral(static::deserializeAccountingGeneral(ArrayHelper::get($data, SerializerKeys::ACCOUNTING_GENERAL, [])));
16✔
758
        $model->setAddressInvoicing(static::deserializeAddress(ArrayHelper::get($data, SerializerKeys::ADDRESS_INVOICING, [])));
16✔
759
        $model->setApplyToChildrenSites(ArrayHelper::get($data, SerializerKeys::APPLY_TO_CHILDREN_SITES));
16✔
760
        $model->setAutomaticStockTransfer(static::deserializeAutomaticStockTransfer(ArrayHelper::get($data, SerializerKeys::AUTOMATIC_STOCK_TRANSFER, [])));
16✔
761
        $model->setBillableStatus(ArrayHelper::get($data, SerializerKeys::BILLABLE_STATUS));
16✔
762
        $model->setBlockClosingInventoryWithPendingReceipts(ArrayHelper::get($data, SerializerKeys::BLOCK_CLOSING_INVENTORY_WITH_PENDING_RECEIPTS));
16✔
763
        $model->setCodeGln(ArrayHelper::get($data, SerializerKeys::CODE_GLN));
16✔
764
        $model->setCodeInternal(ArrayHelper::get($data, SerializerKeys::CODE_INTERNAL));
16✔
765
        $model->setControlSampleConfig(static::deserializeControlSampleConfig(ArrayHelper::get($data, SerializerKeys::CONTROL_SAMPLE_CONFIG, [])));
16✔
766
        $model->setDateStartBilling(ArrayHelper::get($data, SerializerKeys::DATE_START_BILLING));
16✔
767
        $model->setDepth(ArrayHelper::get($data, SerializerKeys::DEPTH));
16✔
768
        $model->setDisplayNegativeStock(ArrayHelper::get($data, SerializerKeys::DISPLAY_NEGATIVE_STOCK));
16✔
769
        $model->setExtData(static::deserializeExtData(ArrayHelper::get($data, SerializerKeys::EXT_DATA, [])));
16✔
770
        $model->setExtId(ArrayHelper::get($data, SerializerKeys::EXT_ID));
16✔
771
        $model->setHasFinishedProducts(ArrayHelper::get($data, SerializerKeys::HAS_FINISHED_PRODUCTS));
16✔
772
        $model->setIdAccountIdeolys(ArrayHelper::get($data, SerializerKeys::ID_ACCOUNT_IDEOLYS));
16✔
773
        $model->setIdAccountIdeolysRoot(ArrayHelper::get($data, SerializerKeys::ID_ACCOUNT_IDEOLYS_ROOT));
16✔
774
        $model->setIdParent(ArrayHelper::get($data, SerializerKeys::ID_PARENT));
16✔
775
        $model->setIdTree(ArrayHelper::get($data, SerializerKeys::ID_TREE));
16✔
776
        $model->setIsDoingStockTransfer(ArrayHelper::get($data, SerializerKeys::IS_DOING_STOCK_TRANSFER));
16✔
777
        $model->setIsPaymentActive(ArrayHelper::get($data, SerializerKeys::IS_PAYMENT_ACTIVE));
16✔
778
        $model->setIsUsingOnlyOrderableSupplierProduct(ArrayHelper::get($data, SerializerKeys::IS_USING_ONLY_ORDERABLE_SUPPLIER_PRODUCT));
16✔
779
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
780
        $model->setLeftBorder(ArrayHelper::get($data, SerializerKeys::LEFT_BORDER));
16✔
781
        $model->setLink(ArrayHelper::get($data, BaseSerializerKeys::LINK));
16✔
782
        $model->setParams(static::deserializeParams(ArrayHelper::get($data, SerializerKeys::PARAMS, [])));
16✔
783
        $model->setRightBorder(ArrayHelper::get($data, SerializerKeys::RIGHT_BORDER));
16✔
784
        $model->setStatus(ArrayHelper::get($data, SerializerKeys::STATUS));
16✔
785
        $model->setStockValuationType(ArrayHelper::get($data, SerializerKeys::STOCK_VALUATION_TYPE));
16✔
786
        $model->setStockWithdrawalOrigin(ArrayHelper::get($data, SerializerKeys::STOCK_WITHDRAWAL_ORIGIN));
16✔
787
        $model->setSupplier(static::deserializeSupplier(ArrayHelper::get($data, SerializerKeys::SUPPLIER, [])));
16✔
788
        $model->setSupplierProductReference(static::deserializeSupplierProductReference(ArrayHelper::get($data, SerializerKeys::SUPPLIER_PRODUCT_REFERENCE, [])));
16✔
789
        $model->setType(ArrayHelper::get($data, BaseSerializerKeys::TYPE));
16✔
790
        $model->setUseGrossQuantityInRecipe(ArrayHelper::get($data, SerializerKeys::USE_GROSS_QUANTITY_IN_RECIPE));
16✔
791
        $model->setUseNetQuantityInRecipe(ArrayHelper::get($data, SerializerKeys::USE_NET_QUANTITY_IN_RECIPE));
16✔
792
        $model->setZeroQuantityByDefault(ArrayHelper::get($data, SerializerKeys::ZERO_QUANTITY_BY_DEFAULT));
16✔
793

794
        foreach (ArrayHelper::get($data, SerializerKeys::ADDRESSES, []) as $current) {
16✔
795
            $model->addAddress(static::deserializeAddress($current));
8✔
796
        }
797

798
        foreach (ArrayHelper::get($data, SerializerKeys::TAGS, []) as $current) {
16✔
799
            $model->addTag(static::deserializeTag($current));
8✔
800
        }
801

802
        return $model;
16✔
803
    }
804

805
    /**
806
     * Deserialize a storage type.
807
     *
808
     * @param array<string,mixed> $data The data.
809
     * @return StorageType|null Returns the storage type.
810
     */
811
    public static function deserializeStorageType(array $data): ?StorageType {
812

813
        if (0 === count($data)) {
32✔
814
            return null;
24✔
815
        }
816

817
        $model = new StorageType();
16✔
818
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
819
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
820

821
        return $model;
16✔
822
    }
823

824
    /**
825
     * Deserialize a storehouse.
826
     *
827
     * @param array<string,mixed> $data The data.
828
     * @return Storehouse|null Returns the storehouse.
829
     */
830
    public static function deserializeStorehouse(array $data): ?Storehouse {
831

832
        if (0 === count($data)) {
16✔
833
            return null;
8✔
834
        }
835

836
        $model = new Storehouse();
16✔
837
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
838
        $model->setAccountingNumber(ArrayHelper::get($data, SerializerKeys::ACCOUNTING_NUMBER));
16✔
839
        $model->setAddress(static::deserializeAddress(ArrayHelper::get($data, SerializerKeys::ADDRESS, [])));
16✔
840
        $model->setAllClaimWorkflow(ArrayHelper::get($data, SerializerKeys::ALL_CLAIM_WORKFLOW));
16✔
841
        $model->setAnalyticalGroup(static::deserializeAnalyticalGroup(ArrayHelper::get($data, SerializerKeys::ANALYTICAL_GROUP, [])));
16✔
842
        $model->setAutoCloseReceipt(ArrayHelper::get($data, SerializerKeys::AUTO_CLOSE_RECEIPT));
16✔
843
        $model->setAutoSentPreOrder(ArrayHelper::get($data, SerializerKeys::AUTO_SENT_PRE_ORDER));
16✔
844
        $model->setCatchwords(ArrayHelper::get($data, SerializerKeys::CATCHWORDS));
16✔
845
        $model->setCodeGln(ArrayHelper::get($data, SerializerKeys::CODE_GLN));
16✔
846
        $model->setCodeInternal(ArrayHelper::get($data, SerializerKeys::CODE_INTERNAL));
16✔
847
        $model->setDateEnd(ArrayHelper::get($data, SerializerKeys::DATE_END));
16✔
848
        $model->setDateLinked(ArrayHelper::get($data, SerializerKeys::DATE_LINKED));
16✔
849
        $model->setDateStart(ArrayHelper::get($data, SerializerKeys::DATE_START));
16✔
850
        $model->setDateValid(ArrayHelper::get($data, SerializerKeys::DATE_VALID));
16✔
851
        $model->setDeliveryDataSendingModes(ArrayHelper::get($data, SerializerKeys::DELIVERY_DATA_SENDING_MODES));
16✔
852
        $model->setIdOasysSupplier(ArrayHelper::get($data, SerializerKeys::ID_OASYS_SUPPLIER));
16✔
853
        $model->setIdSite(ArrayHelper::get($data, SerializerKeys::ID_SITE));
16✔
854
        $model->setIdSiteOwner(ArrayHelper::get($data, SerializerKeys::ID_SITE_OWNER));
16✔
855
        $model->setIntraCommunityVAT(ArrayHelper::get($data, SerializerKeys::INTRA_COMMUNITY_VAT));
16✔
856
        $model->setIsActive(ArrayHelper::get($data, SerializerKeys::IS_ACTIVE));
16✔
857
        $model->setIsClaimForcedWhenReceiptUpdated(ArrayHelper::get($data, SerializerKeys::IS_CLAIM_FORCED_WHEN_RECEIPT_UPDATED));
16✔
858
        $model->setIsClaimMustBeSendByFax(ArrayHelper::get($data, SerializerKeys::IS_CLAIM_MUST_BE_SEND_BY_FAX));
16✔
859
        $model->setIsClaimMustBeSendByMail(ArrayHelper::get($data, SerializerKeys::IS_CLAIM_MUST_BE_SEND_BY_MAIL));
16✔
860
        $model->setIsCreditNoteMustBeSendByFax(ArrayHelper::get($data, SerializerKeys::IS_CREDIT_NOTE_MUST_BE_SEND_BY_FAX));
16✔
861
        $model->setIsCreditNoteMustBeSendByMail(ArrayHelper::get($data, SerializerKeys::IS_CREDIT_NOTE_MUST_BE_SEND_BY_MAIL));
16✔
862
        $model->setIsDeliveryNoteInvoice(ArrayHelper::get($data, SerializerKeys::IS_DELIVERY_NOTE_INVOICE));
16✔
863
        $model->setIsInClaimWorkflow(ArrayHelper::get($data, SerializerKeys::IS_IN_CLAIM_WORKFLOW));
16✔
864
        $model->setIsOnSupplierDirectory(ArrayHelper::get($data, SerializerKeys::IS_ON_SUPPLIER_DIRECTORY));
16✔
865
        $model->setIsOrderDelayNullable(ArrayHelper::get($data, SerializerKeys::IS_ORDER_DELAY_NULLABLE));
16✔
866
        $model->setIsPreorderAuthorized(ArrayHelper::get($data, SerializerKeys::IS_PREORDER_AUTHORIZED));
16✔
867
        $model->setIsReceiptPricesFromPricelist(ArrayHelper::get($data, SerializerKeys::IS_RECEIPT_PRICES_FROM_PRICELIST));
16✔
868
        $model->setIsShippingCostNullable(ArrayHelper::get($data, SerializerKeys::IS_SHIPPING_COST_NULLABLE));
16✔
869
        $model->setIsStatusLinkInOrderEmail(ArrayHelper::get($data, SerializerKeys::IS_STATUS_LINK_IN_ORDER_EMAIL));
16✔
870
        $model->setIsThresholdStrict(ArrayHelper::get($data, SerializerKeys::IS_THRESHOLD_STRICT));
16✔
871
        $model->setIsUsingDeliveryDaysProduction(ArrayHelper::get($data, SerializerKeys::IS_USING_DELIVERY_DAYS_PRODUCTION));
16✔
872
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
873
        $model->setLogo(ArrayHelper::get($data, BaseSerializerKeys::LOGO));
16✔
874
        $model->setNbDaysBetweenDeliveryAndConsumption(ArrayHelper::get($data, SerializerKeys::NB_DAYS_BETWEEN_DELIVERY_AND_CONSUMPTION));
16✔
875
        $model->setNbDaysDeliveryBeforeProduction(ArrayHelper::get($data, SerializerKeys::NB_DAYS_DELIVERY_BEFORE_PRODUCTION));
16✔
876
        $model->setNetworkFull(ArrayHelper::get($data, SerializerKeys::NETWORK_FULL));
16✔
877
        $model->setOpeningDaysType(ArrayHelper::get($data, SerializerKeys::OPENING_DAYS_TYPE));
16✔
878
        $model->setOrderDelay(ArrayHelper::get($data, SerializerKeys::ORDER_DELAY));
16✔
879
        $model->setOrderSupplierUnit(ArrayHelper::get($data, SerializerKeys::ORDER_SUPPLIER_UNIT));
16✔
880
        $model->setPaymentMethod(ArrayHelper::get($data, SerializerKeys::PAYMENT_METHOD));
16✔
881
        $model->setPaymentTerms(ArrayHelper::get($data, SerializerKeys::PAYMENT_TERMS));
16✔
882
        $model->setPresentation(ArrayHelper::get($data, SerializerKeys::PRESENTATION));
16✔
883
        $model->setPurchaseType(ArrayHelper::get($data, SerializerKeys::PURCHASE_TYPE));
16✔
884
        $model->setRefSiteOfSupplier(ArrayHelper::get($data, SerializerKeys::REF_SITE_OF_SUPPLIER));
16✔
885
        $model->setSendingModes(ArrayHelper::get($data, SerializerKeys::SENDING_MODES));
16✔
886
        $model->setShippingCost(ArrayHelper::get($data, SerializerKeys::SHIPPING_COST));
16✔
887
        $model->setSiret(ArrayHelper::get($data, SerializerKeys::SIRET));
16✔
888
        $model->setSpecifications(ArrayHelper::get($data, SerializerKeys::SPECIFICATIONS));
16✔
889
        $model->setSupplier(static::deserializeSupplier(ArrayHelper::get($data, SerializerKeys::SUPPLIER, [])));
16✔
890
        $model->setThresholdOrder(ArrayHelper::get($data, SerializerKeys::THRESHOLD_ORDER));
16✔
891
        $model->setTypes(ArrayHelper::get($data, SerializerKeys::TYPES));
16✔
892
        $model->setUniverses(ArrayHelper::get($data, SerializerKeys::UNIVERSES));
16✔
893
        $model->setWebsite(ArrayHelper::get($data, SerializerKeys::WEBSITE));
16✔
894

895
        foreach (ArrayHelper::get($data, SerializerKeys::CERTIFICATIONS, []) as $current) {
16✔
896
            $model->addCertification(static::deserializeCertification($current));
×
897
        }
898

899
        foreach (ArrayHelper::get($data, SerializerKeys::DELIVERY_DAYS_PRODUCTION, []) as $current) {
16✔
900
            $model->addDeliveryDaysProduction(static::deserializeDeliveryDaysProduction($current));
8✔
901
        }
902

903
        foreach (ArrayHelper::get($data, SerializerKeys::DELIVERY_WEEKDAYS, []) as $current) {
16✔
904
            $model->addDeliveryWeekday(static::deserializeDeliveryWeekday($current));
8✔
905
        }
906

907
        foreach (ArrayHelper::get($data, SerializerKeys::EMAILS, []) as $current) {
16✔
908
            $model->addEmail(static::deserializeEmail($current));
8✔
909
        }
910

911
        foreach (ArrayHelper::get($data, SerializerKeys::FAXES, []) as $current) {
16✔
912
            $model->addFax(static::deserializeFax($current));
8✔
913
        }
914

915
        foreach (ArrayHelper::get($data, SerializerKeys::LINKED_USERS, []) as $current) {
16✔
916
            $model->addLinkedUser(static::deserializeLinkedUser($current));
8✔
917
        }
918

919
        foreach (ArrayHelper::get($data, SerializerKeys::PHONES, []) as $current) {
16✔
920
            $model->addPhone(static::deserializePhone($current));
8✔
921
        }
922

923
        foreach (ArrayHelper::get($data, SerializerKeys::PROD_FAMILIES, []) as $current) {
16✔
924
            $model->addProdFamily(static::deserializeProdFamily($current));
8✔
925
        }
926

927
        return $model;
16✔
928
    }
929

930
    /**
931
     * Deserialize a supplier.
932
     *
933
     * @param array<string,mixed> $data The data.
934
     * @return Supplier|null Returns the supplier.
935
     */
936
    public static function deserializeSupplier(array $data): ?Supplier {
937

938
        if (0 === count($data)) {
64✔
939
            return null;
40✔
940
        }
941

942
        $model = new Supplier();
32✔
943
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
32✔
944
        $model->setCodeInternal(ArrayHelper::get($data, SerializerKeys::CODE_INTERNAL));
32✔
945
        $model->setIsActive(ArrayHelper::get($data, SerializerKeys::IS_ACTIVE));
32✔
946
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
32✔
947

948
        return $model;
32✔
949
    }
950

951
    /**
952
     * Deserialize a supplier product.
953
     *
954
     * @param array<string,mixed> $data The data.
955
     * @return SupplierProduct|null Returns the ext data.
956
     */
957
    public static function deserializeSupplierProduct(array $data): ?SupplierProduct {
958

959
        if (0 === count($data)) {
24✔
960
            return null;
16✔
961
        }
962

963
        $model = new SupplierProduct();
16✔
964
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
965
        $model->setBillingUnit(ArrayHelper::get($data, SerializerKeys::BILLING_UNIT));
16✔
966
        $model->setChain(ArrayHelper::get($data, SerializerKeys::CHAIN));
16✔
967
        $model->setCodeInternal(ArrayHelper::get($data, SerializerKeys::CODE_INTERNAL));
16✔
968
        $model->setDairySubsidy(static::deserializeDairySubsidy(ArrayHelper::get($data, SerializerKeys::DAIRY_SUBSIDY, [])));
16✔
969
        $model->setDateCreated(ArrayHelper::get($data, SerializerKeys::DATE_CREATED));
16✔
970
        $model->setDateUpdated(ArrayHelper::get($data, SerializerKeys::DATE_UPDATED));
16✔
971
        $model->setExtId(ArrayHelper::get($data, SerializerKeys::EXT_ID));
16✔
972
        $model->setIdDocumentProductSheet(ArrayHelper::get($data, SerializerKeys::ID_DOCUMENT_PRODUCT_SHEET));
16✔
973
        $model->setIdSiteOwner(ArrayHelper::get($data, SerializerKeys::ID_SITE_OWNER));
16✔
974
        $model->setIsActive(ArrayHelper::get($data, SerializerKeys::IS_ACTIVE));
16✔
975
        $model->setIsDecimalAllowed(ArrayHelper::get($data, SerializerKeys::IS_DECIMAL_ALLOWED));
16✔
976
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
977
        $model->setMinOrderQty(ArrayHelper::get($data, SerializerKeys::MIN_ORDER_QTY));
16✔
978
        $model->setNbBillingPerOrder(ArrayHelper::get($data, SerializerKeys::NB_BILLING_PER_ORDER));
16✔
979
        $model->setNbProductionPerOrders(ArrayHelper::get($data, SerializerKeys::NB_PRODUCTION_PER_ORDERS));
16✔
980
        $model->setNbStoragePerOrder(ArrayHelper::get($data, SerializerKeys::NB_STORAGE_PER_ORDER));
16✔
981
        $model->setOrderUnit(ArrayHelper::get($data, SerializerKeys::ORDER_UNIT));
16✔
982
        $model->setPackagingLevel(static::deserializePackagingLevel(ArrayHelper::get($data, SerializerKeys::PACKAGING_LEVEL, [])));
16✔
983
        $model->setProduct(static::deserializeProduct(ArrayHelper::get($data, SerializerKeys::PRODUCT, [])));
16✔
984
        $model->setPreOrderDelay(ArrayHelper::get($data, SerializerKeys::PRE_ORDER_DELAY));
16✔
985
        $model->setReference(ArrayHelper::get($data, BaseSerializerKeys::REFERENCE));
16✔
986
        $model->setStorageUnit(ArrayHelper::get($data, SerializerKeys::STORAGE_UNIT));
16✔
987
        $model->setWeightOrderUnit(ArrayHelper::get($data, SerializerKeys::WEIGHT_ORDER_UNIT));
16✔
988

989
        return $model;
16✔
990
    }
991

992
    /**
993
     * Deserialize a supplier product reference.
994
     *
995
     * @param array<string,mixed> $data The data.
996
     * @return SupplierProductReference|null Returns the supplier product reference.
997
     */
998
    public static function deserializeSupplierProductReference(array $data): ?SupplierProductReference {
999

1000
        if (0 === count($data)) {
24✔
1001
            return null;
16✔
1002
        }
1003

1004
        $model = new SupplierProductReference();
16✔
1005
        $model->setApplyToChildrenSites(ArrayHelper::get($data, SerializerKeys::APPLY_TO_CHILDREN_SITES));
16✔
1006
        $model->setIsMandatory(ArrayHelper::get($data, SerializerKeys::IS_MANDATORY));
16✔
1007

1008
        return $model;
16✔
1009
    }
1010

1011
    /**
1012
     * Deserialize a tag.
1013
     *
1014
     * @param array<string,mixed> $data The data.
1015
     * @return Tag|null Returns the tag.
1016
     */
1017
    public static function deserializeTag(array $data): ?Tag {
1018

1019
        if (0 === count($data)) {
16✔
1020
            return null;
8✔
1021
        }
1022

1023
        $model = new Tag();
16✔
1024
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
1025
        $model->setBackgroundColor(ArrayHelper::get($data, SerializerKeys::BACKGROUND_COLOR));
16✔
1026
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
1027
        $model->setType(ArrayHelper::get($data, BaseSerializerKeys::TYPE));
16✔
1028

1029
        return $model;
16✔
1030
    }
1031

1032
    /**
1033
     * Deserialize a tax.
1034
     *
1035
     * @param array<string,mixed> $data The data.
1036
     * @return Tax|null Returns the tax.
1037
     */
1038
    public static function deserializeTax(array $data): ?Tax {
1039

1040
        if (0 === count($data)) {
32✔
1041
            return null;
24✔
1042
        }
1043

1044
        $model = new Tax();
16✔
1045
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
16✔
1046
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
16✔
1047
        $model->setValue(ArrayHelper::get($data, BaseSerializerKeys::VALUE));
16✔
1048

1049
        return $model;
16✔
1050
    }
1051

1052
    /**
1053
     * Deserialize a tree.
1054
     *
1055
     * @param array<string,mixed> $data The data.
1056
     * @return Tree|null Returns the tree.
1057
     */
1058
    public static function deserializeTree(array $data): ?Tree {
1059

1060
        if (0 === count($data)) {
8✔
1061
            return null;
8✔
1062
        }
1063

1064
        $model = new Tree();
8✔
1065
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
8✔
1066
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
8✔
1067

1068
        return $model;
8✔
1069
    }
1070

1071
    /**
1072
     * Deserialize a unit.
1073
     *
1074
     * @param array<string,mixed> $data The data.
1075
     * @return Unit|null Returns the production unit.
1076
     */
1077
    public static function deserializeUnit(array $data): ?Unit {
1078

1079
        if (0 === count($data)) {
32✔
1080
            return null;
16✔
1081
        }
1082

1083
        $model = new Unit();
24✔
1084
        $model->setId(ArrayHelper::get($data, BaseSerializerKeys::ID));
24✔
1085
        $model->setCode(ArrayHelper::get($data, BaseSerializerKeys::CODE));
24✔
1086
        $model->setLabel(ArrayHelper::get($data, BaseSerializerKeys::LABEL));
24✔
1087

1088
        return $model;
24✔
1089
    }
1090
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc