miércoles, 18 de noviembre de 2015

Nomenclatura Tablas Aspel Caja 3.5

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