OrderProduct   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 0
dl 0
loc 75
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A getGtin() 0 4 1
A getQuantity() 0 4 1
A getSerialNumberType() 0 4 1
A getTemplateId() 0 4 1
A getSerialNumbers() 0 4 1
A setSerialNumbers() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Lamoda\OmsClient\V2\Dto;
6
7
abstract class OrderProduct
8
{
9
    // Способ формирования индивидуального серийного номера
10
    public const SERIAL_NUMBER_TYPE_SELF_MADE = 'SELF_MADE'; // Самостоятельно
11
    public const SERIAL_NUMBER_TYPE_OPERATOR = 'OPERATOR'; // Оператором ГИС МТ
12
13
    // Тип кода маркировки
14
    public const MARKING_TYPE_UNIT = 'UNIT'; // Единица товара
15
    public const MARKING_TYPE_BUNDLE  = 'BUNDLE'; // Комплект
16
    public const MARKING_TYPE_GROUP = 'GROUP'; // Групповая потребительская упаковка
17
    public const MARKING_TYPE_SET = 'SET'; // Набор
18
19
    // Шаблоны кодов маркировки (пока мы используем только первый)
20
    public const MARKING_TEMPLATE_FIRST  = 1; // 01 + GTIN + 21 + serial (13 chars)
21
    public const MARKING_TEMPLATE_SECOND = 2; // 01 + GTIN + 21 + serial (13 chars)
22
23
    /**
24
     * @var string КТ (GTIN) продукта
25
     */
26
    private $gtin;
27
    /**
28
     * @var int Количество КМ
29
     */
30
    private $quantity;
31
    /**
32
     * @var string Способ генерации серийных номеров.
33
     */
34
    private $serialNumberType;
35
    /**
36
     * @var string[] | null Массив серийных номеров (Это поле указывается, если serialNumber = SELF_MADE)
37
     */
38
    private $serialNumbers;
39
    /**
40
     * @var integer Идентификатор шаблона КМ
41
     */
42
    private $templateId;
43
44
    public function __construct(string $gtin, int $quantity, string $serialNumberType, int $templateId)
45
    {
46
        $this->gtin = $gtin;
47
        $this->quantity = $quantity;
48
        $this->serialNumberType = $serialNumberType;
49
        $this->templateId = $templateId;
50
    }
51
52
    public function getGtin(): string
53
    {
54
        return $this->gtin;
55
    }
56
57
    public function getQuantity(): int
58
    {
59
        return $this->quantity;
60
    }
61
62
    public function getSerialNumberType(): string
63
    {
64
        return $this->serialNumberType;
65
    }
66
67
    public function getTemplateId(): int
68
    {
69
        return $this->templateId;
70
    }
71
72
    public function getSerialNumbers(): ?array
73
    {
74
        return $this->serialNumbers;
75
    }
76
77
    public function setSerialNumbers(?array $serialNumbers): void
78
    {
79
        $this->serialNumbers = $serialNumbers;
80
    }
81
}