-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPDFGenerator.py
More file actions
187 lines (172 loc) · 7.01 KB
/
PDFGenerator.py
File metadata and controls
187 lines (172 loc) · 7.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
import os
from jinja2 import Template
from PyQt5.QtWidgets import QFileDialog
import pdfkit
from usuarios import getNombreCompleto, getNombreCompletoSubtabla
facturas_nombres = ["Número de factura"]
pagos_nombres = ["Fecha","Concepto","Cantidad","Autorizado por","Observaciones"]
depositos_nombres = ["Fecha","Concepto","Cantidad","Banco","Tipo","Observaciones"]
desglose_nombres = ["Concepto","Cantidad"]
fechas_nombres = ["Fecha de envío","Fecha de regreso", "Observaciones"]
general_nombres = [
"Proyectista" ,
"Proyecto" ,
"Gestor" ,
"Enajenante" ,
"Adquiriente" ,
"Volumen" ,
"Número de expediente" ,
"Fecha de escritura" ,
"Fecha vence TD" ,
"SR" ,
"Clave catastral" ,
"Número de Infonavit" ,
"Entrega de testimonio" ,
"Observaciones escritura"]
juridico_nombres = [
"Acto jurídico o contrato en extracto" ,
"Firmas de las partes en extracto" ,
"Pendientes" ,
"No paso" ,
"Otorgamiento" ,
"Firma" ,
"Autorización" ,
"Fecha de aviso al RENAP" ,
"Fecha envío a la DIRCC" ,
"UIF poder irrevocable" ,
"Fecha de aviso al RELOAT" ,
"Fecha aviso DIR NOT TPA" ,
"Folios" ,
"Numeración de folios" ,
"Folio cancelado" ,
"Minuta" ,
"Fecha recibido minuta" ,
"Apéndice" ,
"Fecha recibido apéndice" ,
"Fecha entrega por jurídico" ,
"Fecha de aviso al portal" ,
"Fecha de cierre de antilavado" ,
"ISR de enajenación" ,
"ISR de adquisición" ,
"IVA" ]
tramites_nombres = [
"Número de oficio",
"Fecha de envío a Dirección de Notarias",
"Fecha de solicitud de búsqueda de testamento en Dirección de Notaria",
"Fecha de solicitud de búsqueda de testamento en RPP",
"Fecha de Publicación en Boletín Oficial",
"Fecha de Publicación en Periódico de los Avisos"]
cc_nombres = [
"Catastro calificación terminado",
"Observaciones catastro calificación"]
ctd_nombres = [
"Catastro TD terminado",
"Observaciones catastro TD"
]
rpp_nombres = [
"Folio RPP" ,
"Registrada" ,
"Observaciones RPP" ,
"Fecha de presentado de Aviso Definitivo (ingreso a RPP)" ,
"Fecha salida de Aviso Definitivo (entregado por RPP)" ,
"Fecha vence de Aviso Definitivo"
]
presupuesto_nombres = [
"Valor de operación" ,
"Fecha de honorarios" ,
"Monto de honorarios" ,
"Monto de impuestos" ,
"Pago de comisión" ,
"Saldo"
]
def generarPDF(self):
file_path = os.path.abspath("style.css")
logo = os.path.abspath("logo.png")
registro = self.listaregistros_editarregistros
print(registro)
subtablas = self.diccionarioregistros_editarregistros_subtablas
print('subtablasssss',subtablas)
outfile, _ = QFileDialog.getSaveFileName(filter='PDF Files (*.pdf)')
if outfile != '':
with open("reporte.html", encoding='utf8') as f:
template_content = f.read()
template = Template(template_content)
dicc_general, dicc_juridico, dicc_tramites,dicc_presupuesto,dicc_cc,dicc_ctd,dicc_rpp,dicc_facturas,dicc_fechascc,dicc_fechasctd,dicc_fechasrpp,dicc_desglose,dicc_pagos,dicc_depositos = generarDicts(registro, subtablas)
# Render the template with the content
html_content = template.render(file_path=file_path, img_path=logo, no_presupuesto=registro['no_presupuesto'], no_escritura=registro['no_escritura'], bis=registro['bis'],
dicc_general = dicc_general,
dicc_juridico = dicc_juridico,
dicc_tramites = dicc_tramites,
dicc_presupuesto = dicc_presupuesto,
dicc_cc = dicc_cc,
dicc_ctd = dicc_ctd,
dicc_rpp = dicc_rpp,
dicc_facturas = dicc_facturas,
dicc_fechascc = dicc_fechascc,
dicc_fechasctd = dicc_fechasctd,
dicc_fechasrpp = dicc_fechasrpp,
dicc_desglose = dicc_desglose,
dicc_pagos = dicc_pagos,
dicc_depositos = dicc_depositos,
depositos_nombres = depositos_nombres,
pagos_nombres = pagos_nombres,desglose_nombres=desglose_nombres,fechas_nombres=fechas_nombres,facturas_nombres=facturas_nombres)
# dict general, dict juridico, dict tramites -> dict cc -> dict fechas_cc, dict presupuesto -> desgloce -> pagos ->depositos
# Create the file
pdfkit.from_string(html_content, outfile,options={"enable-local-file-access": "",'encoding': "UTF-8"})
def generarDicts(registro,subtablas):
dicc_general, dicc_juridico, dicc_tramites, dicc_presupuesto, dicc_cc, dicc_ctd, dicc_rpp, dicc_facturas, dicc_fechascc, dicc_fechasctd, dicc_fechasrpp, dicc_desglose, dicc_pagos,dicc_depositos = {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},{}
for col, val in registro.items():
col = getNombreCompleto(col)
print(col)
if col in general_nombres:
dicc_general[col] = val
if col in juridico_nombres:
dicc_juridico[col] = val
if col in tramites_nombres:
dicc_tramites[col] = val
if col in presupuesto_nombres:
dicc_presupuesto[col] = val
if col in cc_nombres:
dicc_cc[col] = val
if col in ctd_nombres:
dicc_ctd[col] = val
if col in rpp_nombres:
dicc_rpp[col] = val
for key, registros in subtablas.items():
for index, reg in registros.items():
print('key',index, 'resgistrooo',reg)
for col, val in reg.items():
col = getNombreCompletoSubtabla(key,col)
if col in facturas_nombres:
if index not in dicc_facturas:
dicc_facturas[index] = {}
dicc_facturas[index][col] = val
if col in pagos_nombres:
if key == 'pagos':
if index not in dicc_pagos:
dicc_pagos[index] = {}
dicc_pagos[index][col] = val
if col in desglose_nombres:
if key == 'desgloce_ppto':
if index not in dicc_desglose:
dicc_desglose[index] = {}
dicc_desglose[index][col] = val
if col in depositos_nombres:
if key == 'depositos':
if index not in dicc_depositos:
dicc_depositos[index] = {}
dicc_depositos[index][col] = val
if col in fechas_nombres:
if key == 'fechas_catastro_calif':
if index not in dicc_fechascc:
dicc_fechascc[index] = {}
dicc_fechascc[index][col] = val
if key == 'fechas_catastro_td':
if index not in dicc_fechasctd:
dicc_fechasctd[index] = {}
dicc_fechasctd[index][col] = val
if key == 'fechas_rpp':
if index not in dicc_fechasrpp:
dicc_fechasrpp[index] = {}
dicc_fechasrpp[index][col] = val
return dicc_general, dicc_juridico, dicc_tramites,dicc_presupuesto,dicc_cc,dicc_ctd,dicc_rpp,dicc_facturas,dicc_fechascc,dicc_fechasctd,dicc_fechasrpp,dicc_desglose,dicc_pagos,dicc_depositos