NumerosPedimentoAduana::dataTable()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 10
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 14
ccs 13
cts 13
cp 1
crap 1
rs 9.9332
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