Passed
Push — main ( 92a304...476fed )
by Sat CFDI
05:29
created

satcfdi.accounting.contabilidad_print   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 38
dl 0
loc 52
ccs 14
cts 14
cp 1
rs 10
c 0
b 0
f 0
wmc 2

1 Function

Rating   Name   Duplication   Size   Complexity  
A imprimir_contablidad() 0 32 2
1 1
import xlsxwriter
2 1
from satcfdi.accounting.process import excel_export
3 1
from satcfdi.cfdi import CFDI
4
5 1
EXCEL_COLUMNS = {
6
    'NumCta': (12, False, lambda i: i['NumCta']),
7
    'Desc': (62, False, lambda i: '    ' * (i['Nivel'] - 1) + i['Desc']),
8
    'Natur': (5, False, lambda i: i['Natur']),
9
10
    'SaldoIni': (12, False, lambda i: i.get('SaldoIni')),
11
    'Debe': (12, False, lambda i: i.get('Debe')),
12
    'Haber': (12, False, lambda i: i.get('Haber')),
13
    'SaldoFin': (12, False, lambda i: i.get('SaldoFin')),
14
15
    'CodAgrup': (12, False, lambda i: i['CodAgrup'].code),
16
    'CodDesc': (120, False, lambda i: i['CodAgrup'].description),
17
}
18
19
20 1
def imprimir_contablidad(
21
        catalogo_cuentas,
22
        balanza_comprobacion,
23
        archivo_excel
24
):
25 1
    ct = CFDI.from_file(catalogo_cuentas)
26 1
    bc = CFDI.from_file(balanza_comprobacion)
27
    # ct = catalogo_cuentas
28
    # bc = balanza_comprobacion
29
30 1
    ctas = {
31
        c['NumCta']: {
32
            'Desc': c['Desc'],
33
            'Natur': c['Natur'],
34
            'CodAgrup': c['CodAgrup'],
35
            'Nivel': c['Nivel'],
36
        }
37
        for c in ct['Ctas']
38
    }
39 1
    for r in bc['Ctas']:
40 1
        ctv = ctas[r['NumCta']]
41 1
        r.update(ctv)
42
43 1
    workbook = xlsxwriter.Workbook(archivo_excel)
44 1
    excel_export(
45
        workbook=workbook,
46
        name=bc['RFC'] + str(bc['Anio']) + str(bc['Mes']),
47
        invoices=bc['Ctas'],
48
        columns=EXCEL_COLUMNS,
49
        row_height=1
50
    )
51
    workbook.close()
52