From 9ea396b13340344f7434c6d31a42d4cece826500 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sun, 17 Feb 2019 22:12:01 -0600 Subject: [PATCH] Cambio al generar un zip --- CHANGELOG.md | 1 + source/app/controllers/utils.py | 4 ++-- source/app/models/main.py | 10 +++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc74833..d942214 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ v 1.28.0 [17-feb-2019] - Mejora: Usar concepto personalizado en deducciones de nómina 004 Otros - Mejora: Búsqueda en notas - Mejora: Soporte para el complemento de Divisas + - Mejora: Descarga de nómina en lote * IMPORTANTE: Es necesario realizar una migración, despues de actualizar. diff --git a/source/app/controllers/utils.py b/source/app/controllers/utils.py index b15b119..192ff6f 100644 --- a/source/app/controllers/utils.py +++ b/source/app/controllers/utils.py @@ -284,11 +284,11 @@ def parse_date(value, next_day=False): return d -def to_zip(*files): +def to_zip(files): zip_buffer = BytesIO() 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) return zip_buffer.getvalue() diff --git a/source/app/models/main.py b/source/app/models/main.py index 55099cd..c9502cb 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -8347,17 +8347,17 @@ class CfdiNomina(BaseModel): w = CfdiNomina.id.in_(ids) rows = CfdiNomina.select().where(w) - files = [] + files = {} for row in rows: - name = '{}{}_{}.'.format(row.serie, row.folio, row.empleado.rfc) - files.append((row.xml, name + 'xml')) + name = '{}{}_{}'.format(row.serie, row.folio, row.empleado.rfc) + files[f'{name}.xml'] = row.xml values = self._get_not_in_xml(self, row, emisor) data = util.get_data_from_xml(row, values) 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'}