//SCRIPT PARA MAÑANA DROP VIEW V_PEDIDOS_CLIENTE; DROP VIEW V_PED_CLI_SITUACION; DROP VIEW V_PED_CLI_ENPROCESO; DROP VIEW V_PED_CLI_SERVIDOS; DROP VIEW V_PED_CLI_NUM_ARTICULOS; DROP VIEW V_PED_CLI_ARTICULOS_SERVIDOS; CREATE VIEW V_PED_CLI_SITUACION( ID_PEDIDO, SITUACION) AS SELECT PEDIDOS_CLIENTE.ID, /* Si (num. artículos servidos - num. artículos pedidos) = 0 -> Ped. servido Si no Si el pedido tiene albaranes -> Ped. servido Si no -> Ped. pendiente */ CASE WHEN COALESCE( (SELECT COUNT(V_PED_CLI_ARTICULOS.ID_ARTICULO) FROM V_PED_CLI_ARTICULOS WHERE (V_PED_CLI_ARTICULOS.CANTIDAD_PEDIDA <= V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA) AND (V_PED_CLI_ARTICULOS.ID_PEDIDO = PEDIDOS_CLIENTE.ID) GROUP BY ID_PEDIDO), 0) - COALESCE( (SELECT COUNT(V_PED_CLI_DETALLES.ID_ARTICULO) FROM V_PED_CLI_DETALLES WHERE (V_PED_CLI_DETALLES.ID_PEDIDO = PEDIDOS_CLIENTE.ID) GROUP BY ID_PEDIDO), 0) = 0 THEN 'SERVIDO' ELSE CASE WHEN (COALESCE( (SELECT COUNT(ALBARANES_CLIENTE.ID) FROM ALBARANES_CLIENTE WHERE (ALBARANES_CLIENTE.ID_PEDIDO = PEDIDOS_CLIENTE.ID) GROUP BY ALBARANES_CLIENTE.ID_PEDIDO), 0) <> 0) THEN 'EN PROCESO' ELSE 'PENDIENTE' END END AS SITUACION FROM PEDIDOS_CLIENTE ; CREATE VIEW V_PEDIDOS_CLIENTE( ID, ID_EMPRESA, ID_CLIENTE, NOMBRE, REFERENCIA, SITUACION, FECHA_PEDIDO, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO, 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 PEDIDOS_CLIENTE.ID, PEDIDOS_CLIENTE.ID_EMPRESA, PEDIDOS_CLIENTE.ID_CLIENTE, V_CLIENTES.NOMBRE, PEDIDOS_CLIENTE.REFERENCIA, V_PED_CLI_SITUACION.SITUACION, PEDIDOS_CLIENTE.FECHA_PEDIDO, PEDIDOS_CLIENTE.CALLE, PEDIDOS_CLIENTE.CODIGO_POSTAL, PEDIDOS_CLIENTE.POBLACION, PEDIDOS_CLIENTE.PROVINCIA, PEDIDOS_CLIENTE.PERSONA_CONTACTO, PEDIDOS_CLIENTE.TELEFONO, PEDIDOS_CLIENTE.OBSERVACIONES, PEDIDOS_CLIENTE.INCIDENCIAS, PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS, PEDIDOS_CLIENTE.FECHA_ALTA, PEDIDOS_CLIENTE.FECHA_MODIFICACION, PEDIDOS_CLIENTE.USUARIO, PEDIDOS_CLIENTE.IMPORTE_NETO, PEDIDOS_CLIENTE.IMPORTE_PORTE, PEDIDOS_CLIENTE.DESCUENTO, PEDIDOS_CLIENTE.IMPORTE_DESCUENTO, PEDIDOS_CLIENTE.BASE_IMPONIBLE, PEDIDOS_CLIENTE.IVA, PEDIDOS_CLIENTE.IMPORTE_IVA, PEDIDOS_CLIENTE.IMPORTE_TOTAL, PEDIDOS_CLIENTE.ID_FORMA_PAGO FROM PEDIDOS_CLIENTE LEFT OUTER JOIN V_CLIENTES ON (PEDIDOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) LEFT OUTER JOIN V_PED_CLI_SITUACION ON (V_PED_CLI_SITUACION.ID_PEDIDO = PEDIDOS_CLIENTE.ID);