SIAPy

Captura de pantalla aplicativo factura electronica (win8.1)

Prototípo minimo de un sistema similar al SIAP (AFIP/DGI Argentina) en wxPython / PythonCard para evaluación.

Ver PyFactura y PyRece para ver aplicativos de factura electrónica desarrollados en paralelo para el proyecto PyAfipWs (herramientas e interfaces para webservices AFIP y temas relacionados).

Es una prueba rápida (desechable) de las caracteristicas del lenguaje y librerias para poder evaluarlas entre todos, no pretende ser otra cosa.

Pendiente: Habria que ver si poner o no los logos y los íconos de los botones del sistema de la AFIP (SIAP original). Los íconos actuales son del Proyecto Tango (software libre).

Pantallas:

  • Solo 2 pantallas del SIAP:
    • La primer pantalla (lista de contribuyentes)
    • La pantalla de datos generales de la Persona

Funcionalidad:

  • Solo se completa minimamente la pantalla de contribuyentes (lista y arbol)
  • Se puede "Agregar" un contribuyente
  • No se graba al disco ni se puede editar/modificar o borrar

Diseño:

  • Clases muy simples (sin aplicar patrones ni un análisis profundo)
  • Convención de Nombres: similar a VB para que sea mas "entendible" para los que no estan familiarizados con Python/PythonCard
  • Archivos:
    • siapy.py: pantalla principal. 37 Líneas de código (LOC)
    • persona.py: pantalla de datos generales de la persona (llamada por la pantalla principal). 36 LOC
    • siapy.rsrc.py: recursos (elementos gráficos) de la pantalla princiapal. 47 LOC generadas automáticamente por el editor gráfico de pantallas
    • persona.rsrc.py: recursos (elementos gráficos) de la pantalla de persona. 107 LOC generadas automáticamente por el editor gráfico de pantallas
    • setup.py: script de intalación (para generar el py2exe)

Resultados:

  • Tiempo de desarrollo:
    • Interface gráfica: 30 minutos
    • Codificación: 1 hora
    • Varios: buscar íconos, leer documentación, pruebas: 1 hora 30 minutos
  • Ventajas:
    • Diseño Interfáce (editor gráfico de pantallas) muy sensillo, completo, rápido
    • Ejemplos de Pythoncard (y código fuente) muy sensillos y autodocumentado (practicamente reemplazan la documentación)
    • El código quedo bastante simple
  • Desventajas:
    • Documentación medio pobre, aunque es muy sensillo y practicamente no hace falta
    • Algunos problemas con el editor de código
    • Algunos problemas con los encoding (acentos, ñ), pero esto es algo generalizado con python
    • Problemas iniciales de distribución con Py2exe (faltaban módulos)
  • Cosas que faltarían a PythonCard? (habría que usar directamente wxPython or modificar PythonCard?):
    • Formularios MDI Padre/Hijo (si es que se van a usar)
    • Control de texto (con máscara y validación) para:
      • Números
      • Fechas
      • Cuiles
    • Algunos métodos para mejor control de los arboles (iconos, expansión, etc.)

Herramientas utilizadas:

  • Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32
  • wxPython 2.8.6.0 (msw-unicode)
  • PythonCard? 0.8.2
  • Py2EXE 0.6.6

Nota:: Zipeado, el directorio de distribución (sin instalador) pesa 9MB, por eso esta comprimído con 7-Zip a 4.2MB. Para los que no tienen 7Zip instalado no hay problema porque es un autoextraíble. Son temas para tener en cuenta.

Instalación:

  • Bajar el siapy0-sfx.exe
  • Ejecutarlo
  • Pide el directorio de destino (completar o dejar sin cambios según corresponda)
  • Ir al directorio del paso anterior, carpeta dist
  • Ejecutar el archivo siapy.exe

Aclaración:: para las personas preocupadas por la seguridad que no quieran ejecutar el siapy0-sfx.exe por temor a virus o lo que sea, o los usuarios de linux que no puedan ejecutar programas de windows, igualmente pueden abrirlo y descomprimirlo con el programa 7-Zip, que obviamente es software libre.

Capturas de Pantalla:

Pantalla Principal:

Pantalla Principal

Pantalla Datos de la Persona:

Pantalla Persona

"Pantallazo" en Debian/GNU Linux:

Pantallazo en Debian

Attachments