Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 37
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
IntegrationProductDTO
0.00% covered (danger)
0.00%
0 / 37
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
2
 toArray
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
2
 fromRequest
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\Integration\DTOs;
4
5use Domain\Shared\Interfaces\DataTransferObjectInterface;
6use Illuminate\Foundation\Http\FormRequest;
7
8class IntegrationProductDTO implements DataTransferObjectInterface
9{
10    public ?string $integrationBarcode;
11    public ?string $integrationCode;
12    public string $integrationCompany;
13    public string $integrationProduct;
14    public string $integrationDerivation;
15    public ?string $integrationDate;
16    public ?string $integrationPackingQuantity;
17    public ?string $integrationCanBuy;
18    public ?string $integrationProducedCanBuy;
19    public ?string $integrationCanRequest;
20    public ?string $integrationCanSellInvoiced;
21
22
23    public function __construct(array $args)
24    {
25        $this->integrationBarcode            = $args['integration_barcode'] ?? null;
26        $this->integrationCode               = $args['integration_code'] ?? null;
27        $this->integrationProduct            = $args['integration_product'];
28        $this->integrationCompany            = $args['integration_company'];
29        $this->integrationDerivation         = $args['integration_derivation'];
30        $this->integrationDate               = $args['integration_date'] ?? null;
31        $this->integrationPackingQuantity    = $args['integration_packing_quantity'] ?? null;
32        $this->integrationCanBuy             = $args['integration_can_buy'];
33        $this->integrationProducedCanBuy     = $args['integration_produced_can_buy'];
34        $this->integrationCanRequest         = $args['integration_can_request'];
35        $this->integrationCanSellInvoiced    = $args['integration_can_sell_invoiced'];
36    }
37
38    public function toArray(): array
39    {
40        return [
41            'integration_barcode'           => $this->integrationBarcode,
42            'integration_code'              => $this->integrationCode,
43            'integration_product'           => $this->integrationProduct,
44            'integration_company'           => $this->integrationCompany,
45            'integration_derivation'        => $this->integrationDerivation,
46            'integration_date'              => $this->integrationDate,
47            'integration_packing_quantity'  => $this->integrationPackingQuantity,
48            'integration_can_buy'           => $this->integrationCanBuy,
49            'integration_produced_can_buy'  => $this->integrationProducedCanBuy,
50            'integration_can_request'       => $this->integrationCanRequest,
51            'integration_can_sell_invoiced' => $this->integrationCanSellInvoiced,
52        ];
53    }
54
55    public static function fromRequest(FormRequest $request): IntegrationProductDTO
56    {
57        return new self([
58            'integration_barcode'           => $request->validated('integration_barcode'),
59            'integration_code'              => $request->validated('integration_code'),
60            'integration_product'           => $request->validated('integration_product'),
61            'integration_company'           => $request->validated('integration_company'),
62            'integration_derivation'        => $request->validated('integration_derivation'),
63            'integration_date'              => $request->validated('integration_date'),
64            'integration_packing_quantity'  => $request->validated('integration_packing_quantity'),
65            'integration_can_buy'           => $request->validated('integration_can_buy'),
66            'integration_produced_can_buy'  => $request->validated('integration_produced_can_buy'),
67            'integration_can_request'       => $request->validated('integration_can_request'),
68            'integration_can_sell_invoiced' => $request->validated('integration_can_sell_invoiced'),
69        ]);
70    }
71
72}