This commit is contained in:
roberto 2007-06-13 10:00:42 +00:00
parent 274caec7db
commit d913ca0b85
3 changed files with 701 additions and 5636 deletions

Binary file not shown.

View File

@ -1,6 +1,12 @@
/*
VISTAS RELATIVAS A PEDIDOS Y ALBARANES
*/
DROP VIEW V_HISTORICO_MOVIMIENTOS;
DROP VIEW V_HIS_MOV_AUX;
DROP VIEW V_HIS_MOV_ALB_CLI;
DROP VIEW V_HIS_MOV_ALB_PROV;
DROP VIEW V_HIS_MOV_REGULARIZACIONES;
DROP VIEW V_INVENTARIO;
DROP VIEW V_INVENTARIO_AUX;
@ -1071,7 +1077,7 @@ SELECT
0 AS CANTIDAD_ENVIADA,
0 AS CANTIDAD_SERVIDA
FROM V_PED_CLI_DETALLES
UNION
UNION ALL
SELECT
V_PED_CLI_ART_SITUACION_CANT.ID_PEDIDO,
V_PED_CLI_ART_SITUACION_CANT.ID_ARTICULO,
@ -1296,7 +1302,7 @@ SELECT
V_PED_PROV_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA,
0 as CANTIDAD_RECIBIDA
FROM V_PED_PROV_DETALLES
UNION
UNION ALL
SELECT
V_PED_PROV_ARTICULOS_RECIBIDOS.ID_PEDIDO,
V_PED_PROV_ARTICULOS_RECIBIDOS.ID_ARTICULO,
@ -1399,12 +1405,12 @@ from PEDIDOS_PROVEEDOR
where (ID not in (select ID_PEDIDO from v_ped_prov_parcialmente))
and (ID not in (select ID_PEDIDO from v_ped_prov_recibidos))
union
union all
select ID_PEDIDO, 'PARCIAL'
from v_ped_prov_parcialmente
union
union all
select ID_PEDIDO, 'RECIBIDO'
from v_ped_prov_recibidos;
@ -1673,7 +1679,7 @@ SELECT ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_SALIDAS_ALB
UNION
UNION ALL
SELECT ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
@ -1743,16 +1749,19 @@ GROUP BY ID_ALMACEN, ID_ARTICULO;
/*caso una unión y luego una agrupación que un FULL OUTER JOIN*/
CREATE VIEW V_INV_ENTRADAS_AUX(
TIPO,
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN,
SELECT 'ALB',
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_ENTRADAS_ALB
UNION
SELECT ID_ALMACEN,
UNION ALL
SELECT 'MOV',
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_ENTRADAS_MOV;
@ -1788,7 +1797,7 @@ SELECT ID_ALMACEN,
CANTIDAD as CANTIDAD_ENTRADA,
0 as CANTIDAD_SALIDA
FROM V_INV_ENTRADAS
UNION
UNION ALL
SELECT ID_ALMACEN,
ID_ARTICULO,
0 as CANTIDAD_ENTRADA,
@ -1822,10 +1831,10 @@ CREATE VIEW V_INVENTARIO_AUX(
AS
SELECT ID_ALMACEN, ID_ARTICULO, CANTIDAD as STOCK, 0 as PENDIENTES, 0 as RESERVADAS
FROM V_INV_STOCK
UNION
UNION ALL
SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, CANTIDAD as PENDIENTES, 0 AS RESERVADAS
FROM V_INV_ENTRADAS_PENDIENTES
UNION
UNION ALL
SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, 0 as PENDIENTES, CANTIDAD AS RESERVADAS
FROM V_INV_RESERVAS;
@ -1887,12 +1896,157 @@ GROUP BY ID_ALMACEN,
/************************************************************************/
/* HISTORICO MOVIMIENTOS ************************************************/
/************************************************************************/
/*Las siguientes vista nos presentará el historico de movimientos de todos los artículos*/
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_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_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_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,
REFERENCIA_PROV,
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.REFERENCIA_PROV,
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);
/************************************************************************/
/* INFORMES *************************************************************/
/************************************************************************/
/*Al igual que en Varela tendremos esta vista para hacer todos los informes que queramos de ventas, ya que estará desglosado por artículo*/
/*
CREATE VIEW V_VENTAS_ARTICULOS(
ID_FACTURA,
@ -2005,156 +2159,4 @@ left join AGENTES_COMISIONES
on ((AGENTES_COMISIONES.ID_AGENTE = V_AGENTES.ID) and (AGENTES_COMISIONES.ID_PROVEEDOR = V_PROVEEDORES.ID))
where FACTURAS_CLIENTE_DETALLES.ID_ARTICULO is not null
/************************************************************************/
/* HISTORICO MOVIMIENTOS ************************************************/
/************************************************************************/
/*Las siguientes vista nos presentará el historico de movimientos de todos los artículos*/
DROP VIEW V_HISTORICO_MOVIMIENTOS;
DROP VIEW V_HIS_MOV_AUX;
DROP VIEW V_HIS_MOV_ALB_CLI;
DROP VIEW V_HIS_MOV_ALB_PROV;
DROP VIEW V_HIS_MOV_REGULARIZACIONES;
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_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_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_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
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_ALB_CLI
UNION
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,
REFERENCIA_PROV,
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.REFERENCIA_PROV,
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_ARTICULO)
LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_HIS_MOV_AUX.ID_ARTICULO)
WHERE (V_HIS_MOV_AUX.ID_ARTICULO <> 0)
AND (ARTICULOS.INVENTARIABLE = 1);
*/

File diff suppressed because it is too large Load Diff