sat-cfdi / python-satcfdi Goto Github PK
View Code? Open in Web Editor NEWThe best open-source python library to generate and process SAT's CFDI
Home Page: https://satcfdi.readthedocs.io
License: MIT License
The best open-source python library to generate and process SAT's CFDI
Home Page: https://satcfdi.readthedocs.io
License: MIT License
I am trying to use this excelent library in an AWS lambda function, but AWS has this restriction so any lambda code have to be lees than 50Mb.
Is it possible to get a lite version of the library that meets this requirement?
Thanks.
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.
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.
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.
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.
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:
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.
Acorde a la RAE se escribe "traslado" pero dice translados, con N en varios lugares. Y esa nomenclatura es la que usa el SAT.
Es un bug simple, pero le dará profesionalismo a la factura. :)
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.
Dice:
from satcfdi import render, BODY_TEMPLATE
Debe decir:
from satcfdi import render
from satcfdi.render import BODY_TEMPLATE
Hola!
El proyecto se ve excelente!
Tienes algun demo que puedas publicar en tu markdown?
Muchas gracias!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.