viernes, 10 de enero de 2014

El Infierno Aspel

No sé si he tenido muy mala suerte o si no me he adentrado lo suficiente en los sistemas de Aspel pero de verdad creo que los Aspel (Coi, Noi, SAE, Caja) diseña sus programas de tal manera que se asegura de obligarnos a pagar costosas pólizas de servicio  y constantes actualizaciones.

Aun no termino de entender porque es tan popular siendo, desde mi punto de vista, tan malo.

Tendría un sin fin de quejas con casi todos sus sistemas, pero comenzare con Aspel Caja:


En la versión 3.5 finalmente se decidieron a usar una base de datos "moderna", pues en la versiones anteriores venían usando maneja dores de base de datos de la era de los dinosaurios. En esta versión optaron por FireBird que es un derivado de mysql , y a juzgar por las pruebas no es nada malo el manejador lo que es realmente malo es el diseño de la base. a quien que sea medianamente inteligente o que tenga nociones de bases de datos relacionales se le ocurre hacer una tabla para cada día de operaciones.

Asi es caja crea varias tablas por cada dia de operacion, entre lasque recuerdo son

VXXXXX: Donde V indica quese trata de una tabla de ventas
DXXXXX: Donde D indicaq que se trata de una tabla de detalle de venta
IXXXXX:   Donde I indica que se trata de una tabla de Ingresos o era Impuestos ( no recuerdo).


Asi que despues de un añode funcionamiento tendra usted en su base de datos más de mil tablas si 1000 tablas. Ni varios de los ERPS mas robustos que conozco tienen esa cantidad de tablas. Pero esperen eso no es todo estaba olvidando comentar que crea una de estas tablas por cada tienda o por cada caja que esten configurada; asi que supongamos que tiene una tienda con 6 cajas * 3 tablas ( en realidad son mas) * 365 días, después de un año tendremos mas de 6,500 (seis mil quinientas) tablas en la base de daos.

Ya se imaginaran lo lenta que se puede volver la base de datos y lo complicado que resulta intentar hacer una consulta.

Por ejemplo para consultar las ventas de dos días de dos cajas diferentes  (desde estas tablas ) se tendría que hacer algo  como esto:

Select   *
From    VentasCajaUnoDiaUno
Union
Select *
Fom     VentasCajaDosDiaUno
Union
Select *
Fom     VentasCajaUnoDiaDos
Union
Select *
Fom     VentasCajaDosDiaDos

Dios Santo.......esto es solo para dos días y dos cajas, en lugar de poder hacer algo similar a esto:

Select *
from Ventas
Where ven_fecha between Fecha1 and Fecha2
            and ven_cve_caja in (1,2)
 

Quien les enseño a diseñar bases de datos, de verdad son tan tontos ? No lo creo mas bien creo que ha sido una cuestión de mantener la base de datos bastante mal estructurada hasta el punto que sea casi imposible obtener información de ella si no es a través de sus reportes .

Espero sus comentarios


 
 
En este espacio pretendo compartir algunas experiencias, trucos y aprendizajes que he tenido a lo largo de mi pasar por el mundo de la tecnología, algunas son cosas muy sencillas otras no tanto pero todas me han sido de utilidad y espero que cumpla con estos dos objetivos:


  • Facilitar el trabajo de alguien más.
  • Me sirvan de referencia cuando me enfrente de nuevo al mismo problema.