diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB index 0344c990..63771200 100644 Binary files a/Database/FACTUGES.FDB and b/Database/FACTUGES.FDB differ diff --git a/Database/VISTAS.SQL b/Database/VISTAS.SQL index de8dcced..407602fe 100644 --- a/Database/VISTAS.SQL +++ b/Database/VISTAS.SQL @@ -317,7 +317,7 @@ SELECT ALBARANES_PROVEEDOR.ID, ALBARANES_PROVEEDOR.ID_EMPRESA, ALBARANES_PROVEEDOR.ID_PROVEEDOR, - V_PROVEEDORES.NOMBRE, + CONTACTOS.NOMBRE, ALBARANES_PROVEEDOR.FECHA_ALBARAN, ALBARANES_PROVEEDOR.REFERENCIA, ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, @@ -352,7 +352,7 @@ SELECT ALBARANES_PROVEEDOR.ID_FORMA_PAGO FROM ALBARANES_PROVEEDOR - LEFT OUTER JOIN V_PROVEEDORES ON (ALBARANES_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.ID) + 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); @@ -528,9 +528,9 @@ SELECT RECIBOS_PROVEEDOR.ID, RECIBOS_PROVEEDOR.FECHA_MODIFICACION, RECIBOS_PROVEEDOR.USUARIO -FROM V_REC_PRO_SITUACION -LEFT JOIN RECIBOS_PROVEEDOR -ON (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +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 @@ -615,9 +615,9 @@ SELECT RECIBOS_CLIENTE.ID, RECIBOS_CLIENTE.FECHA_MODIFICACION, RECIBOS_CLIENTE.USUARIO -FROM V_REC_CLI_SITUACION -LEFT JOIN RECIBOS_CLIENTE -ON (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +FROM RECIBOS_CLIENTE +LEFT JOIN V_REC_CLI_SITUACION +ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID) LEFT JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) LEFT JOIN FORMAS_PAGO @@ -688,52 +688,67 @@ CREATE VIEW V_REC_FAC_PRO_PAGADOS( ID_FACTURA, NUM_REC_PAGADOS) AS -SELECT V_RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_RECIBOS_PROVEEDOR.ID) -FROM V_RECIBOS_PROVEEDOR -WHERE (V_RECIBOS_PROVEEDOR.SITUACION = 'PAGADO') -GROUP BY V_RECIBOS_PROVEEDOR.ID_FACTURA; +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 +; CREATE VIEW V_REC_FAC_CLI_COBRADOS( ID_FACTURA, NUM_REC_COBRADOS) AS -SELECT V_RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_RECIBOS_CLIENTE.ID) -FROM V_RECIBOS_CLIENTE -WHERE (V_RECIBOS_CLIENTE.SITUACION = 'COBRADO') -GROUP BY V_RECIBOS_CLIENTE.ID_FACTURA; - +SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO) +FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON + (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +WHERE (V_REC_CLI_SITUACION.SITUACION = 'COBRADO') +GROUP BY RECIBOS_CLIENTE.ID_FACTURA +; CREATE VIEW V_FAC_PRO_SITUACION( ID_FACTURA, SITUACION) AS -SELECT V_REC_FAC_PRO.ID_FACTURA, +SELECT ID_FACTURA, CASE - WHEN ((V_REC_FAC_PRO.NUM_RECIBOS = 0) - OR (COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS,0) = 0)) THEN 'PENDIENTE' - WHEN (V_REC_FAC_PRO.NUM_RECIBOS = COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS, 0)) THEN 'PAGADA' + 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 -FROM V_REC_FAC_PRO -LEFT JOIN V_REC_FAC_PRO_PAGADOS -ON (V_REC_FAC_PRO_PAGADOS.ID_FACTURA = V_REC_FAC_PRO.ID_FACTURA); +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; CREATE VIEW V_FAC_CLI_SITUACION( ID_FACTURA, SITUACION) AS -SELECT V_REC_FAC_CLI.ID_FACTURA, +SELECT ID_FACTURA, CASE - WHEN ((V_REC_FAC_CLI.NUM_RECIBOS = 0) - OR (COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS,0) = 0)) THEN 'PENDIENTE' - WHEN (V_REC_FAC_CLI.NUM_RECIBOS = COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS, 0)) THEN 'PAGADA' + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA' ELSE 'PARCIALMENTE PAGADA' -END -FROM V_REC_FAC_CLI -LEFT JOIN V_REC_FAC_CLI_COBRADOS -ON (V_REC_FAC_CLI_COBRADOS.ID_FACTURA = V_REC_FAC_CLI.ID_FACTURA); +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS + FROM V_REC_FAC_CLI + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS + FROM V_REC_FAC_CLI_COBRADOS +) +GROUP BY ID_FACTURA; CREATE VIEW V_FACTURAS_PROVEEDOR( @@ -983,7 +998,7 @@ SELECT ALBARANES_CLIENTE.ID, ALBARANES_CLIENTE.ID_EMPRESA, ALBARANES_CLIENTE.ID_CLIENTE, - V_CLIENTES.NOMBRE, + CONTACTOS.NOMBRE, ALBARANES_CLIENTE.FECHA_ALBARAN, ALBARANES_CLIENTE.REFERENCIA, ALBARANES_CLIENTE.REFERENCIA_CLIENTE, @@ -1021,7 +1036,7 @@ SELECT ALBARANES_CLIENTE.FECHA_RECEPCION FROM ALBARANES_CLIENTE - LEFT OUTER JOIN V_CLIENTES ON (ALBARANES_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE) LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO) LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA) LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID)