|
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
|
|
|
|