1
|
|
|
import xlsxwriter |
2
|
|
|
from satcfdi.accounting.process import excel_export |
3
|
|
|
from satcfdi.cfdi import CFDI |
4
|
|
|
|
5
|
|
|
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
|
|
|
def imprimir_contablidad( |
21
|
|
|
catalogo_cuentas, |
22
|
|
|
balanza_comprobacion, |
23
|
|
|
archivo_excel |
24
|
|
|
): |
25
|
|
|
# ct = CFDI.from_file(catalogo_cuentas) |
26
|
|
|
# bc = CFDI.from_file(balanza_comprobacion) |
27
|
|
|
ct = catalogo_cuentas |
28
|
|
|
bc = balanza_comprobacion |
29
|
|
|
|
30
|
|
|
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
|
|
|
for r in bc['Ctas']: |
40
|
|
|
ctv = ctas[r['NumCta']] |
41
|
|
|
r.update(ctv) |
42
|
|
|
|
43
|
|
|
workbook = xlsxwriter.Workbook(archivo_excel) |
44
|
|
|
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
|
|
|
|