From 776c90a4673ec39246a7a1a9a974701b84504b5d Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sat, 27 Jan 2018 02:45:45 -0600 Subject: [PATCH] =?UTF-8?q?Refactorizar=20generaci=C3=B3n=20de=20PDF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/app/controllers/util.py | 57 ++++++++++++++++++++---- source/static/js/controller/invoices.js | 3 +- source/static/js/ui/products.js | 5 ++- source/templates/plantilla_factura.ods | Bin 27358 -> 26044 bytes 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index e80941a..de8c97d 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -760,8 +760,29 @@ class LIBO(object): self._sheet.copyRange(nc.getCellAddress(), source.getRangeAddress()) return + def _copy_paste_rows(self, cell, count): + dispatch = self._create_instance('com.sun.star.frame.DispatchHelper') + + row = cell.getCellAddress().Row + source = self._sheet.getRows().getByIndex(row) + self._template.getCurrentController().select(source) + frame = self._template.getCurrentController().getFrame() + dispatch.executeDispatch(frame, '.uno:Copy', '', 0, ()) + + target = self._sheet.getCellRangeByPosition(0, row + 1, 0, row + count) + self._template.getCurrentController().select(target) + dispatch.executeDispatch(frame, '.uno:Paste', '', 0, ()) + return + def _conceptos(self, data): first = True + col1 = [] + col2 = [] + col3 = [] + col4 = [] + col5 = [] + col6 = [] + count = len(data)-1 for concepto in data: key = concepto.get('noidentificacion', '') description = concepto['descripcion'] @@ -779,16 +800,36 @@ class LIBO(object): cell_6 = self._set_cell('{importe}', importe, value=True) if len(data) > 1: row = cell_1.getCellAddress().Row + 1 - self._sheet.getRows().insertByIndex(row, len(data)-1) + self._sheet.getRows().insertByIndex(row, count) + self._copy_paste_rows(cell_1, count) + row = cell_1.getCellAddress().Row else: - self._copy_row(cell_1) - cell_1 = self._set_cell(v=key, cell=cell_1) - cell_2 = self._set_cell(v=description, cell=cell_2) - cell_3 = self._set_cell(v=unidad, cell=cell_3) - cell_4 = self._set_cell(v=cantidad, cell=cell_4, value=True) - cell_5 = self._set_cell(v=valor_unitario, cell=cell_5, value=True) - cell_6 = self._set_cell(v=importe, cell=cell_6, value=True) + col1.append((key,)) + col2.append((description,)) + col3.append((unidad,)) + col4.append((float(cantidad),)) + col5.append((float(valor_unitario),)) + col6.append((float(importe),)) + col = cell_1.getCellAddress().Column + target1 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) + col = cell_2.getCellAddress().Column + target2 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) + col = cell_3.getCellAddress().Column + target3 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) + col = cell_4.getCellAddress().Column + target4 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) + col = cell_5.getCellAddress().Column + target5 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) + col = cell_6.getCellAddress().Column + target6 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) + + target1.setFormulaArray(tuple(col1)) + target2.setDataArray(tuple(col2)) + target3.setFormulaArray(tuple(col3)) + target4.setDataArray(tuple(col4)) + target5.setDataArray(tuple(col5)) + target6.setDataArray(tuple(col6)) return def _add_totales(self, data): diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js index 2bc88d4..f1f463c 100644 --- a/source/static/js/controller/invoices.js +++ b/source/static/js/controller/invoices.js @@ -1592,7 +1592,8 @@ function generate_pdf(id){ function grid_preinvoices_click(id, e, node){ if(id.column == 'pdf'){ - generate_pdf(id.row) + //~ generate_pdf(id.row) + window.open('/doc/pre/' + id, '_blank') }else if(id.column == 'email'){ enviar_prefactura(id) } diff --git a/source/static/js/ui/products.js b/source/static/js/ui/products.js index d83904e..72dd511 100644 --- a/source/static/js/ui/products.js +++ b/source/static/js/ui/products.js @@ -209,9 +209,10 @@ var multi_products = { var app_products = { - id: "app_products", + id: 'app_products', rows:[ - {view: "template", id: "th_products", type: "header", template:"Administración de Productos" }, + {view: 'template', id: 'th_products', type: 'header', + template: 'Administración de Productos y Servicios'}, multi_products ], } diff --git a/source/templates/plantilla_factura.ods b/source/templates/plantilla_factura.ods index 1f332ceafda4f596c5c344a2159affc681322115..c66d20f5cc9d4f24be4aa5267ea9c5726c51efe1 100644 GIT binary patch delta 17911 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%0D6^Rc#)H8keGx2rEuUl15_@NAk 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%0A;kjhhD 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 SG8pP14;K1J|F+v_wdMa1#nOoY