Code Monkey home page Code Monkey logo

python-satcfdi's People

Contributors

satcfdi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

python-satcfdi's Issues

Descarga masiva: ValueError: 0 is not a valid EstadoSolicitud

En algunos raros casos sale este bug:

2023-08-08 14:00:03 (CDT) Descargar recibidas
Traceback (most recent call last):
  File "/home/admin/descarga_masiva/cfdi-descarga-masiva.py", line 59, in <module>
    for paquete_id, data in sat_service.recover_comprobante_iwait(
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/site-packages/satcfdi/pacs/sat.py", line 645, in recover_comprobante_iwait
    response = self.recover_comprobante_status(
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/site-packages/satcfdi/pacs/sat.py", line 570, in recover_comprobante_status
    return self._execute_req(
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/site-packages/satcfdi/pacs/sat.py", line 363, in _execute_req
    return req.process_response(xml)
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/site-packages/satcfdi/pacs/sat.py", line 250, in process_response
    return descarga_result(res)
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/site-packages/satcfdi/pacs/sat.py", line 240, in descarga_result
    result['EstadoSolicitud'] = Code(estado_solicitud, EstadoSolicitud(estado_solicitud).name)
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/home/admin/miniconda3/envs/sat-cfdi/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: 0 is not a valid EstadoSolicitud

Eso es de un cron job que periódicamente descarga facturas cada 24 horas, sucede como una vez cada uno o dos días.

Podría ser el SAT mismo, pero parece que sí manda un valor 0. No se.

is not a valid URI, line 28: Error leyendo algunos CFDI (ejemplo incluido)

Marca error al intentar cargar el siguiente XML

xmlns:schemaLocation: 'http://www.sat.gob.mx/registrofiscal http://www.sat.gob.mx/sitio_internet/cfd/cfdiregistrofiscal/cfdiregistrofiscal.xsd' is not a valid URI, line 28, column 182 (b66ccf54-df9f-4296-b9cd-fdfc76de11a1.xml, line 28)

f6b3ecfa-833e-4a5e-934a-2becd000d68f.tar.gz

Sin embargo el archivo es válido, se puede comprobar en el SAT, y el proyecto cfdibills lo carga bien.

Además, ese archivo fue descargado por el mismo satcfdi via Descarga Masiva directo del SAT.

Documentar el validar un CFDI

En la parte de validación, en la documentación. Uno asumiría que dice como validad una factura, sin embargo, solo se menciona como validar el RFC y la LCO.

Seria bueno indicar el ejemplo de la validación de un comprobante.

Can't read file when XML uses on xmlns:schemaLocation http://www.sat.gob.mx/registrofiscal and cfdiregistrofiscal.xsd

Hi! Thanks for this amazing tool, I have this issue, when I'm trying to read a XML that uses this structure:

<registrofiscal:CFDIRegistroFiscal xmlns:registrofiscal="http://www.sat.gob.mx/registrofiscal" 
xmlns:schemaLocation="http://www.sat.gob.mx/registrofiscal 
http://www.sat.gob.mx/sitio_internet/cfd/cfdiregistrofiscal/cfdiregistrofiscal.xsd" 
Version="1.0" Folio="000000000000"/>

It throws an exception:
xmlns:schemaLocation: 'http://www.sat.gob.mx/registrofiscal http://www.sat.gob.mx/sitio_internet/cfd/cfdiregistrofiscal/cfdiregistrofiscal.xsd' is not a valid URI

I have detect that it is correctly declared in transforms/schemas.py, but not working or it doesn't recognize it.

If manually remove the http://www.sat.gob.mx/registrofiscal url, it works, it allows me to work with it, but, the user must remove it manually.

Permitir CSS externo mediante la generación de una DIV pura (en html_str())

Actualmente la generación de HTML genera todo el HTML incluyendo <html> , <head> con su CSS y <body>. Lo cual funciona bien para un caso básico.

Si un usuario requiere incrustar el HTML en una paǵina propia, o bien si quiere generar un estilo propio es difícil integrarlo ya que debe cargarse, separarse, y modificar el DOM HTML a mano o hacer truculencias de regexes.

Sería más conveniente generar sólo el <div> y nada de CSS (pero mantener la clases puestas), de esa manera el HTML se vuelve mucho más flexible y tendría las siguientes ventajas:

  • Se puede embeber en cualquier proyecto
  • Se puede crear CSS propio
  • Se puede generar el PDF usando herramientas como wkhtmltopdf.
  • Se pueden generar divs en masa para crear un html masivo, y luego usar herramientas como wkhtmltopdf para generar un PDF gigante de muchos cfdi de un solo golpe

En resumen la sugerencia es crear un generador sólo del <div> y de esa manera la cadena se incrusta directo en cualquier HTML que tenga el usuario, y el mismo usuario decidirá qué CSS quiere usar para las clases que la función retorne: Algo así:

div = invoice.html_div_str()

O así:

div = invoice.html_str( onlydiv=True )

La sugerencia es muy fácil de implementar, ya que actualmente se genera todo el HTML, es cosa de reducirlo.

Error en documentación de imports

En la documentación y Readme dice:

from satcfdi import CFDI
....
invoice = CFDI.from_file('comprobante.xml')

Pero al usarlos directamente no funciona, en realidad tuve que hacer:

from satcfdi import cfdi
...
cfdi.CFDI.from_file(xmlfile)

Es algo que un newbie no entendería, pero un experto lo busca y lo encuentra.

Error en readme: BODY_TEMPLATE

Dice:

from satcfdi import render, BODY_TEMPLATE

Debe decir:

from satcfdi import render
from satcfdi.render import BODY_TEMPLATE

Demo

Hola!
El proyecto se ve excelente!
Tienes algun demo que puedas publicar en tu markdown?

Muchas gracias!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.