Addons estándar / Módulo de cambio de tarifas desde compras / Instalación y soporte
Modelo de datos
El diccionario DSIT_VIV_TAR crea cuatro tablas propias, añade campos a tablas estándar de a3ERP, despliega un procedimiento almacenado y un trigger sobre FAMILIAS.
Tabla de configuración (SIT_VIVT_CONFIGURACION)#
Es la pantalla Configuración Precios y EAN13. Gobierna todo el módulo y debe tener un único registro, o ninguno.
| Campo | Descripción | Valores |
|---|---|---|
SIT_VIVT_IDENTIFICADOR |
Identificador (identidad, PK) | |
SIT_VIVT_GENERA_EAN13 |
Generar EAN13 automático en artículos | T / F |
SIT_VIVT_PREFIJO_EAN13 |
Prefijo del EAN13 (solo si se genera) | 3 a 7 dígitos numéricos |
SIT_VIVT_CALCULO_PRECIO_VENTA |
Origen del cálculo de tarifas | SinCalculo / PrcCompra / PrcVenta |
SIT_VIVT_TARIFA |
Tarifa 1 (coincide con el precio de venta de la ficha) | Código de tarifa |
SIT_VIVT_TARIFA2 … SIT_VIVT_TARIFA10 |
Tarifas 2 a 10 | Código de tarifa |
SIT_VIVT_REGISTRA_HISTORICO |
Registrar el histórico de auditoría de tarifas (ver más abajo) | T / F, por defecto F |
SIT_VIVT_APLICACION_AUTOMATICA |
Aplicar automáticamente, al guardar el albarán de compra, los recomendados de los artículos en modo Auto (ver más abajo) |
T / F, por defecto F |
La Tarifa 1 es la tarifa base
SIT_VIVT_TARIFA (Tarifa 1) es obligatoria en cualquier modo y siempre se corresponde con el precio de venta de la ficha del artículo. Las tarifas en blanco se ignoran en el cálculo.
Tabla de coeficientes (SIT_VIVT_COEFICIENTES)#
Es la pantalla Coeficientes de familias y tarifas. Define, para cada combinación de familia estadística y tarifa, el coeficiente (margen) a aplicar.
| Campo | Descripción |
|---|---|
SIT_VIVT_IDENTIFICADOR |
Identificador (identidad, PK) |
CODFAM |
Familia estadística |
TARIFA |
Tarifa de venta |
SIT_VIVT_COEFICIENTE |
Coeficiente multiplicador |
Solo cuentan las tarifas configuradas
Un coeficiente cuya TARIFA no figure en alguno de los diez campos de tarifa de SIT_VIVT_CONFIGURACION se ignora.
Tabla de histórico de tarifas (SIT_VIVT_HISTORICO_TARIFAS)#
Registro de auditoría, opcional (activable con SIT_VIVT_REGISTRA_HISTORICO), de cada cambio de precio de tarifa aplicado por el módulo. Se expone como pestaña de solo lectura en la ficha del artículo (relación por CODART). Ver la operativa de usuario en Histórico de tarifas y el detalle de cuándo se registra cada fila en Funcionamiento y eventos.
| Campo | Descripción | Contenido |
|---|---|---|
SIT_VIVT_FECHA_HORA |
Fecha y hora | Cuándo se aplicó el cambio (default GETDATE()) |
SIT_VIVT_USUARIO |
Usuario | Usuario a3ERP que realizó la operación, cuando el contexto lo expone |
CODART |
Cód. artículo | Artículo cuyo precio cambia |
TARIFA |
Cód. tarifa | Tarifa del tramo cambiado |
SIT_VIVT_PRC_ANTERIOR |
Prc. anterior | Precio anterior (NULL si el tramo se crea) |
SIT_VIVT_PRC_NUEVO |
Prc. nuevo | Precio aplicado |
SIT_VIVT_COSTE |
Coste | Coste total de referencia (solo desde el albarán de compra) |
SIT_VIVT_ORIGEN |
Origen | ALBARAN_COMPRA / FICHA_ARTICULO / RECALCULO_MASIVO |
SIT_VIVT_NUM_DOC |
Nº documento | Referencia legible del documento origen, si existe |
SIT_VIVT_DESC_ARTICULO |
Artículo | Descripción del artículo en el momento del cambio (instantánea) |
SIT_VIVT_DESC_TARIFA |
Tarifa | Descripción de la tarifa en el momento del cambio (instantánea) |
Campos técnicos, marcados No ver y no visibles en la pestaña (solo para soporte por SQL):
| Campo | Contenido |
|---|---|
SIT_VIVT_IDENTIFICADOR |
Identificador (identidad, PK) |
SIT_VIVT_TIPO_DOC |
Tipo de documento origen (AC) |
SIT_VIVT_ID_DOC |
Identificador del documento origen (IDALBC) |
Instantánea, no relación en vivo
SIT_VIVT_DESC_ARTICULO y SIT_VIVT_DESC_TARIFA se guardan con el valor vigente en el momento del cambio y no se actualizan si después cambian las descripciones de artículo o tarifa.
Índice no único por (CODART, TARIFA, SIT_VIVT_FECHA_HORA) para la consulta "historia de precios de este artículo en esta tarifa".
Campos añadidos a LINEALBA (líneas de albarán)#
El módulo amplía las líneas de albarán para soportar el cálculo desde compras. Se rellenan al guardar el albarán de compra (ver Funcionamiento y eventos).
| Campo | Descripción |
|---|---|
SIT_VIVT_COSTE_TOTAL |
Coste total del artículo en el documento (informativo) |
SIT_VIVT_PRC_ACTUAL |
Precio de venta actual en la ficha del artículo (informativo) |
SIT_VIVT_ACTUALIZA_TARIFA |
Marca de la línea para aplicar tarifas (T / F, por defecto F) |
SIT_VIVT_PRC_RECOMENDADO |
Precio recomendado para la Tarifa 1 |
SIT_VIVT_PRC_RECOMENDADO2 … SIT_VIVT_PRC_RECOMENDADO10 |
Precio recomendado para las tarifas 2 a 10 |
SIT_VIVT_MODO_APLICADO |
Modo efectivo con el que el SP trató la línea (Manual / Auto / PrcFijo), etiqueta "Modo act. tarifas (solo lectura)". Puramente informativo: ninguna lógica lo lee, el modo efectivo se resuelve siempre desde ARTICULO/FAMILIAS. NULL en líneas anteriores al despliegue de este campo |
Tabla de modo de tarifas por familia (SIT_VIVT_MODO_FAMILIAS)#
Modo de actualización de tarifas desde compras, persistente por familia estadística (ver Funcionamiento y eventos). Es una tabla propia del módulo, no un campo de extensión de FAMILIAS: a3ERP no muestra los campos de extensión del diccionario en la ficha de familias, así que la política por familia se edita en Adicionales de gestión, como SIT_VIVT_COEFICIENTES.
| Campo | Descripción | Valores |
|---|---|---|
SIT_VIVT_IDENTIFICADOR |
Identificador (identidad, PK) | |
CODFAM |
Familia estadística (clave única: una política por familia) | Código de familia |
SIT_VIVT_MODO_TARIFAS |
Modo de actualización de tarifas de la familia | Manual / Auto / PrcFijo, por defecto Manual |
La relación con FAMILIAS (por CODFAM) tiene borrado en cascada: al borrar una familia estadística, su fila de modo se borra con ella.
Toda familia estadística tiene su fila
Un trigger AFTER INSERT sobre FAMILIAS (filtrado a FICHERO = 'Estadis') crea automáticamente la fila con Manual al dar de alta la familia. Al actualizar una empresa con familias ya existentes, el diccionario da de alta (de forma idempotente) las filas que falten. Así nunca hace falta comprobar si una familia tiene o no fila: siempre la tiene.
Campo añadido a ARTICULO#
| Campo | Descripción | Valores | Defecto |
|---|---|---|---|
SIT_VIVT_MODO_TARIFAS |
Modo de actualización de tarifas del artículo, override sobre el de su familia | SegunFamilia / Manual / Auto / PrcFijo |
SegunFamilia |
Se edita en la ficha estándar del artículo (esta sí muestra los campos de extensión).
Modo efectivo
El modo efectivo de un artículo es el suyo si es Manual/Auto/PrcFijo; con SegunFamilia (o NULL/vacío), el de la fila de su familia en SIT_VIVT_MODO_FAMILIAS (ARTICULO.CODFAMEST = SIT_VIVT_MODO_FAMILIAS.CODFAM); si la familia no tuviera fila (no debería ocurrir, ver nota anterior), Manual. En una empresa ya instalada, el diccionario rellena los artículos existentes con SegunFamilia para que ninguna ficha quede vacía.
Carga masiva inicial de modos por familia (implantación)#
La migración de valores desde el flag SGE_ESFIXE del addon heredado SGE_Gestio no es automática (esa equivalencia es por tarifa, no por familia); la política de modos se carga por SQL en cada implantación, después de aplicar el diccionario. Las filas de SIT_VIVT_MODO_FAMILIAS ya existen (las crea el trigger o el alta masiva del diccionario): solo hace falta actualizarlas. Ejemplo para poner un grupo de familias en modo automático (margen fijo) y dejar el resto en Manual (su default ya cubre esto, no hace falta tocarlas):
UPDATE SIT_VIVT_MODO_FAMILIAS SET SIT_VIVT_MODO_TARIFAS = 'Auto' WHERE CODFAM IN ('FAM1', 'FAM2', 'FAM3');
Overrides puntuales por artículo (p. ej. un artículo de una familia automática que se quiere dejar en precio fijo):
UPDATE ARTICULO SET SIT_VIVT_MODO_TARIFAS = 'PrcFijo' WHERE CODART IN ('ART001', 'ART002');
No hace falta tocar los artículos que deban seguir la política de su familia: su valor de partida (SegunFamilia) ya lo hace.
Campo añadido a TARIFAS#
| Campo | Descripción | Valores |
|---|---|---|
SIT_VIVT_IVA_INCLUIDO |
Indica si la tarifa trabaja con IVA incluido | T / F |
Este campo interviene en el cálculo (para quitar o añadir IVA) y en la propagación del IVA incluido a clientes y documentos de venta.
Procedimiento almacenado SIT_VIVT_CALCULA_PRC_RECOMENDADO#
El diccionario DSIT_VIV_TAR despliega también el procedimiento almacenado SIT_VIVT_CALCULA_PRC_RECOMENDADO, que calcula el coste total y los precios recomendados de las líneas de un albarán de compra. Resuelve el modo efectivo de cada artículo y se comporta según él: en Manual, respeta las líneas marcadas y solo recalcula las que no lo están (comportamiento histórico); en Auto, recalcula siempre y marca la línea; en PrcFijo, deja los recomendados a NULL y desmarca la línea. Su lógica completa se explica en Funcionamiento y eventos.
Tablas estándar que toca en ejecución#
Además de las anteriores, el módulo lee y escribe en estas tablas estándar durante su operación:
| Tabla | Uso |
|---|---|
ARTICULO |
Lee PRCVENTA, CODFAMEST, TIPIVA, ESVENTA, SIT_VIVT_MODO_TARIFAS; escribe el precio de venta al aplicar tarifas |
FAMILIAS |
El trigger de alta de SIT_VIVT_MODO_FAMILIAS lee FICHERO al dar de alta una familia |
TARIFAVE |
Tramos de tarifa: el módulo crea o actualiza el precio de cada tramo |
ALTERNA |
Códigos de barras alternativos: registra el EAN13 generado |
CLIENTES |
Fuerza IVAINCLUIDO según la tarifa del cliente |
DATOSCONFIG |
Lee NUMDECPRC (decimales de precio) para redondear |
DLLS |
Registro de la librería escuchadora (Sit.Viv.Tar.Dll.Escuchador) |