From 493f78fda599c43da6a2c02aa6715709fc72e86e Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sun, 17 Dec 2017 22:38:19 -0600 Subject: [PATCH] Sincronizar PDF localmente --- source/app/controllers/util.py | 10 +++++----- source/app/models/main.py | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index 44b15bd..2cd43a5 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -1481,11 +1481,11 @@ def local_copy(files): args = 'df -P ~/facturas | tail -1 | cut -d" " -f 1' try: result = _call(args) - if result != 'empresalibre\n': - log.info(result) - msg = 'Asegurate de que exista la carpeta para sincronizar' - log.error(msg) - return + # ~ if result != 'empresalibre\n': + # ~ log.info(result) + # ~ msg = 'Asegurate de que exista la carpeta para sincronizar' + # ~ log.error(msg) + # ~ return except subprocess.CalledProcessError: msg = 'No se pudo obtener la ruta para sincronizar' log.error(msg) diff --git a/source/app/models/main.py b/source/app/models/main.py index 9ccccf9..1fe885d 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -2056,7 +2056,7 @@ class Facturas(BaseModel): return values @classmethod - def get_pdf(cls, id, rfc): + def get_pdf(cls, id, rfc, sync=True): try: emisor = Emisor.select()[0] except IndexError: @@ -2070,6 +2070,11 @@ class Facturas(BaseModel): values = cls._get_not_in_xml(cls, obj, emisor) data = util.get_data_from_xml(obj, values) doc = util.to_pdf(data, emisor.rfc) + + if sync: + target = emisor.rfc + '/' + str(obj.fecha)[:7].replace('-', '/') + cls._sync_pdf(cls, doc, name, target) + return doc, name @classmethod @@ -2099,6 +2104,15 @@ class Facturas(BaseModel): def _sync(self, id, auth): return Facturas.sync(id, auth) + @util.run_in_thread + def _sync_pdf(self, pdf, name_pdf, target): + auth = Emisor.get_auth() + files = ( + (pdf, name_pdf, target), + ) + util.sync_cfdi(auth, files) + return + @util.run_in_thread def _actualizar_saldo_cliente(self, invoice): if invoice.tipo_comprobante == 'T': @@ -2169,7 +2183,7 @@ class Facturas(BaseModel): return emisor = Emisor.select()[0] - pdf, name_pdf = cls.get_pdf(id, auth['RFC']) + pdf, name_pdf = cls.get_pdf(id, auth['RFC'], False) name_xml = '{}{}_{}.xml'.format(obj.serie, obj.folio, obj.cliente.rfc) target = emisor.rfc + '/' + str(obj.fecha)[:7].replace('-', '/') files = (