From f3c2e1cc394b6ad077f38db3e99b7cb604e98fe4 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 17 Nov 2007 17:58:43 +0000 Subject: [PATCH] =?UTF-8?q?Actualizaci=C3=B3n=20de=20scripts=20de=20BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@123 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/scripts/factuges.sql | 693 +++++++++++++++++++++++--- Database/scripts/factuges_sysdata.sql | 4 - 2 files changed, 624 insertions(+), 73 deletions(-) diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 23d5cd9e..3e263068 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -86,19 +86,19 @@ CREATE GENERATOR GEN_AGENTES_COMISIONES_ID; SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 0; CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID; -SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 0; +SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 4; CREATE GENERATOR GEN_ALBARANES_CLI_ID; -SET GENERATOR GEN_ALBARANES_CLI_ID TO 0; +SET GENERATOR GEN_ALBARANES_CLI_ID TO 7; CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID; -SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 0; +SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 3; CREATE GENERATOR GEN_ALBARANES_PRO_ID; -SET GENERATOR GEN_ALBARANES_PRO_ID TO 0; +SET GENERATOR GEN_ALBARANES_PRO_ID TO 2; CREATE GENERATOR GEN_ALMACENES_ID; -SET GENERATOR GEN_ALMACENES_ID TO 2; +SET GENERATOR GEN_ALMACENES_ID TO 3; CREATE GENERATOR GEN_ARTICULOS_ID; SET GENERATOR GEN_ARTICULOS_ID TO 5; @@ -116,10 +116,10 @@ CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 0; CREATE GENERATOR GEN_CONTACTOS_DIR_ID; -SET GENERATOR GEN_CONTACTOS_DIR_ID TO 2; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 3; CREATE GENERATOR GEN_CONTACTOS_ID; -SET GENERATOR GEN_CONTACTOS_ID TO 2; +SET GENERATOR GEN_CONTACTOS_ID TO 2001; CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID; SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 0; @@ -128,22 +128,22 @@ CREATE GENERATOR GEN_EMPRESAS_ID; SET GENERATOR GEN_EMPRESAS_ID TO 0; CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID; -SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 0; +SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 23; CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID; SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 0; CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID; -SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1; +SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 20; CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID; SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 0; CREATE GENERATOR GEN_FORMAS_PAGO_ID; -SET GENERATOR GEN_FORMAS_PAGO_ID TO 11; +SET GENERATOR GEN_FORMAS_PAGO_ID TO 13; CREATE GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID; -SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 6; +SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 10; CREATE GENERATOR GEN_F_PERFILES_ID; SET GENERATOR GEN_F_PERFILES_ID TO 0; @@ -155,7 +155,7 @@ CREATE GENERATOR GEN_MOVIMIENTOS_ID; SET GENERATOR GEN_MOVIMIENTOS_ID TO 0; CREATE GENERATOR GEN_PAGOS_CLIENTE_ID; -SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 0; +SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 8; CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID; SET GENERATOR GEN_PAGOS_PROVEEDOR_ID TO 0; @@ -167,19 +167,19 @@ CREATE GENERATOR GEN_PEDIDOS_CLI_ID; SET GENERATOR GEN_PEDIDOS_CLI_ID TO 0; CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID; -SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 0; +SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 7; CREATE GENERATOR GEN_PEDIDOS_PROV_ID; -SET GENERATOR GEN_PEDIDOS_PROV_ID TO 0; +SET GENERATOR GEN_PEDIDOS_PROV_ID TO 2; CREATE GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID; -SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 0; +SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 50; CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID; -SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 0; +SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 30; CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID; -SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 0; +SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 6; CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID; SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 0; @@ -1051,6 +1051,40 @@ FROM ALBARANES_CLIENTE +/* View: V_ALB_PROV_DETALLES */ +CREATE VIEW V_ALB_PROV_DETALLES( + ID_ALBARAN, + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + COALESCE(ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + SUM (COALESCE(ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, 0)) AS CANTIDAD + +FROM ALBARANES_PROVEEDOR_DETALLES +LEFT JOIN ALBARANES_PROVEEDOR +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catálogo con el fin de no falsear la situación de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO +; + + + /* View: V_ALBARANES_CLIENTE */ CREATE VIEW V_ALBARANES_CLIENTE( ID, @@ -1144,6 +1178,92 @@ FROM +/* View: V_ALBARANES_PROVEEDOR */ +CREATE VIEW V_ALBARANES_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_PROVEEDOR, + TIPO, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PED_PROVEEDOR, + ID_FACTURA, + REF_FACTURA, + REF_FACTURA_PROV, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO) +AS +SELECT + ALBARANES_PROVEEDOR.ID, + ALBARANES_PROVEEDOR.ID_EMPRESA, + ALBARANES_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + ALBARANES_PROVEEDOR.REFERENCIA, + ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, + CASE WHEN (ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'D' ELSE 'A' END AS TIPO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + PEDIDOS_PROVEEDOR.REFERENCIA AS REF_PED_PROVEEDOR, + ALBARANES_PROVEEDOR.ID_FACTURA, + FACTURAS_PROVEEDOR.REFERENCIA AS REF_FACTURA, + ALBARANES_PROVEEDOR.REF_FACTURA_PROV, + ALBARANES_PROVEEDOR.CALLE, + ALBARANES_PROVEEDOR.CODIGO_POSTAL, + ALBARANES_PROVEEDOR.POBLACION, + ALBARANES_PROVEEDOR.PROVINCIA, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO, + ALBARANES_PROVEEDOR.TELEFONO, + ALBARANES_PROVEEDOR.IMPORTE_NETO, + ALBARANES_PROVEEDOR.IMPORTE_PORTE, + ALBARANES_PROVEEDOR.DESCUENTO, + ALBARANES_PROVEEDOR.IMPORTE_DESCUENTO, + ALBARANES_PROVEEDOR.BASE_IMPONIBLE, + ALBARANES_PROVEEDOR.IVA, + ALBARANES_PROVEEDOR.IMPORTE_IVA, + ALBARANES_PROVEEDOR.IMPORTE_TOTAL, + ALBARANES_PROVEEDOR.OBSERVACIONES, + ALBARANES_PROVEEDOR.INCIDENCIAS, + ALBARANES_PROVEEDOR.INCIDENCIAS_ACTIVAS, + ALBARANES_PROVEEDOR.FECHA_ALTA, + ALBARANES_PROVEEDOR.FECHA_MODIFICACION, + ALBARANES_PROVEEDOR.USUARIO, + ALBARANES_PROVEEDOR.ID_FORMA_PAGO +FROM + ALBARANES_PROVEEDOR + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN) +; + + + /* View: V_ARTICULOS */ CREATE VIEW V_ARTICULOS( ID, @@ -1468,6 +1588,77 @@ GROUP BY ID_FACTURA +/* View: V_REC_FAC_PRO */ +CREATE VIEW V_REC_FAC_PRO( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_PROVEEDOR.ID, COUNT(RECIBOS_PROVEEDOR.ID) +FROM FACTURAS_PROVEEDOR +LEFT JOIN RECIBOS_PROVEEDOR +ON (RECIBOS_PROVEEDOR.ID_FACTURA = FACTURAS_PROVEEDOR.ID) +GROUP BY FACTURAS_PROVEEDOR.ID +; + + + +/* View: V_REC_PRO_SITUACION */ +CREATE VIEW V_REC_PRO_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_PROVEEDOR.ID, +CASE WHEN (COUNT(PAGOS_PROVEEDOR.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_PROVEEDOR.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'PAGADO' +END +FROM RECIBOS_PROVEEDOR +LEFT JOIN PAGOS_PROVEEDOR +ON (PAGOS_PROVEEDOR.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY RECIBOS_PROVEEDOR.ID +; + + + +/* View: V_REC_FAC_PRO_PAGADOS */ +CREATE VIEW V_REC_FAC_PRO_PAGADOS( + ID_FACTURA, + NUM_REC_PAGADOS) +AS +SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO) +FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON + (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +WHERE (V_REC_PRO_SITUACION.SITUACION = 'PAGADO') +GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA +; + + + +/* View: V_FAC_PRO_SITUACION */ +CREATE VIEW V_FAC_PRO_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS + FROM V_REC_FAC_PRO + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS + FROM V_REC_FAC_PRO_PAGADOS +) +GROUP BY ID_FACTURA +; + + + /* View: V_FACTURAS_CLIENTE */ CREATE VIEW V_FACTURAS_CLIENTE( ID, @@ -1548,69 +1739,189 @@ SELECT FACTURAS_CLIENTE.ID, -/* View: V_PRESUPUESTOS_CLIENTE */ -CREATE VIEW V_PRESUPUESTOS_CLIENTE( +/* View: V_FACTURAS_PROVEEDOR */ +CREATE VIEW V_FACTURAS_PROVEEDOR( ID, ID_EMPRESA, - FECHA_PRESUPUESTO, - FECHA_DECISION, REFERENCIA, + TIPO, + REFERENCIA_PROVEEDOR, + FECHA_FACTURA, SITUACION, - ID_CLIENTE, + BASE_IMPONIBLE, + DESCUENTO, + IMPORTE_DESCUENTO, + IVA, + IMPORTE_IVA, + RE, + IMPORTE_RE, + IMPORTE_TOTAL, + OBSERVACIONES, + ID_PROVEEDOR, NIF_CIF, NOMBRE, - REFERENCIA_CLIENTE, - CLIENTE_FINAL, - PORTADA, - MEMORIA, - OBSERVACIONES, - INCIDENCIAS, - INCIDENCIAS_ACTIVAS, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, + ID_FORMA_PAGO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, IMPORTE_NETO, - IMPORTE_PORTE, - DESCUENTO, - IMPORTE_DESCUENTO, - BASE_IMPONIBLE, - IVA, - IMPORTE_IVA, - IMPORTE_TOTAL, - ID_FORMA_PAGO) + IMPORTE_PORTE) +AS +SELECT FACTURAS_PROVEEDOR.ID, + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR.REFERENCIA, + CASE WHEN (FACTURAS_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO, + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, + FACTURAS_PROVEEDOR.FECHA_FACTURA, + V_FAC_PRO_SITUACION.SITUACION, + FACTURAS_PROVEEDOR.BASE_IMPONIBLE, + FACTURAS_PROVEEDOR.DESCUENTO, + FACTURAS_PROVEEDOR.IMPORTE_DESCUENTO, + FACTURAS_PROVEEDOR.IVA, + FACTURAS_PROVEEDOR.IMPORTE_IVA, + FACTURAS_PROVEEDOR.RE, + FACTURAS_PROVEEDOR.IMPORTE_RE, + FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.OBSERVACIONES, + FACTURAS_PROVEEDOR.ID_PROVEEDOR, + FACTURAS_PROVEEDOR.NIF_CIF, + FACTURAS_PROVEEDOR.NOMBRE, + FACTURAS_PROVEEDOR.CALLE, + FACTURAS_PROVEEDOR.POBLACION, + FACTURAS_PROVEEDOR.PROVINCIA, + FACTURAS_PROVEEDOR.CODIGO_POSTAL, + FACTURAS_PROVEEDOR.FECHA_ALTA, + FACTURAS_PROVEEDOR.FECHA_MODIFICACION, + FACTURAS_PROVEEDOR.USUARIO, + FACTURAS_PROVEEDOR.ID_FORMA_PAGO, + FACTURAS_PROVEEDOR.RECARGO_EQUIVALENCIA, + FACTURAS_PROVEEDOR.ID_TIPO_IVA, + FACTURAS_PROVEEDOR.IMPORTE_NETO, + FACTURAS_PROVEEDOR.IMPORTE_PORTE + FROM V_FAC_PRO_SITUACION + LEFT JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = V_FAC_PRO_SITUACION.ID_FACTURA) + LEFT JOIN PROVEEDORES_DATOS + ON (PROVEEDORES_DATOS.ID_PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +; + + + +/* View: V_PED_PROV_ARTICULOS_RECIBIDOS */ +CREATE VIEW V_PED_PROV_ARTICULOS_RECIBIDOS( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_PEDIDO, ID_ARTICULO, SUM(CANTIDAD) AS CANTIDAD +FROM V_ALB_PROV_DETALLES +WHERE (ID_PEDIDO is not null) +GROUP BY ID_PEDIDO, ID_ARTICULO +; + + + +/* View: V_PED_PROV_DETALLES */ +CREATE VIEW V_PED_PROV_DETALLES( + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + COALESCE(PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + SUM(COALESCE(PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, 0)) + +FROM PEDIDOS_PROVEEDOR_DETALLES +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catálogo con el fin de no falsear la situación de los pedidos +LEFT JOIN ARTICULOS +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO +; + + + +/* View: V_PED_PROV_ARTICULOS_AUX */ +CREATE VIEW V_PED_PROV_ARTICULOS_AUX( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA) AS SELECT - PRESUPUESTOS_CLIENTE.ID, - PRESUPUESTOS_CLIENTE.ID_EMPRESA, - PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, - PRESUPUESTOS_CLIENTE.FECHA_DECISION, - PRESUPUESTOS_CLIENTE.REFERENCIA, - PRESUPUESTOS_CLIENTE.SITUACION, - PRESUPUESTOS_CLIENTE.ID_CLIENTE, - V_CLIENTES.NIF_CIF, - V_CLIENTES.NOMBRE, - PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, - PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, - PRESUPUESTOS_CLIENTE.PORTADA, - PRESUPUESTOS_CLIENTE.MEMORIA, - PRESUPUESTOS_CLIENTE.OBSERVACIONES, - PRESUPUESTOS_CLIENTE.INCIDENCIAS, - PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, - PRESUPUESTOS_CLIENTE.FECHA_ALTA, - PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, - PRESUPUESTOS_CLIENTE.USUARIO, - PRESUPUESTOS_CLIENTE.IMPORTE_NETO, - PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, - PRESUPUESTOS_CLIENTE.DESCUENTO, - PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, - PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, - PRESUPUESTOS_CLIENTE.IVA, - PRESUPUESTOS_CLIENTE.IMPORTE_IVA, - PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, - PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO -FROM - PRESUPUESTOS_CLIENTE - LEFT OUTER JOIN V_CLIENTES ON (PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) + V_PED_PROV_DETALLES.ID_PEDIDO, + V_PED_PROV_DETALLES.ID_ARTICULO, + V_PED_PROV_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA, + 0 as CANTIDAD_RECIBIDA +FROM V_PED_PROV_DETALLES +UNION ALL +SELECT + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_PEDIDO, + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_ARTICULO, + NULL as CANTIDAD_PEDIDA, + V_PED_PROV_ARTICULOS_RECIBIDOS.CANTIDAD AS CANTIDAD_RECIBIDA +FROM V_PED_PROV_ARTICULOS_RECIBIDOS +; + + + +/* View: V_PED_PROV_ARTICULOS */ +CREATE VIEW V_PED_PROV_ARTICULOS( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA, + CANTIDAD_PENDIENTE) +AS +SELECT ID_PEDIDO, + /*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/ + ID_ARTICULO, + SUM(CANTIDAD_PEDIDA) as CANTIDAD_PEDIDA, + SUM(CANTIDAD_RECIBIDA) as CANTIDAD_RECIBIDA, + SUM(CANTIDAD_PEDIDA) - SUM(CANTIDAD_RECIBIDA) as CANTIDAD_PENDIENTE +FROM V_PED_PROV_ARTICULOS_AUX +/* +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS_AUX.ID_PEDIDO) +*/ +GROUP BY ID_PEDIDO, + /*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/ + ID_ARTICULO +HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL +; + + + +/* View: V_PED_PROV_SITUACION */ +CREATE VIEW V_PED_PROV_SITUACION( + ID_PEDIDO, + SITUACION) +AS +SELECT ID_PEDIDO, +CASE WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) = 0) THEN 'PENDIENTE' + WHEN (SUM(CANTIDAD_PENDIENTE) <= 0) THEN 'RECIBIDO' + WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) > 0) THEN 'PARCIAL' + ELSE 'N/A' +END AS SITUACION +FROM V_PED_PROV_ARTICULOS +GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO ; @@ -1694,6 +2005,157 @@ WHERE +/* View: V_PEDIDOS_PROVEEDOR */ +CREATE VIEW V_PEDIDOS_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + REFERENCIA, + SITUACION, + FECHA_ENVIO, + FECHA_PEDIDO, + FECHA_CONFIRMACION, + FECHA_ENTREGA, + ID_ALMACEN, + NOMBRE_ALMACEN, + OBSERVACIONES, + IMPORTE_TOTAL, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + PERSONA_CONTACTO, + TELEFONO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_PEDIDO_CLIENTE, + REF_PED_CLIENTE, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + ID_FORMA_PAGO) +AS +SELECT + PEDIDOS_PROVEEDOR.ID, + PEDIDOS_PROVEEDOR.ID_EMPRESA, + PEDIDOS_PROVEEDOR.ID_PROVEEDOR, + V_PROVEEDORES.NOMBRE, + PEDIDOS_PROVEEDOR.REFERENCIA, + V_PED_PROV_SITUACION.SITUACION, + PEDIDOS_PROVEEDOR.FECHA_ENVIO, + PEDIDOS_PROVEEDOR.FECHA_PEDIDO, + PEDIDOS_PROVEEDOR.FECHA_CONFIRMACION, + PEDIDOS_PROVEEDOR.FECHA_ENTREGA, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + PEDIDOS_PROVEEDOR.OBSERVACIONES, + PEDIDOS_PROVEEDOR.IMPORTE_TOTAL, + PEDIDOS_PROVEEDOR.INCIDENCIAS, + PEDIDOS_PROVEEDOR.INCIDENCIAS_ACTIVAS, + PEDIDOS_PROVEEDOR.CALLE, + PEDIDOS_PROVEEDOR.POBLACION, + PEDIDOS_PROVEEDOR.PROVINCIA, + PEDIDOS_PROVEEDOR.CODIGO_POSTAL, + PEDIDOS_PROVEEDOR.PERSONA_CONTACTO, + PEDIDOS_PROVEEDOR.TELEFONO, + PEDIDOS_PROVEEDOR.FECHA_ALTA, + PEDIDOS_PROVEEDOR.FECHA_MODIFICACION, + PEDIDOS_PROVEEDOR.USUARIO, + PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE, + PEDIDOS_CLIENTE.REFERENCIA AS REF_PED_CLIENTE, + PEDIDOS_PROVEEDOR.IMPORTE_NETO, + PEDIDOS_PROVEEDOR.IMPORTE_PORTE, + PEDIDOS_PROVEEDOR.DESCUENTO, + PEDIDOS_PROVEEDOR.IMPORTE_DESCUENTO, + PEDIDOS_PROVEEDOR.BASE_IMPONIBLE, + PEDIDOS_PROVEEDOR.IVA, + PEDIDOS_PROVEEDOR.IMPORTE_IVA, + PEDIDOS_PROVEEDOR.ID_FORMA_PAGO +FROM + PEDIDOS_PROVEEDOR + LEFT OUTER JOIN V_PROVEEDORES ON (PEDIDOS_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE) + LEFT OUTER JOIN V_PED_PROV_SITUACION ON (V_PED_PROV_SITUACION.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) +; + + + +/* View: V_PRESUPUESTOS_CLIENTE */ +CREATE VIEW V_PRESUPUESTOS_CLIENTE( + ID, + ID_EMPRESA, + FECHA_PRESUPUESTO, + FECHA_DECISION, + REFERENCIA, + SITUACION, + ID_CLIENTE, + NIF_CIF, + NOMBRE, + REFERENCIA_CLIENTE, + CLIENTE_FINAL, + PORTADA, + MEMORIA, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + ID_FORMA_PAGO) +AS +SELECT + PRESUPUESTOS_CLIENTE.ID, + PRESUPUESTOS_CLIENTE.ID_EMPRESA, + PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, + PRESUPUESTOS_CLIENTE.FECHA_DECISION, + PRESUPUESTOS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.SITUACION, + PRESUPUESTOS_CLIENTE.ID_CLIENTE, + V_CLIENTES.NIF_CIF, + V_CLIENTES.NOMBRE, + PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, + PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, + PRESUPUESTOS_CLIENTE.PORTADA, + PRESUPUESTOS_CLIENTE.MEMORIA, + PRESUPUESTOS_CLIENTE.OBSERVACIONES, + PRESUPUESTOS_CLIENTE.INCIDENCIAS, + PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PRESUPUESTOS_CLIENTE.FECHA_ALTA, + PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, + PRESUPUESTOS_CLIENTE.USUARIO, + PRESUPUESTOS_CLIENTE.IMPORTE_NETO, + PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, + PRESUPUESTOS_CLIENTE.DESCUENTO, + PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, + PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, + PRESUPUESTOS_CLIENTE.IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, + PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO +FROM + PRESUPUESTOS_CLIENTE + LEFT OUTER JOIN V_CLIENTES ON (PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) +; + + + /* View: V_REC_CLI_COMPENSADOS */ CREATE VIEW V_REC_CLI_COMPENSADOS( ID_RECIBO, @@ -1707,6 +2169,19 @@ group by ID_RECIBO_COMPENSADO +/* View: V_REC_PRO_COMPENSADOS */ +CREATE VIEW V_REC_PRO_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_PROVEEDOR +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + + /* View: V_RECIBOS_CLIENTE */ CREATE VIEW V_RECIBOS_CLIENTE( ID, @@ -1787,6 +2262,87 @@ ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +/* View: V_RECIBOS_PROVEEDOR */ +CREATE VIEW V_RECIBOS_PROVEEDOR( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + REFERENCIA_PROVEEDOR, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + REFERENCIA_FACTURA_PROV, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + NIF_CIF_PROVEEDOR, + ENTIDAD_PROVEEDOR, + SUCURSAL_PROVEEDOR, + DC_PROVEEDOR, + CUENTA_PROVEEDOR, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_PROVEEDOR.ID, + RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, + CASE + WHEN RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO IS NULL + THEN V_REC_PRO_SITUACION.SITUACION + ELSE RECIBO_COMPENSADO2.SITUACION + END, + RECIBOS_PROVEEDOR.ID_FACTURA, + RECIBOS_PROVEEDOR.ID_REMESA, REMESAS_PROVEEDOR.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, + RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, + COALESCE(RECIBOS_PROVEEDOR.IMPORTE, 0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS, 0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA, + FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.ID_EMPRESA, + + CONTACTOS.ID as ID_PROVEEDOR, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS_DATOS_BANCO.ENTIDAD, + CONTACTOS_DATOS_BANCO.SUCURSAL, CONTACTOS_DATOS_BANCO.DC, CONTACTOS_DATOS_BANCO.CUENTA, + + RECIBOS_PROVEEDOR.FECHA_ALTA, + RECIBOS_PROVEEDOR.FECHA_MODIFICACION, + RECIBOS_PROVEEDOR.USUARIO + +FROM RECIBOS_PROVEEDOR +LEFT JOIN V_REC_PRO_SITUACION +ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN FACTURAS_PROVEEDOR +ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +LEFT JOIN CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID) +LEFT JOIN REMESAS_PROVEEDOR +ON (REMESAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_REMESA) +LEFT JOIN V_REC_PRO_COMPENSADOS +ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN RECIBOS_PROVEEDOR RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +; /******************************************************************************/ /**** Primary Keys ****/ @@ -1858,7 +2414,6 @@ ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT FK_COMISIONES_LIQUIDADAS FOREIG ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT FK_EMPRESAS_CONTACTOS FOREIGN KEY (ID_CONTACTO) REFERENCES CONTACTOS (ID) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT FK_FACTURAS_CLI_DET_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_FACTURAS_PRO_DET_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS FOREIGN KEY (ID_ARTICULO) REFERENCES ARTICULOS (ID); diff --git a/Database/scripts/factuges_sysdata.sql b/Database/scripts/factuges_sysdata.sql index 789a9a64..16d3e91d 100644 --- a/Database/scripts/factuges_sysdata.sql +++ b/Database/scripts/factuges_sysdata.sql @@ -43,7 +43,3 @@ INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (4, 'EXENTO' SET GENERATOR GEN_TIPOS_IVA_ID TO 5; COMMIT WORK; -/* Usuario 'Administrador' (Contraseña en blanco) */ -INSERT INTO USUARIOS (ID, USERNAME, LOGIN, PASS, PASSEXPIRED, BLOQUEADO, EMAIL, USERDAYSSUN, PRIVILEGED, TIPO, ID_PERFIL, CHECKSUM) VALUES (1, 'Administrador', 'admin', 'd41d8cd98f00b204e9800998ecf8427e', '2007-07-11', 0, 'admin@correo.net', 30, -1, 'U', 0, '6d1089be77aaaffa4ae01a4dd2fee551'); -SET GENERATOR GEN_USUARIOS_ID TO 2; -COMMIT WORK;