diff --git a/source/app/models/main.py b/source/app/models/main.py index 4efec8a..0e9a0f6 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -216,6 +216,8 @@ def get_doc(type_doc, id, rfc): data, file_name = CfdiNomina.get_pdf(id, rfc) elif type_doc == 'xmlpago': data, file_name = CfdiPagos.get_file_xml(id) + elif type_doc == 'pdfpago': + data, file_name = CfdiPagos.get_file_pdf(id) return data, file_name, content_type @@ -5265,7 +5267,7 @@ class CfdiPagos(BaseModel): estatus_sat = TextField(default='') notas = TextField(default='') error = TextField(default='') - cancelado = BooleanField(default=False) + cancelada = BooleanField(default=False) class Meta: order_by = ('movimiento',) @@ -5521,6 +5523,27 @@ class CfdiPagos(BaseModel): name = '{}{}_{}.xml'.format(obj.serie, folio, obj.socio.rfc) return obj.xml, name + @classmethod + def get_file_pdf(cls, id): + try: + emisor = Emisor.select()[0] + except IndexError: + return b'', 'sin_datos_de_emisor.pdf' + + obj = CfdiPagos.get(CfdiPagos.id==id) + folio = str(obj.folio).zfill(6) + name = '{}{}_{}.pdf'.format(obj.serie, folio, obj.socio.rfc) + + if obj.uuid is None: + return b'', name + + # ~ values = cls._get_not_in_xml(cls, obj, emisor) + data = util.get_data_from_xml(obj, {}) + print(data) + # ~ doc = util.to_pdf(data, emisor.rfc) + + return b'', name + @classmethod def get_values(cls, values): opt = values.pop('opt') @@ -7809,6 +7832,7 @@ def _migrate_tables(): error = TextField(default='') tipo_relacion = TextField(default='') uuid_relacionado = UUIDField(null=True) + cancelada = BooleanField(default=False) migrations.append(migrator.add_column('cfdipagos', 'serie', serie)) migrations.append(migrator.add_column('cfdipagos', 'folio', folio)) migrations.append(migrator.add_column('cfdipagos', 'lugar_expedicion', lugar_expedicion)) @@ -7818,6 +7842,8 @@ def _migrate_tables(): migrations.append(migrator.add_column('cfdipagos', 'tipo_relacion', tipo_relacion)) migrations.append(migrator.add_column('cfdipagos', 'uuid_relacionado', uuid_relacionado)) migrations.append(migrator.add_column('cfdipagos', 'socio_id', socio)) + migrations.append(migrator.drop_column('cfdipagos', 'cancelado')) + migrations.append(migrator.add_column('cfdipagos', 'cancelada', cancelada)) if migrations: with database_proxy.atomic() as txn: diff --git a/source/static/js/controller/bancos.js b/source/static/js/controller/bancos.js index 2ab53dd..05e1efa 100644 --- a/source/static/js/controller/bancos.js +++ b/source/static/js/controller/bancos.js @@ -881,12 +881,10 @@ function grid_cfdi_pay_click(id, e, node){ if(id.column == 'xml'){ location = '/doc/xmlpago/' + row.id + }else if(id.column == 'pdf'){ + window.open('/doc/pdfpago/' + row.id, '_blank') + }else if(id.column == 'email'){ + //~ enviar_correo(row) } - //~ }else if(id.column == 'pdf'){ - //~ get_pdf(row.id) - //~ }else if(id.column == 'email'){ - //~ enviar_correo(row) - //~ } - } diff --git a/source/templates/plantilla_pagos.ods b/source/templates/plantilla_pagos.ods new file mode 100644 index 0000000..8061850 Binary files /dev/null and b/source/templates/plantilla_pagos.ods differ