forked from elmau/empresa-libre
Refactorizar generación de PDF
This commit is contained in:
parent
cd8bd1ceeb
commit
776c90a467
|
@ -760,8 +760,29 @@ class LIBO(object):
|
||||||
self._sheet.copyRange(nc.getCellAddress(), source.getRangeAddress())
|
self._sheet.copyRange(nc.getCellAddress(), source.getRangeAddress())
|
||||||
return
|
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):
|
def _conceptos(self, data):
|
||||||
first = True
|
first = True
|
||||||
|
col1 = []
|
||||||
|
col2 = []
|
||||||
|
col3 = []
|
||||||
|
col4 = []
|
||||||
|
col5 = []
|
||||||
|
col6 = []
|
||||||
|
count = len(data)-1
|
||||||
for concepto in data:
|
for concepto in data:
|
||||||
key = concepto.get('noidentificacion', '')
|
key = concepto.get('noidentificacion', '')
|
||||||
description = concepto['descripcion']
|
description = concepto['descripcion']
|
||||||
|
@ -779,16 +800,36 @@ class LIBO(object):
|
||||||
cell_6 = self._set_cell('{importe}', importe, value=True)
|
cell_6 = self._set_cell('{importe}', importe, value=True)
|
||||||
if len(data) > 1:
|
if len(data) > 1:
|
||||||
row = cell_1.getCellAddress().Row + 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:
|
else:
|
||||||
self._copy_row(cell_1)
|
col1.append((key,))
|
||||||
cell_1 = self._set_cell(v=key, cell=cell_1)
|
col2.append((description,))
|
||||||
cell_2 = self._set_cell(v=description, cell=cell_2)
|
col3.append((unidad,))
|
||||||
cell_3 = self._set_cell(v=unidad, cell=cell_3)
|
col4.append((float(cantidad),))
|
||||||
cell_4 = self._set_cell(v=cantidad, cell=cell_4, value=True)
|
col5.append((float(valor_unitario),))
|
||||||
cell_5 = self._set_cell(v=valor_unitario, cell=cell_5, value=True)
|
col6.append((float(importe),))
|
||||||
cell_6 = self._set_cell(v=importe, cell=cell_6, value=True)
|
|
||||||
|
|
||||||
|
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
|
return
|
||||||
|
|
||||||
def _add_totales(self, data):
|
def _add_totales(self, data):
|
||||||
|
|
|
@ -1592,7 +1592,8 @@ function generate_pdf(id){
|
||||||
|
|
||||||
function grid_preinvoices_click(id, e, node){
|
function grid_preinvoices_click(id, e, node){
|
||||||
if(id.column == 'pdf'){
|
if(id.column == 'pdf'){
|
||||||
generate_pdf(id.row)
|
//~ generate_pdf(id.row)
|
||||||
|
window.open('/doc/pre/' + id, '_blank')
|
||||||
}else if(id.column == 'email'){
|
}else if(id.column == 'email'){
|
||||||
enviar_prefactura(id)
|
enviar_prefactura(id)
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,9 +209,10 @@ var multi_products = {
|
||||||
|
|
||||||
|
|
||||||
var app_products = {
|
var app_products = {
|
||||||
id: "app_products",
|
id: 'app_products',
|
||||||
rows:[
|
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
|
multi_products
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue