Passed
Pull Request — master (#14)
by
unknown
02:43
created

FormaDePagoBuilder::make()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 18
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 24
ccs 4
cts 4
cp 1
crap 1
rs 9.6666
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpCfdi\SatCatalogos\CFDI40\Builders;
6
7
use PhpCfdi\SatCatalogos\CFDI40\FormaDePago;
8
9
class FormaDePagoBuilder
10
{
11
    /**
12
     * @param string $id
13
     * @param array<string, mixed> $values
14
     * @return FormaDePago
15
     */
16 15
    public function make(string $id, array $values): FormaDePago
17
    {
18 15
        unset($values['id']);
19
        // the order of the arguments **must** be the same as in FormaDePago constructor
20
        $defaults = [
21
            'id' => $id,
22
            'texto' => $id,
23
            'esBancarizado' => false,
24
            'requiereNumeroDeOperacion' => false,
25
            'permiteBancoOrdenanteRfc' => false,
26
            'permiteCuentaOrdenante' => false,
27
            'patronCuentaOrdenante' => '',
28
            'permiteBancoBeneficiarioRfc' => false,
29
            'permiteCuentaBeneficiario' => false,
30
            'patronCuentaBeneficiario' => '',
31
            'permiteTipoCadenaPago' => false,
32
            'requiereBancoOrdenanteNombreExt' => false,
33
            'vigenteDesde' => 0,
34
            'vigenteHasta' => 0,
35
        ];
36
37 15
        $values = array_intersect_key(array_merge($defaults, $values), $defaults);
38
39 15
        return new FormaDePago(...array_values($values));
40
    }
41
}
42