Actualización del script de la base de datos para histórico de movimientos.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@575 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
David Arranz 2008-09-05 15:08:29 +00:00
parent f8f62808eb
commit 380c41f014

View File

@ -1539,8 +1539,7 @@ MANO_OBRA,
PRECIO_PVP_TOTAL,
ID_ARTICULO)
AS
SELECT ARTICULOS.ID,
ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION,
SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION,
ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN,
ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,
ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO,
@ -1777,40 +1776,40 @@ WHERE
/* View: V_EMPLEADOS */
CREATE VIEW V_EMPLEADOS(
ID,
ID_CATEGORIA,
NIF_CIF,
NOMBRE,
PERSONA_CONTACTO,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
TELEFONO_1,
TELEFONO_2,
MOVIL_1,
MOVIL_2,
FAX,
EMAIL_1,
EMAIL_2,
PAGINA_WEB,
NOTAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_EMPRESA,
REFERENCIA,
FECHA_NACIMIENTO,
CATEGORIA,
FECHA_ALTA_EMPRESA,
FORMACION_BASE,
FORMACION_COMPLE,
FORMACION_RECIBIDA,
EXPERIENCIA,
CONTRATO,
DURACION,
FECHA_BAJA,
CAUSA_BAJA)
ID,
ID_CATEGORIA,
NIF_CIF,
NOMBRE,
PERSONA_CONTACTO,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
TELEFONO_1,
TELEFONO_2,
MOVIL_1,
MOVIL_2,
FAX,
EMAIL_1,
EMAIL_2,
PAGINA_WEB,
NOTAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_EMPRESA,
REFERENCIA,
FECHA_NACIMIENTO,
CATEGORIA,
FECHA_ALTA_EMPRESA,
FORMACION_BASE,
FORMACION_COMPLE,
FORMACION_RECIBIDA,
EXPERIENCIA,
CONTRATO,
DURACION,
FECHA_BAJA,
CAUSA_BAJA)
AS
SELECT V_CONTACTOS.ID,
V_CONTACTOS.ID_CATEGORIA,
@ -1847,13 +1846,13 @@ SELECT V_CONTACTOS.ID,
EMPLEADOS_DATOS.DURACION,
EMPLEADOS_DATOS.FECHA_BAJA,
EMPLEADOS_DATOS.CAUSA_BAJA
FROM V_CONTACTOS
INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID)
WHERE V_CONTACTOS.ID_CATEGORIA = 3;
/* View: V_REC_FAC_CLI */
CREATE VIEW V_REC_FAC_CLI(
ID_FACTURA,
@ -2494,6 +2493,7 @@ REFERENCIA,
FAMILIA,
DESCRIPCION,
REFERENCIA_FAB,
UNIDAD_MEDIDA,
STOCK,
UNIDADES_ALMACEN,
RESERVA,
@ -2508,6 +2508,7 @@ SELECT ID_ALMACEN,
ARTICULOS.FAMILIA,
ARTICULOS.DESCRIPCION,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.UNIDAD_MEDIDA,
/* COALESCE(ARTICULOS.PRECIO_NETO,0) as PRECIO_NETO,*/
(SUM(STOCK) - SUM(RESERVA)) as STOCK,
SUM(STOCK) as UNIDADES_ALMACEN,
@ -2538,7 +2539,8 @@ GROUP BY ID_ALMACEN,
ARTICULOS.REFERENCIA,
ARTICULOS.FAMILIA,
ARTICULOS.DESCRIPCION,
ARTICULOS.REFERENCIA_FABR
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.UNIDAD_MEDIDA
/* ARTICULOS.PRECIO_NETO*/;
@ -2569,8 +2571,8 @@ SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE,
ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL,
ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO,
ALMACENES.OBSERVACIONES, OBRAS_DATOS.ID_CLIENTE, CLIENTES.NOMBRE AS NOMBRE_CLIENTE,
OBRAS_DATOS.ID_SUBCONTRATA, SUBCONTRATAS.NOMBRE AS NOMBRE_SUBCONTRATA,
ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO
OBRAS_DATOS.ID_SUBCONTRATA, SUBCONTRATAS.NOMBRE AS NOMBRE_SUBCONTRATA,
ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO
FROM ALMACENES
INNER JOIN OBRAS_DATOS ON (OBRAS_DATOS.ID_ALMACEN = ALMACENES.ID)
LEFT OUTER JOIN CONTACTOS AS CLIENTES ON (CLIENTES.ID = OBRAS_DATOS.ID_CLIENTE)
@ -2578,8 +2580,6 @@ LEFT OUTER JOIN CONTACTOS AS SUBCONTRATAS ON (SUBCONTRATAS.ID = OBRAS_DATOS.ID_S
WHERE ALMACENES.TIPO_ALMACEN = 'OBRA';
/* View: V_PED_PROV_SITUACION */
CREATE VIEW V_PED_PROV_SITUACION(
ID_PEDIDO,
@ -2596,7 +2596,6 @@ GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO
;
/* View: V_PROVEEDORES */
CREATE VIEW V_PROVEEDORES(
ID,
@ -3042,6 +3041,186 @@ ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO)
;
CREATE VIEW V_HIS_MOV_ALB_CLI(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
ALBARANES_CLIENTE.FECHA_ALBARAN,
V_ALB_CLI_DETALLES.ID_ALMACEN,
V_ALB_CLI_DETALLES.ID_ARTICULO,
CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'Entrada'
ELSE 'Salida' END,
(-1)*V_ALB_CLI_DETALLES.CANTIDAD,
CASE WHEN ALBARANES_CLIENTE.IMPORTE_TOTAL < 0 THEN 'Orden de devolución de cliente ' || ALBARANES_CLIENTE.REFERENCIA
ELSE 'Albarán de cliente ' || ALBARANES_CLIENTE.REFERENCIA END
FROM V_ALB_CLI_DETALLES
LEFT JOIN ALBARANES_CLIENTE
ON (V_ALB_CLI_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID)
WHERE (V_ALB_CLI_DETALLES.ID_ALMACEN IS NOT NULL)
AND (V_ALB_CLI_DETALLES.SITUACION in ('ENVIADO', 'SERVIDO'))
;
CREATE VIEW V_HIS_MOV_ALB_PROV(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
ALBARANES_PROVEEDOR.FECHA_ALBARAN,
V_ALB_PROV_DETALLES.ID_ALMACEN,
V_ALB_PROV_DETALLES.ID_ARTICULO,
CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'Salida'
ELSE 'Entrada' END,
V_ALB_PROV_DETALLES.CANTIDAD,
CASE WHEN ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0 THEN 'Orden de devolución ' || ALBARANES_PROVEEDOR.REFERENCIA
ELSE 'Albarán de proveedor ' || ALBARANES_PROVEEDOR.REFERENCIA END
FROM V_ALB_PROV_DETALLES
LEFT JOIN ALBARANES_PROVEEDOR
ON (V_ALB_PROV_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID)
WHERE (V_ALB_PROV_DETALLES.ID_ALMACEN IS NOT NULL)
;;
;
CREATE VIEW V_HIS_MOV_REGULARIZACIONES(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO,
CASE WHEN TIPO = 'E' THEN 'Entrada'
ELSE 'Salida' END,
CASE WHEN TIPO = 'S' THEN (-1)* CANTIDAD
ELSE CANTIDAD END,
'Regularización por - ' || CAUSA
FROM MOVIMIENTOS
;
CREATE VIEW V_HIS_MOV_AUX(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_ALB_PROV
UNION ALL
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_ALB_CLI
UNION ALL
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_REGULARIZACIONES
;
CREATE VIEW V_HISTORICO_MOVIMIENTOS(
FECHA,
ID_ALMACEN,
ID_EMPRESA,
NOMBRE_ALMACEN,
ID_ARTICULO,
FAMILIA,
REFERENCIA,
UNIDAD_MEDIDA,
FABRICANTE,
REFERENCIA_FABR,
DESCRIPCION,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
V_HIS_MOV_AUX.FECHA,
V_HIS_MOV_AUX.ID_ALMACEN,
ALMACENES.ID_EMPRESA,
ALMACENES.NOMBRE,
V_HIS_MOV_AUX.ID_ARTICULO,
ARTICULOS.FAMILIA,
ARTICULOS.REFERENCIA,
ARTICULOS.UNIDAD_MEDIDA,
ARTICULOS.FABRICANTE,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.DESCRIPCION,
V_HIS_MOV_AUX.TIPO_MOVIMIENTO,
V_HIS_MOV_AUX.CANTIDAD,
V_HIS_MOV_AUX.CAUSA
FROM V_HIS_MOV_AUX
LEFT JOIN ALMACENES ON (ALMACENES.ID = V_HIS_MOV_AUX.ID_ALMACEN)
LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_HIS_MOV_AUX.ID_ARTICULO)
WHERE (V_HIS_MOV_AUX.ID_ARTICULO <> 0)
AND (ARTICULOS.INVENTARIABLE = 1)
;
CREATE VIEW V_INV_DETALLE_RESERVAS(
ID,
ID_EMPRESA,
ID_ALMACEN,
NOMBRE_ALMACEN,
FECHA_RESERVA,
CAUSA_RESERVA,
ID_ARTICULO,
REFERENCIA,
DESCRIPCION,
FAMILIA,
UNIDAD_MEDIDA,
FABRICANTE,
REFERENCIA_FABR,
CANTIDAD,
ID_ALMACEN_RESERVA,
NOMBRE_ALMACEN_RESERVA)
AS
select movimientos.id, almacenes1.ID_EMPRESA, movimientos.ID_ALMACEN, almacenes1.nombre as nombre_almacen,
movimientos.fecha_movimiento as fecha_reserva, movimientos.causa, movimientos.id_articulo,
articulos.referencia, articulos.descripcion, articulos.familia,
articulos.unidad_medida, articulos.fabricante, articulos.referencia_fabr,
movimientos.cantidad, movimientos.id_almacen_reserva,
almacenes2.nombre as nombre_almacen_reserva
from movimientos
left join almacenes almacenes1 on (almacenes1.ID = movimientos.ID_ALMACEN)
left join almacenes almacenes2 on (almacenes2.ID = movimientos.ID_ALMACEN_RESERVA)
left join articulos on (articulos.id = movimientos.id_articulo)
where tipo = 'R';
;
/******************************************************************************/
/**** Primary Keys ****/
@ -3465,7 +3644,6 @@ begin
:IMPORTE_TOTAL, :VISIBLE
do
begin
contador = contador + 1;
if (tipo_detalle = 'Titulo') then
begin
concepto_capitulo = concepto;