Como lo he mencionado en otra entrada Aspel Caja crea, diariamente, varias tablas para su funcionamiento cosa que es bastante ineficiente, creo que eso también ya lo he dicho en la entrada anterior pero no me cansaré de decirlo.
Siempre es importante saber la nomenclatura que usa CAJA, para nombrar a sus tablas
XCCDDMMX
Dónde
X : Puede ser
V = Tabla que contiene las notas de Ventas
D = Tabla que contiene el Detalle de las notas de Venta (es decir las partidas de cada nota)
I = Tabla que contiene el detalle de los Impuestos cobrados en cada Nota
B = Tabla que contiene una Bitácora de los movimientos realizados en el sistema
CC: Número de caja o sucursal (esto depende si se esta administrando por caja o por sucursal)
DD: Día de operación (dos dígitos)
MM= Mes de Operación (dos digitos)
X = Año de la operación ( una letra que representa el año de la operación S= 2013, T=2015, U=2015 ...)
Sin duda a la gente de Aspel les gusta complicar las cosas, pues de entrada no hay necesidad de crear una tabla para cada día de operación y luego la nomenclatura que usaron (especialmente en los años), bueno eso no tiene perdón.
Finalmente les dejo una pequeña función en VBA que Toma una fecha y devuelve una cadena que con el formato usado Por aspel caja, para que en caso de tener que hacer una consulta dinámica ustedes solo agreguen la tabla que desean consultar y el numero de caja o sucursal.
Este es un ejemplo de como se podría construir una consulta para obtener los datos de las notas de Venta de Aspel Caja para la tienda o caja 01 (V= Ventas , 01= No Caja o Sucursal)
qry = " SELECT * FROM V01" + FechaCaja(ToDay());
'-------------------------------------------------------------------------------------------------
'Devuelve una cadena que representa la fecha con la nomenclatura usada por Caja35 en el formato usado por aspel caja 3.5
'Formato de fecha Caja: ddmmx
' Donde: dd= 2 digitos para dia mm= 2 digitos para mes x= 1 letra para año (S= 2013, T=2014)
'
'-------------------------------------------------------------------------------------------------
Private Function FechaCaja(Fecha As Date) As String
Dim FecCaja As String
'Obtiene el dìa al nombre de talba
If Day(Fecha) < 10 Then
FecCaja = "0" & CStr(Day(Fecha))
Else
FecCaja = FecCaja & CStr(Day(Fecha))
End If
'agrega el mes (mm) al nombre de la tabla
If Month(Fecha) < 10 Then
FecCaja = FecCaja & "0" & CStr(Month(Fecha))
Else
FecCaja = FecCaja & CStr(Month(Fecha))
End If
'Agrega la letra correspondiente al año, tomando en cuenta que en el sistena
'El año 2013 corresponde a la letra S --1930 Representa el incremento inicial--
FecCaja = FecCaja & Chr(Year(Fecha) - 1930)
FechaCaja = FecCaja
End Function
Mostrando las entradas con la etiqueta Aspel Caja. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Aspel Caja. Mostrar todas las entradas
miércoles, 18 de noviembre de 2015
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
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
Suscribirse a:
Entradas (Atom)