NumerosPedimentoAduana   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 23
c 1
b 0
f 0
dl 0
loc 36
ccs 27
cts 27
cp 1
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A dataTable() 0 14 1
A checkHeaders() 0 18 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpCfdi\SatCatalogosPopulate\Importers\Cfdi\Injectors;
6
7
use PhpCfdi\SatCatalogosPopulate\AbstractCsvInjector;
8
use PhpCfdi\SatCatalogosPopulate\Database\DataFields;
9
use PhpCfdi\SatCatalogosPopulate\Database\DataTable;
10
use PhpCfdi\SatCatalogosPopulate\Database\DateDataField;
11
use PhpCfdi\SatCatalogosPopulate\Database\IntegerDataField;
12
use PhpCfdi\SatCatalogosPopulate\Database\PaddingDataField;
13
use PhpCfdi\SatCatalogosPopulate\InjectorInterface;
14
use PhpCfdi\SatCatalogosPopulate\Utils\CsvFile;
15
use RuntimeException;
16
17
class NumerosPedimentoAduana extends AbstractCsvInjector implements InjectorInterface
18
{
19 4
    public function checkHeaders(CsvFile $csv): void
20
    {
21 4
        $csv->move(3);
22 4
        $expected = [
23 4
            'c_Aduana',
24 4
            'Patente',
25 4
            'Ejercicio',
26 4
            'Cantidad',
27 4
            'Fecha inicio de vigencia',
28 4
            'Fecha fin de vigencia',
29 4
        ];
30 4
        $headers = $csv->readLine();
31
32 4
        if ($expected !== $headers) {
33 1
            throw new RuntimeException("The headers did not match on file {$this->sourceFile()}");
34
        }
35
36 3
        $csv->next();
37
    }
38
39 15
    public function dataTable(): DataTable
40
    {
41 15
        return new DataTable(
42 15
            'cfdi_numeros_pedimento_aduana',
43 15
            new DataFields([
44 15
                new PaddingDataField('aduana', '0', 2),
45 15
                new PaddingDataField('patente', '0', 4),
46 15
                new IntegerDataField('ejercicio'),
47 15
                new IntegerDataField('cantidad'),
48 15
                new DateDataField('vigencia_desde'),
49 15
                new DateDataField('vigencia_hasta'),
50 15
            ]),
51 15
            [],
52 15
            true
53 15
        );
54
    }
55
}
56