diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index 8e1e1f4..31fbf31 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -611,6 +611,9 @@ class LIBO(object): '-env:SingleAppInstance=false', '-env:UserInstallation=file:///tmp/LIBO_Process8100', '--headless', '--norestore', '--nologo', '--accept={}'.format(ARG)] + CELL_STYLE = { + 'EUR': 'euro', + } def __init__(self): self._app = None @@ -622,6 +625,7 @@ class LIBO(object): self._ctx = None self._sm = None self._desktop = None + self._currency = 'MXN' if self.is_running: ctx = uno.getComponentContext() service = 'com.sun.star.bridge.UnoUrlResolver' @@ -816,6 +820,17 @@ class LIBO(object): dispatch.executeDispatch(frame, '.uno:Paste', '', 0, ()) return + def _get_style(self, cell): + if cell is None: + return '' + + match = re.match(r"([a-z]+)([0-9]+)", cell.CellStyle, re.I) + if not match: + return '' + + currency = self.CELL_STYLE.get(self._currency, 'peso') + return '{}{}'.format(currency, match.groups()[1]) + def _conceptos(self, data): first = True col1 = [] @@ -825,7 +840,7 @@ class LIBO(object): col5 = [] col6 = [] col7 = [] - count = len(data)-1 + count = len(data) - 1 for concepto in data: key = concepto.get('noidentificacion', '') description = concepto['descripcion'] @@ -860,6 +875,10 @@ class LIBO(object): if not count: return + style_5 = self._get_style(cell_5) + style_6 = self._get_style(cell_6) + style_7 = self._get_style(cell_7) + col = cell_1.getCellAddress().Column target1 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) col = cell_2.getCellAddress().Column @@ -872,6 +891,10 @@ class LIBO(object): 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) + target7 = None + if not cell_7 is None: + col = cell_7.getCellAddress().Column + target7 = self._sheet.getCellRangeByPosition(col, row+1, col, row+count) target1.setFormulaArray(tuple(col1)) target2.setDataArray(tuple(col2)) @@ -879,6 +902,18 @@ class LIBO(object): target4.setDataArray(tuple(col4)) target5.setDataArray(tuple(col5)) target6.setDataArray(tuple(col6)) + if not target7 is None: + target7.setDataArray(tuple(col7)) + + if style_5: + cell_5.CellStyle = style_5 + target5.CellStyle = style_5 + if style_6: + cell_6.CellStyle = style_6 + target6.CellStyle = style_6 + if style_7: + cell_7.CellStyle = style_7 + target7.CellStyle = style_7 return def _add_totales(self, data): @@ -1098,6 +1133,8 @@ class LIBO(object): self._set_search() self._es_pre = data.pop('es_pre', False) self._is_ticket = data.pop('is_ticket', False) + self._currency = data['totales']['moneda'] + self._comprobante(data['comprobante']) self._emisor(data['emisor']) self._receptor(data['receptor']) diff --git a/source/app/models/main.py b/source/app/models/main.py index c672b8d..6572380 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -8182,9 +8182,10 @@ def _exportar_documentos(): msg = '\tXML extraido...' log.info(msg) name = name[:-3] + 'pdf' - # ~ path = '/home/mau/facturas/CURG62080951A/{}/{}/{}'.format(year, month.zfill(2), name) - # ~ if util.exists(path): - # ~ continue + path = '/home/mau/facturas/{}/{}/{}/{}'.format( + rfc, year, month.zfill(2), name) + if util.exists(path): + continue Facturas.get_pdf(row['id'], rfc, True) msg = '\tPDF generado...' log.info(msg)