Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 2025 #120

Merged
merged 20 commits into from
Mar 8, 2025
Merged

Update 2025 #120

merged 20 commits into from
Mar 8, 2025

Conversation

reingart
Copy link
Owner

@reingart reingart commented Feb 22, 2025

Summary

Actualizaciones acumuladas 2025:

  • Factura Electronica WSFEv1 Version 4: cancela_misma_moneda_ext & condicion_iva_receptor_id RG5616/24
  • Facturas B Ley 27743: IVA contenido (PDF)
  • Actvidades Agropecuarias RG 5259
  • Otros webservices: remito harinero y Carta de Porte

Incluye ajustes a Python3 y resolucion de conflictos.
Pendientes:

  • revison unicode
  • test unitarios
  • ajustes finales plantilla PDF

Checklist

  • Classes, Variables, function and methods logic ok
  • Comments written explaining what the code does
  • All python code is PEP8 compliant (run black .)
  • No lint issues (run flake8)
  • Test coverage with pytest implemented
  • Reviewers assigned (at least 1 mentor)

Manual test evidence

(attach command-line examples, execution output & logs, etc.)

@dcrocetti
Copy link

Buenas tardes Romina/Mariano.
Cuando intenté compilar con los nuevos cambios pyfepdf.py dio error de identación en la línea 1341. Corrí la línea como está debajo y se solucionó. (No sé si es el lugar correcto para enviar estos casos.)

1338 if p == int(p):
1339 imp_it_bruto = importe_it / (Decimal(p) / Decimal(100) + Decimal(1))
1340 imp_it_iva = importe_it - imp_it_bruto
1341 iva_liq += imp_it_iva

@estudiosistemas
Copy link

Hola Mariano/Romina!

Les dejo algunas consideraciones que tuve al generar el instalador. siguiendo los pasos que están en actions.

Como referencia, la instalación la hice en dos maquinas, un Win11 de 64bits y un Win 10 de 32 bits, y en las dos me dio los mismos errores.

  1. Al hacer "python setup.py install" me dio un error de "deprecationWarning: setup.py install is deprecated."

    • lo solucione instalando una version anterior de setuptools "pip install setuptools==58.2.0"
  2. Al incluir import pyi25 y/o from pyafipws import pyqr en setup_win.py y hacer python setup_win.py py2exe, me dio el error "no module named pil.imagetk".

    • lo soluciones quitando las referencias _imagingtk", "PIL._imagingtk", "ImageTk", "PIL.ImageTk" de la linea 149 en excludes

    excludes=["pywin", "pywin.dialogs", "pywin.dialogs.list", "win32ui",
    "Tkconstants","Tkinter","tcl",
    "_imagingtk", "PIL._imagingtk", "ImageTk", "PIL.ImageTk", "FixTk",
    ]

  3. Una vez generado el instalador, al instalar me daba el error : "UnboundLocalError: local variable 'url' referenced before assignmen".

    • esto lo solucione agregando "url = None" en def main(): del archivo pyqr.py
  4. El error que no pude solucionar es el que da al instanciar el modulo pyqr en vb6, "Set pyqr = CreateObject("PyQR")"

Traceback (most recent call last):
File "win32com\server\policy.pyc", line 151, in CreateInstance
File "win32com\server\policy.pyc", line 215, in CreateInstance
File "win32com\server\policy.pyc", line 803, in call_func
File "win32com\server\policy.pyc", line 791, in resolve_func
File "win32com\server\policy.pyc", line 812, in _import_module
ModuleNotFoundError: No module named 'pyqr_com'
pythoncom error: CPyFactory::CreateInstance failed to create instance. (80004005)
pythoncom error: ERROR: server.policy could not create an instance.

espero poder ser de ayuda y gracias por todo el trabajo que hacen!!!

