ListEnvoi   F
last analyzed

Complexity

Total Complexity 84

Size/Duplication

Total Lines 463
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 127
c 1
b 0
f 0
dl 0
loc 463
rs 2
wmc 84

84 Methods

Rating   Name   Duplication   Size   Complexity  
A getNbColisQteExcepteeMD() 0 3 1
A setHorsSite() 0 3 1
A getReference2() 0 3 1
A setSadMiseLieuUtil() 0 3 1
A setLargeurTotale() 0 3 1
A getCodeSaBureauRestant() 0 3 1
A setCodeProduit() 0 3 1
A getExpediteur() 0 3 1
A setSmsNotificationDestinataire() 0 3 1
A getSadLivEtage() 0 3 1
A getEmailPriseEnChargeEnlevement() 0 3 1
A setSadSwap() 0 3 1
A setCodeClient() 0 3 1
A setDestinataire() 0 3 1
A getCodeIncotermConditionLivraison() 0 3 1
A getSadMiseLieuUtil() 0 3 1
A setEmailNotificationDestinataire() 0 3 1
A setPoidsTotal() 0 3 1
A setOptionLivraison() 0 3 1
A getSadDepotage() 0 3 1
A getLongueurTotale() 0 3 1
A getEtage() 0 3 1
A getDestinataire() 0 3 1
A getInstructionEnlevement() 0 3 1
A getReference1() 0 3 1
A setDangerEnvQteLimiteeMD() 0 3 1
A getPoidsQteLimiteeMD() 0 3 1
A getCodeProduit() 0 3 1
A getAnimauxPlumes() 0 3 1
A setNoSuivi() 0 3 1
A getEmailNotificationExpediteur() 0 3 1
A setCodeSa() 0 3 1
A setSadDepotage() 0 3 1
A setCodeSaBureauRestant() 0 3 1
A getVolumeTotal() 0 3 1
A setInstructionEnlevement() 0 3 1
A setDateDepartEnlevement() 0 3 1
A getNoSuivi() 0 3 1
A setNosUmsAEtiqueter() 0 3 1
A getIdPointRelais() 0 3 1
A getDateDepartEnlevement() 0 3 1
A getNoRecepisse() 0 3 1
A getEmailConfirmationEnlevement() 0 3 1
A getSadSwap() 0 3 1
A setPoidsQteLimiteeMD() 0 3 1
A getEmailNotificationDestinataire() 0 3 1
A getDateLivraison() 0 3 1
A setVolumeTotal() 0 3 1
A setEmailNotificationExpediteur() 0 3 1
A getNosUmsAEtiqueter() 0 3 1
A getOptionLivraison() 0 3 1
A setCodeIncotermConditionLivraison() 0 3 1
A getListUmgs() 0 3 1
A getDangerEnvQteLimiteeMD() 0 3 1
A getNatureMarchandise() 0 3 1
A setEmailConfirmationEnlevement() 0 3 1
A getLargeurTotale() 0 3 1
A getPoidsTotal() 0 3 1
A setPeriodePreferenceEnlevement() 0 3 1
A setDangerEnvQteExcepteeMD() 0 3 1
A getHauteurTotale() 0 3 1
A getPeriodePreferenceEnlevement() 0 3 1
A setInstructionLivraison() 0 3 1
A setIdPointRelais() 0 3 1
A setExpediteur() 0 3 1
A setReference1() 0 3 1
A setReference2() 0 3 1
A getCodeClient() 0 3 1
A setNoRecepisse() 0 3 1
A getHorsSite() 0 3 1
A setHauteurTotale() 0 3 1
A getSmsNotificationDestinataire() 0 3 1
A setNatureMarchandise() 0 3 1
A setAnimauxPlumes() 0 3 1
A setEtage() 0 3 1
A getCodeSa() 0 3 1
A getInstructionLivraison() 0 3 1
A setNbColisQteExcepteeMD() 0 3 1
A setSadLivEtage() 0 3 1
A setEmailPriseEnChargeEnlevement() 0 3 1
A setListUmgs() 0 3 1
A setLongueurTotale() 0 3 1
A setDateLivraison() 0 3 1
A getDangerEnvQteExcepteeMD() 0 3 1

How to fix   Complexity   

Complex Class

Complex classes like ListEnvoi often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use ListEnvoi, and based on these observations, apply Extract Interface, too.

1
<?php
2
declare(strict_types=1);
3
4
namespace GeodisBundle\Domain;
5
6
use GeodisBundle\Domain\Base\Model;
7
8
/**
9
 * Class ListEnvoi.
10
 * codeClient                               Compte facturation client 074777 ou 074535
11
 * codeProduit                              Code prestation commerciale ATK ou CXI
12
 * codeSa                                   Code Agence GEODIS001044
13
 * dateDepartEnlevement                     YYYY/MM/DDDate de départJ-30 à J+30
14
 * destinataire                             Array of destinataire datas
15
 * expediteur                               Array of expediteur datas
16
 * listUmgs                                 Array of shipping datas
17
 * codeIncotermConditionLivraison           Code incoterm   Contrôle sur code incoterm espece
18
 * dangerEnvQteExcepteeMD                   Produit dangereux pour l'environnement
19
 * emailNotificationDestinataire            Adresse mail pour la notification mail au destinataire Obligatoire si option à la livraison= RDW
20
 * emailPriseEnChargeEnlevement             Adresse mail destinataire pour la prise en charge d'enlèvement
21
 * horsSite                                 Expédition depuis un autre site
22
 * instructionLivraison                     Instructions à la livraison
23
 * longueurTotale                           Longueur total Expédition
24
 * nbColisQteExcepteeMD                     Nbre colis Qté exceptée
25
 * nosUmsAEtiqueter                         Numero du colis à étiqueter
26
 * poidsTotal                               Poids total ExpéditionObligatoire si poids unitaire non renseigné
27
 * reference1                               Référence 1 client
28
 * reference2                               Référence 2client
29
 * animauxPlumes                            Animaux à plumes
30
 * codeSaBureauRestant                      Code agence GEODIS de livraison A renseigner si option livraison= BRT
31
 * dangerEnvQteLimiteeMD                    Poids Qté exceptée MD
32
 * dateLivraison                            YYYY/MM/DDDate souhaitée de livraison Contrôle sur calendrier Espace
33
 * emailConfirmationEnlevement              Adresse mail destinataire pour la confirmation d'enlèvement
34
 * emailNotificationExpediteur              Adresse mail destinataire pour la notification mail au destinataire
35
 * etage                                    Numéro d'étageObligatoire si Montée à l'etage= true
36
 * hauteurTotale                            Hauteur totale Expédition
37
 * idPointRelais                            Identifiant du Point    relais de livraison    A renseigner si code produit= RCX
38
 * instructionEnlevement                    Instructions à l'Enlèvement
39
 * largeurTotale                            Largeur Totale Expédition
40
 * natureMarchandise                        Nature de marchandise
41
 * noRecepisse                              Numéro de cérépissé GEODIS Défini par l'application et renvoyé dans la réponse. A renseigner si modification sur une Expédition
42
 * noSuivi                                  Numéro de Suivi GEODIS Défini par l'application et renvoyé dans la réponse. A renseigner si modification sur une Expédition
43
 * optionLivraison                          BRT / RDW / RDT / DSL / SAM Facultatif    Options à la livraison
44
 * periodePreferenceEnlevement              MAT / APM FacultatifMAT: Matin APM: Après-midiCréneau Enlèvement
45
 * poidsQteLimiteeMD                        Poids qté limitée MD
46
 * sadDepotage                              Service dépotage    Contrôle si service autorisé sur fiche client
47
 * sadLivEtage                              Service livraison à l'étage Contrôle si service autorisé sur fiche client
48
 * sadMiseLieuUtil                          Service mise en lieu d'utilisationContrôle si service autorisé sur fiche client
49
 * sadSwap                                  Service echange simple
50
 * smsNotificationDestinataire              Numéro portable pour la notification SMS au destinataire
51
 * volumeTotal                              Volume total Expédition
52
 *
53
 * * // Not sure where the following propreties go \\
54
 * Donnée Expédition
55
 * int    qteUniteTaxation                Facultatif      Quantité unité de taxation
56
 * int    codeUniteTaxation               Facultatif      Code unité taxation
57
 * int    montantValeurDeclaree           Facultatif      Montant de la Valeur déclarée
58
 * int    codeDeviseValeurDeclaree        Facultatif      Code devise pour la Valeur déclarée Contrôle sur devise espace
59
 * int    montantContreRemboursement      Facultatif      Montant du Contre-remboursement
60
 * int    codeDeviseCodeContreRemboursement Facultatif    Code devise du Contre-remboursement Contrôle sur devise espace
61
 *
62
 * Matières Dangereuses
63
 * int    noONU0                          Facultatif      Numéro ONU
64
 * int    groupeEmballage0                Facultatif      Groupe d'emballage
65
 * int    classeADR0                      Facultatif      Classe ADR
66
 * string codeTypeEmballage0              Facultatif      Type emballage
67
 * int    nbEmballages0                   Facultatif      Nbre d'emballage
68
 * string nomTechnique0                   Facultatif      Nom technique
69
 * string codeQuantite0                   Facultatif      Unité
70
 * int    quantite0                       Facultatif      Qté
71
 * bool   dangerEnv0                      Facultatif      Produit dangereux pour l'environnement
72
 *
73
 * Vins et Spiritueux
74
 * string regimeFiscal0                   Facultatif      Régime Fiscal
75
 * int    nbCols0                         Facultatif      Nbre colis Qté exceptée
76
 * int    contenance0                     Facultatif      Contenance
77
 * int    volumeEnDroits0                 Facultatif      Volume en droits
78
 * int    noTitreMvtRefAdmin0             Facultatif      N° titre de mouvement
79
 * int    dureeTransport0                 Facultatif      Durée transport
80
 */
81
82
class ListEnvoi extends Model
83
{
84
    public string $codeClient;
85
    public string $codeProduit;
86
    public string $codeSa;
87
    public string $dateDepartEnlevement;
88
    public array $destinataire;
89
    public array $expediteur;
90
    public array $listUmgs;
91
    public ?bool $animauxPlumes = null;
92
    public ?int $codeIncotermConditionLivraison = null;
93
    public ?int $codeSaBureauRestant = null;
94
    public ?bool $dangerEnvQteExcepteeMD = null;
95
    public ?int $dangerEnvQteLimiteeMD = null;
96
    public ?string $dateLivraison = null;
97
    public ?string $emailConfirmationEnlevement = null;
98
    public ?string $emailNotificationDestinataire = null;
99
    public ?string $emailNotificationExpediteur = null;
100
    public ?string $emailPriseEnChargeEnlevement = null;
101
    public ?int $etage = null;
102
    public ?int $hauteurTotale = null;
103
    public ?bool $horsSite = null;
104
    public ?int $idPointRelais = null;
105
    public ?string $instructionEnlevement = null;
106
    public ?string $instructionLivraison = null;
107
    public ?int $largeurTotale = null;
108
    public ?int $longueurTotale = null;
109
    public ?string $natureMarchandise = null;
110
    public ?int $nbColisQteExcepteeMD = null;
111
    public ?int $noRecepisse = null;
112
    public ?int $noSuivi = null;
113
    public ?int $nosUmsAEtiqueter = null;
114
    public ?string $optionLivraison = null;
115
    public ?string $periodePreferenceEnlevement = null;
116
    public ?int $poidsQteLimiteeMD = null;
117
    public ?int $poidsTotal = null;
118
    public ?string $reference1 = null;
119
    public ?string $reference2 = null;
120
    public ?bool $sadDepotage = null;
121
    public ?bool $sadLivEtage = null;
122
    public ?bool $sadMiseLieuUtil = null;
123
    public ?bool $sadSwap = null;
124
    public ?string $smsNotificationDestinataire = null;
125
    public ?int $volumeTotal = null;
126
127
    public function getCodeClient(): string
128
    {
129
        return $this->codeClient;
130
    }
131
132
    public function setCodeClient(string $codeClient): void
133
    {
134
        $this->codeClient = $codeClient;
135
    }
136
137
    public function getCodeProduit(): string
138
    {
139
        return $this->codeProduit;
140
    }
141
142
    public function setCodeProduit(string $codeProduit): void
143
    {
144
        $this->codeProduit = $codeProduit;
145
    }
146
147
    public function getCodeSa(): string
148
    {
149
        return $this->codeSa;
150
    }
151
152
    public function setCodeSa(string $codeSa): void
153
    {
154
        $this->codeSa = $codeSa;
155
    }
156
157
    public function getDateDepartEnlevement(): string
158
    {
159
        return $this->dateDepartEnlevement;
160
    }
161
162
    public function setDateDepartEnlevement(string $dateDepartEnlevement): void
163
    {
164
        $this->dateDepartEnlevement = $dateDepartEnlevement;
165
    }
166
167
    public function getDestinataire(): array
168
    {
169
        return $this->destinataire;
170
    }
171
172
    public function setDestinataire(array $destinataire): void
173
    {
174
        $this->destinataire = $destinataire;
175
    }
176
177
    public function getExpediteur(): array
178
    {
179
        return $this->expediteur;
180
    }
181
182
    public function setExpediteur(array $expediteur): void
183
    {
184
        $this->expediteur = $expediteur;
185
    }
186
187
    public function getListUmgs(): array
188
    {
189
        return $this->listUmgs;
190
    }
191
192
    public function setListUmgs(array $listUmgs): void
193
    {
194
        $this->listUmgs = $listUmgs;
195
    }
196
197
    public function getAnimauxPlumes(): ?bool
198
    {
199
        return $this->animauxPlumes;
200
    }
201
202
    public function setAnimauxPlumes(?bool $animauxPlumes): void
203
    {
204
        $this->animauxPlumes = $animauxPlumes;
205
    }
206
207
    public function getCodeIncotermConditionLivraison(): ?int
208
    {
209
        return $this->codeIncotermConditionLivraison;
210
    }
211
212
    public function setCodeIncotermConditionLivraison(?int $codeIncotermConditionLivraison): void
213
    {
214
        $this->codeIncotermConditionLivraison = $codeIncotermConditionLivraison;
215
    }
216
217
    public function getCodeSaBureauRestant(): ?int
218
    {
219
        return $this->codeSaBureauRestant;
220
    }
221
222
    public function setCodeSaBureauRestant(?int $codeSaBureauRestant): void
223
    {
224
        $this->codeSaBureauRestant = $codeSaBureauRestant;
225
    }
226
227
    public function getDangerEnvQteExcepteeMD(): ?bool
228
    {
229
        return $this->dangerEnvQteExcepteeMD;
230
    }
231
232
    public function setDangerEnvQteExcepteeMD(?bool $dangerEnvQteExcepteeMD): void
233
    {
234
        $this->dangerEnvQteExcepteeMD = $dangerEnvQteExcepteeMD;
235
    }
236
237
    public function getDangerEnvQteLimiteeMD(): ?int
238
    {
239
        return $this->dangerEnvQteLimiteeMD;
240
    }
241
242
    public function setDangerEnvQteLimiteeMD(?int $dangerEnvQteLimiteeMD): void
243
    {
244
        $this->dangerEnvQteLimiteeMD = $dangerEnvQteLimiteeMD;
245
    }
246
247
    public function getDateLivraison(): ?string
248
    {
249
        return $this->dateLivraison;
250
    }
251
252
    public function setDateLivraison(?string $dateLivraison): void
253
    {
254
        $this->dateLivraison = $dateLivraison;
255
    }
256
257
    public function getEmailConfirmationEnlevement(): ?string
258
    {
259
        return $this->emailConfirmationEnlevement;
260
    }
261
262
    public function setEmailConfirmationEnlevement(?string $emailConfirmationEnlevement): void
263
    {
264
        $this->emailConfirmationEnlevement = $emailConfirmationEnlevement;
265
    }
266
267
    public function getEmailNotificationDestinataire(): ?string
268
    {
269
        return $this->emailNotificationDestinataire;
270
    }
271
272
    public function setEmailNotificationDestinataire(?string $emailNotificationDestinataire): void
273
    {
274
        $this->emailNotificationDestinataire = $emailNotificationDestinataire;
275
    }
276
277
    public function getEmailNotificationExpediteur(): ?string
278
    {
279
        return $this->emailNotificationExpediteur;
280
    }
281
282
    public function setEmailNotificationExpediteur(?string $emailNotificationExpediteur): void
283
    {
284
        $this->emailNotificationExpediteur = $emailNotificationExpediteur;
285
    }
286
287
    public function getEmailPriseEnChargeEnlevement(): ?string
288
    {
289
        return $this->emailPriseEnChargeEnlevement;
290
    }
291
292
    public function setEmailPriseEnChargeEnlevement(?string $emailPriseEnChargeEnlevement): void
293
    {
294
        $this->emailPriseEnChargeEnlevement = $emailPriseEnChargeEnlevement;
295
    }
296
297
    public function getEtage(): ?int
298
    {
299
        return $this->etage;
300
    }
301
302
    public function setEtage(?int $etage): void
303
    {
304
        $this->etage = $etage;
305
    }
306
307
    public function getHauteurTotale(): ?int
308
    {
309
        return $this->hauteurTotale;
310
    }
311
312
    public function setHauteurTotale(?int $hauteurTotale): void
313
    {
314
        $this->hauteurTotale = $hauteurTotale;
315
    }
316
317
    public function getHorsSite(): ?bool
318
    {
319
        return $this->horsSite;
320
    }
321
322
    public function setHorsSite(?bool $horsSite): void
323
    {
324
        $this->horsSite = $horsSite;
325
    }
326
327
    public function getIdPointRelais(): ?int
328
    {
329
        return $this->idPointRelais;
330
    }
331
332
    public function setIdPointRelais(?int $idPointRelais): void
333
    {
334
        $this->idPointRelais = $idPointRelais;
335
    }
336
337
    public function getInstructionEnlevement(): ?string
338
    {
339
        return $this->instructionEnlevement;
340
    }
341
342
    public function setInstructionEnlevement(?string $instructionEnlevement): void
343
    {
344
        $this->instructionEnlevement = $instructionEnlevement;
345
    }
346
347
    public function getInstructionLivraison(): ?string
348
    {
349
        return $this->instructionLivraison;
350
    }
351
352
    public function setInstructionLivraison(?string $instructionLivraison): void
353
    {
354
        $this->instructionLivraison = $instructionLivraison;
355
    }
356
357
    public function getLargeurTotale(): ?int
358
    {
359
        return $this->largeurTotale;
360
    }
361
362
    public function setLargeurTotale(?int $largeurTotale): void
363
    {
364
        $this->largeurTotale = $largeurTotale;
365
    }
366
367
    public function getLongueurTotale(): ?int
368
    {
369
        return $this->longueurTotale;
370
    }
371
372
    public function setLongueurTotale(?int $longueurTotale): void
373
    {
374
        $this->longueurTotale = $longueurTotale;
375
    }
376
377
    public function getNatureMarchandise(): ?string
378
    {
379
        return $this->natureMarchandise;
380
    }
381
382
    public function setNatureMarchandise(?string $natureMarchandise): void
383
    {
384
        $this->natureMarchandise = $natureMarchandise;
385
    }
386
387
    public function getNbColisQteExcepteeMD(): ?int
388
    {
389
        return $this->nbColisQteExcepteeMD;
390
    }
391
392
    public function setNbColisQteExcepteeMD(?int $nbColisQteExcepteeMD): void
393
    {
394
        $this->nbColisQteExcepteeMD = $nbColisQteExcepteeMD;
395
    }
396
397
    public function getNoRecepisse(): ?int
398
    {
399
        return $this->noRecepisse;
400
    }
401
402
    public function setNoRecepisse(?int $noRecepisse): void
403
    {
404
        $this->noRecepisse = $noRecepisse;
405
    }
406
407
    public function getNoSuivi(): ?int
408
    {
409
        return $this->noSuivi;
410
    }
411
412
    public function setNoSuivi(?int $noSuivi): void
413
    {
414
        $this->noSuivi = $noSuivi;
415
    }
416
417
    public function getNosUmsAEtiqueter(): ?int
418
    {
419
        return $this->nosUmsAEtiqueter;
420
    }
421
422
    public function setNosUmsAEtiqueter(?int $nosUmsAEtiqueter): void
423
    {
424
        $this->nosUmsAEtiqueter = $nosUmsAEtiqueter;
425
    }
426
427
    public function getOptionLivraison(): ?string
428
    {
429
        return $this->optionLivraison;
430
    }
431
432
    public function setOptionLivraison(?string $optionLivraison): void
433
    {
434
        $this->optionLivraison = $optionLivraison;
435
    }
436
437
    public function getPeriodePreferenceEnlevement(): ?string
438
    {
439
        return $this->periodePreferenceEnlevement;
440
    }
441
442
    public function setPeriodePreferenceEnlevement(?string $periodePreferenceEnlevement): void
443
    {
444
        $this->periodePreferenceEnlevement = $periodePreferenceEnlevement;
445
    }
446
447
    public function getPoidsQteLimiteeMD(): ?int
448
    {
449
        return $this->poidsQteLimiteeMD;
450
    }
451
452
    public function setPoidsQteLimiteeMD(?int $poidsQteLimiteeMD): void
453
    {
454
        $this->poidsQteLimiteeMD = $poidsQteLimiteeMD;
455
    }
456
457
    public function getPoidsTotal(): ?int
458
    {
459
        return $this->poidsTotal;
460
    }
461
462
    public function setPoidsTotal(?int $poidsTotal): void
463
    {
464
        $this->poidsTotal = $poidsTotal;
465
    }
466
467
    public function getReference1(): ?string
468
    {
469
        return $this->reference1;
470
    }
471
472
    public function setReference1(?string $reference1): void
473
    {
474
        $this->reference1 = $reference1;
475
    }
476
477
    public function getReference2(): ?string
478
    {
479
        return $this->reference2;
480
    }
481
482
    public function setReference2(?string $reference2): void
483
    {
484
        $this->reference2 = $reference2;
485
    }
486
487
    public function getSadDepotage(): ?bool
488
    {
489
        return $this->sadDepotage;
490
    }
491
492
    public function setSadDepotage(?bool $sadDepotage): void
493
    {
494
        $this->sadDepotage = $sadDepotage;
495
    }
496
497
    public function getSadLivEtage(): ?bool
498
    {
499
        return $this->sadLivEtage;
500
    }
501
502
    public function setSadLivEtage(?bool $sadLivEtage): void
503
    {
504
        $this->sadLivEtage = $sadLivEtage;
505
    }
506
507
    public function getSadMiseLieuUtil(): ?bool
508
    {
509
        return $this->sadMiseLieuUtil;
510
    }
511
512
    public function setSadMiseLieuUtil(?bool $sadMiseLieuUtil): void
513
    {
514
        $this->sadMiseLieuUtil = $sadMiseLieuUtil;
515
    }
516
517
    public function getSadSwap(): ?bool
518
    {
519
        return $this->sadSwap;
520
    }
521
522
    public function setSadSwap(?bool $sadSwap): void
523
    {
524
        $this->sadSwap = $sadSwap;
525
    }
526
527
    public function getSmsNotificationDestinataire(): ?string
528
    {
529
        return $this->smsNotificationDestinataire;
530
    }
531
532
    public function setSmsNotificationDestinataire(?string $smsNotificationDestinataire): void
533
    {
534
        $this->smsNotificationDestinataire = $smsNotificationDestinataire;
535
    }
536
537
    public function getVolumeTotal(): ?int
538
    {
539
        return $this->volumeTotal;
540
    }
541
542
    public function setVolumeTotal(?int $volumeTotal): void
543
    {
544
        $this->volumeTotal = $volumeTotal;
545
    }
546
}
547