Cambio al generar un zip

This commit is contained in:
Mauricio Baeza 2019-02-17 22:12:01 -06:00
parent 4c2ea774b4
commit 9ea396b133
3 changed files with 8 additions and 7 deletions

View File

@ -4,6 +4,7 @@ v 1.28.0 [17-feb-2019]
- Mejora: Usar concepto personalizado en deducciones de nómina 004 Otros - Mejora: Usar concepto personalizado en deducciones de nómina 004 Otros
- Mejora: Búsqueda en notas - Mejora: Búsqueda en notas
- Mejora: Soporte para el complemento de Divisas - Mejora: Soporte para el complemento de Divisas
- Mejora: Descarga de nómina en lote
* IMPORTANTE: * IMPORTANTE:
Es necesario realizar una migración, despues de actualizar. Es necesario realizar una migración, despues de actualizar.

View File

@ -284,11 +284,11 @@ def parse_date(value, next_day=False):
return d return d
def to_zip(*files): def to_zip(files):
zip_buffer = BytesIO() zip_buffer = BytesIO()
with zipfile.ZipFile(zip_buffer, 'a', zipfile.ZIP_DEFLATED, False) as zip_file: with zipfile.ZipFile(zip_buffer, 'a', zipfile.ZIP_DEFLATED, False) as zip_file:
for data, file_name in files: for file_name, data in files.items():
zip_file.writestr(file_name, data) zip_file.writestr(file_name, data)
return zip_buffer.getvalue() return zip_buffer.getvalue()

View File

@ -8347,17 +8347,17 @@ class CfdiNomina(BaseModel):
w = CfdiNomina.id.in_(ids) w = CfdiNomina.id.in_(ids)
rows = CfdiNomina.select().where(w) rows = CfdiNomina.select().where(w)
files = [] files = {}
for row in rows: for row in rows:
name = '{}{}_{}.'.format(row.serie, row.folio, row.empleado.rfc) name = '{}{}_{}'.format(row.serie, row.folio, row.empleado.rfc)
files.append((row.xml, name + 'xml')) files[f'{name}.xml'] = row.xml
values = self._get_not_in_xml(self, row, emisor) values = self._get_not_in_xml(self, row, emisor)
data = util.get_data_from_xml(row, values) data = util.get_data_from_xml(row, values)
doc = util.to_pdf(data, emisor.rfc) doc = util.to_pdf(data, emisor.rfc)
files.append((doc, name + 'pdf')) files[f'{name}.pdf'] = doc
fz = utils.to_zip(*files) fz = utils.to_zip(files)
return {'data': fz, 'name': name + 'zip'} return {'data': fz, 'name': name + 'zip'}