@estudiosistemas estudiosistemas mentioned this pull request Feb 26, 2025
reingart added a commit that referenced this pull request Mar 2, 2025
ignore e2e test for wsfev1, failing due new field #120
reingart added a commit that referenced this pull request Mar 2, 2025
* Bump actions/upload-artifact@v4
* Update python-package.yml & windows-installer.yml
* Fix artifact name collision https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md
* properly fix windows artifact name collision
* checkout repository to run registration and tests
* ignore barcode and qr tests not working yet
* include hidden files (.env with release info)
* update testing certificate and run tests only on 64 bits
* fix expired cert, do not override new cert
* ignore e2e test for wsfev1, failing due new field #120


Fixes:
> This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
reingart added 6 commits March 2, 2025 16:53
Fix error "no module named pil.imagetk"
Thanks @estudiosistemas!
Fixes ""UnboundLocalError: local variable 'url' referenced before assignment"
Thanks @estudiosistemas
Temporarily disable unit test until new snapshots of webserver communications are taken

```
=========================== short test summary info ============================
FAILED tests/test_wsfev1.py::test_main_parametros - RuntimeError: Operation FEParamGetCondicionIvaReceptor not found in WSDL: Service/Port Type: ('Service', 'ServiceSoap')
```
@reingart
Copy link
Owner Author

reingart commented Mar 2, 2025

Gracias @estudiosistemas por los comentarios!, ya estarian los ajustes (tambien pueden usar directamente la herramenienta de sugerencia para dejar una modificacion a los archivos)

Sobre el tema de pyqr, podrias probar ejecutando pyqr.exe --register? , deberia funcionarles luego.
Si el problema persiste, sugiero abrir otro ticket, porque no ha cambiado el QR y es un tema complementario (pueden seguir usando la version anterior).

Ya actualice todo el flujo de GiHub Actions para compilar, probar y generar el instalador automaticamente; pueden probar el que se prepara en los artefactos: https://github.com/reingart/pyafipws/pull/120/checks
image

@reingart reingart self-assigned this Mar 2, 2025
@estudiosistemas
Copy link

Hola Mariano! Me alegra haber podido colaborar un poquito a todo el laburo que hacen! Voy a compilar todo de nuevo y probar el registro de pyqr para ver si funciona instanciado el objeto desde vb6 y te aviso. Abrazo!

@dcrocetti
Copy link

Buen día Mariano, buen día al grupo completo !

Adhiero al agradecimiento de los demás integrantes. Realmente me gustaría colaborar en el proyecto más activamente. Reconozco limitaciones en mis conocimientos para poder hacerlo de esa manera, De todas formas estoy incursionando en Python. Quedé obsoleto con las nuevas tecnologías, es así.

Contarles además que compilé con los nuevos archivos y todo salió OK.

Gracias Gracias ! ! !

@consertec
Copy link

Buen día Mariano, buen día al grupo completo !

Adhiero al agradecimiento de los demás integrantes. Realmente me gustaría colaborar en el proyecto más activamente. Reconozco limitaciones en mis conocimientos para poder hacerlo de esa manera, De todas formas estoy incursionando en Python. Quedé obsoleto con las nuevas tecnologías, es así.

Contarles además que compilé con los nuevos archivos y todo salió OK.

Gracias Gracias ! ! !

Hola! Una consulta:
Compilaste descargando la rama "2025" y siguiendo los pasos del Workflow de Actions?

@dcrocetti
Copy link

Buen día Mariano, buen día al grupo completo !
Adhiero al agradecimiento de los demás integrantes. Realmente me gustaría colaborar en el proyecto más activamente. Reconozco limitaciones en mis conocimientos para poder hacerlo de esa manera, De todas formas estoy incursionando en Python. Quedé obsoleto con las nuevas tecnologías, es así.
Contarles además que compilé con los nuevos archivos y todo salió OK.
Gracias Gracias ! ! !

Hola! Una consulta: Compilaste descargando la rama "2025" y siguiendo los pasos del Workflow de Actions?

Hola, Buenas tardes!
Tengo una instalación vieja en Python 2.7 donde compilo sin problemas. Lo que hice fue descargar los 6 u 7 archivos modificados y compilé sin inconvenientes.
Tengo pendiente hacer en otra instalación o en Entorno Virtual las pruebas con Python 3 siguiendo el Workflow de actions.

@consertec
Copy link

consertec commented Mar 4, 2025 via email

@dcrocetti
Copy link

Si..
bajé los archivos de:
https://github.com/reingart/pyafipws/pull/120/files
(hubo varios paquetes que se actualizaron (requirements.txt).
python setup.py py2exe (así compila bien y funciona correctamente)

Con:
python setup_win.py py2exe (compila bien, pero al momento de instanciar los objetos desde vb6 me abre una ventana de python y se me cuelga el sistema)

@cperezabo
Copy link
Contributor

¿Hay un ETA para que esto esté en main?

@consertec
Copy link

consertec commented Mar 5, 2025 via email

@pbordon
Copy link

pbordon commented Mar 6, 2025

Probé con pyqr.exe --register pyqr_com.exe --register y nada, en VB6 da error al Crear el objeto.
Como decís vos Mariano, no cambió nada en el pyqr.
Estoy compilando todo con python 3.10 , a través de python setup_win.py py2exe.
Hubo algún fix mas?
Gracias

Gracias @estudiosistemas por los comentarios!, ya estarian los ajustes (tambien pueden usar directamente la herramenienta de sugerencia para dejar una modificacion a los archivos)

Sobre el tema de pyqr, podrias probar ejecutando pyqr.exe --register? , deberia funcionarles luego. Si el problema persiste, sugiero abrir otro ticket, porque no ha cambiado el QR y es un tema complementario (pueden seguir usando la version anterior).

Ya actualice todo el flujo de GiHub Actions para compilar, probar y generar el instalador automaticamente; pueden probar el que se prepara en los artefactos: https://github.com/reingart/pyafipws/pull/120/checks image

@dcrocetti
Copy link

Buen día Grupo!

  • Bajé los archivos que te comente antes;
  • Usé los siguientes requirements
    pytest==4.6.11; python_version <= '2.7'
    pytest==7.2.0; python_version > '3'
    pytest-html==1.22.1; python_version <= '2.7'
    pytest-html==3.2.0; python_version > '3'
    pytest-vcr==1.0.2; python_version <= '2.7'
    pytest-cov==2.12.1; python_version <= '2.7'
    pytest-freezegun==0.4.2; python_version <= '2.7'
    pytest-vcr==1.0.2; python_version > '3'
    pytest-cov==4.0.0; python_version > '3'
    pytest-freezegun==0.4.2; python_version > '3'
    pytest-mock==2.0.0; python_version <= '2.7'
    pytest-mock==3.10.0; python_version > '2.7'
    pywin32==304; sys_platform == "win32" and python_version > '3'
    py2exe==0.11.1.1; sys_platform == "win32" and python_version > '3'

Tuve algún tema de identacion al principio con pyfepdf que lo comenté acá mismo, pero ya está resuelto en estos últimos archivos.

No salió todo funcionando de una. Tenía errores como que no encontraba los módulos también. Lo que hice fue limpiar la carpeta dist y build y se solucionó ese tema con ese movimiento.

  • Para generar el instalador me daba error porque me pedía el vcredist.exe. Lo descargué y lo copie a la carpeta donde están todos los archivos .py.

Espero sirva la ayuda.

@reingart
Copy link
Owner Author

reingart commented Mar 8, 2025

Gracias @dcrocetti por los comentarios y por confirmar que funciona.

Sugeriria si pueden abrir otro ticket para la actualizacion de las dependencias y el tema de vcredist.

Igualmente los instaladores se estan generando aca en GitHub (ver actions, se pueden descargar de ahi como comente antes).
Voy a revisar para ver que se publiquen automaticamente.

@reingart reingart merged commit 545ddce into main Mar 8, 2025
6 checks passed
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

me da error l usar wsfev1 actaulizado en marzo 2025.en ok = WSFEv1.EstablecerCampoFactura("cancela_misma_moneda_ext", N)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ya lo solucione. enviandolo DESPUES de crearfactura
mi duda es si antes del 15 de abril hay que mandarlo en N o no mandarlo
no aclaran bien si Cancela en la misma moneda de la factura o sea en Pesos va N
"N" ?

@consertec
Copy link

consertec commented Mar 18, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants