DROP VIEW V_PED_PROV_ART_SIN_ALBARAN;
DROP VIEW V_PED_CLI_ART_SIN_ALBARAN;

CREATE VIEW V_PED_CLI_ART_SIN_ALBARAN(
    ID,
    ID_PEDIDO,
    ID_EMPRESA,
    REFERENCIA_PEDIDO,
    REFERENCIA_CLI_PEDIDO,
    FECHA_PEDIDO,
    FECHA_PREVISTA_PEDIDO,
    ID_CLIENTE,
    CALLE,
    CODIGO_POSTAL,
    POBLACION,
    PROVINCIA,
    PERSONA_CONTACTO,
    TELEFONO,
    IVA,
    ID_FORMA_PAGO,
    CLIENTE,
    ID_ARTICULO,
    FAMILIA,
    REFERENCIA,
    REFERENCIA_PROVEEDOR,
    DESCRIPCION,
    CANTIDAD_PEDIDA,
    CANTIDAD_RESERVADA,
    CANTIDAD_ENVIADA,
    CANTIDAD_SERVIDA,
    CANTIDAD_PENDIENTE,
    PRECIO_COSTE,
    DESCUENTO,
    PRECION_NETO)
AS
SELECT
    V_PED_CLI_ARTICULOS.ID_PEDIDO || 0 || V_PED_CLI_ARTICULOS.ID_ARTICULO as ID, /*Para tener un ID unico sobre el que poder consultar en la sentencia de selección del grid*/
    V_PED_CLI_ARTICULOS.ID_PEDIDO,
    PEDIDOS_CLIENTE.ID_EMPRESA,
    PEDIDOS_CLIENTE.referencia,
    PEDIDOS_CLIENTE.referencia_cliente,
    PEDIDOS_CLIENTE.fecha_pedido,
    PEDIDOS_CLIENTE.fecha_prevista_envio,
    PEDIDOS_CLIENTE.id_cliente,
    PEDIDOS_CLIENTE.CALLE,
    PEDIDOS_CLIENTE.CODIGO_POSTAL,
    PEDIDOS_CLIENTE.POBLACION,
    PEDIDOS_CLIENTE.PROVINCIA,
    PEDIDOS_CLIENTE.PERSONA_CONTACTO,
    PEDIDOS_CLIENTE.TELEFONO,
    PEDIDOS_CLIENTE.IVA,
    PEDIDOS_CLIENTE.ID_FORMA_PAGO,
    CONTACTOS.nombre,
    V_PED_CLI_ARTICULOS.ID_ARTICULO,
    articulos.familia,
    articulos.referencia,
    articulos.referencia_prov,
    articulos.descripcion,
    V_PED_CLI_ARTICULOS.CANTIDAD_PEDIDA,
    V_PED_CLI_ARTICULOS.CANTIDAD_RESERVADA,
    V_PED_CLI_ARTICULOS.CANTIDAD_ENVIADA,
    V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA,
    V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE,


    ARTICULOS.PRECIO_COSTE,
    CLIENTES_DTOS_PROVEEDORES.DESCUENTO,
    (ARTICULOS.PRECIO_COSTE * CLIENTES_DTOS_PROVEEDORES.DESCUENTO)/100 as  PRECIO_NETO

from V_PED_CLI_ARTICULOS
left join PEDIDOS_CLIENTE on (PEDIDOS_CLIENTE.id = V_PED_CLI_ARTICULOS.id_pedido)
left join CONTACTOS on (contactos.id = PEDIDOS_CLIENTE.id_cliente)
left join articulos on (articulos.id = V_PED_CLI_ARTICULOS.ID_ARTICULO)

LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES
ON ((CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR = ARTICULOS.ID_PROVEEDOR)
AND (CLIENTES_DTOS_PROVEEDORES.ID_CLIENTE = contactos.id))

where cantidad_pendiente > 0;


CREATE VIEW V_PED_PROV_ART_SIN_ALBARAN(
    ID,
    ID_PEDIDO,
    ID_EMPRESA,
    REFERENCIA_PEDIDO,
    FECHA_PEDIDO,
    FECHA_CONFIRMACION,
    ID_PROVEEDOR,
    CALLE,
    CODIGO_POSTAL,
    POBLACION,
    PROVINCIA,
    PERSONA_CONTACTO,
    TELEFONO,
    IVA,
    ID_FORMA_PAGO,
    PROVEEDOR,
    ID_ARTICULO,
    FAMILIA,
    REFERENCIA,
    REFERENCIA_PROVEEDOR,
    DESCRIPCION,
    CANTIDAD_PEDIDA,
    CANTIDAD_RECIBIDA,
    CANTIDAD_PENDIENTE,
    PRECIO_COSTE,
    DESCUENTO,
    PRECIO_NETO,
    PRECIO_PORTE)
AS
SELECT
    V_PED_PROV_ARTICULOS.ID_PEDIDO || 0 || V_PED_PROV_ARTICULOS.ID_ARTICULO as ID, /*Para tener un ID unico sobre el que poder consultar en la sentencia de selección del grid*/
    V_PED_PROV_ARTICULOS.ID_PEDIDO,
    PEDIDOS_PROVEEDOR.ID_EMPRESA,
    PEDIDOS_PROVEEDOR.referencia,
    PEDIDOS_PROVEEDOR.fecha_pedido,
    PEDIDOS_PROVEEDOR.fecha_confirmacion,
    PEDIDOS_PROVEEDOR.id_proveedor,
    PEDIDOS_PROVEEDOR.CALLE,
    PEDIDOS_PROVEEDOR.CODIGO_POSTAL,
    PEDIDOS_PROVEEDOR.POBLACION,
    PEDIDOS_PROVEEDOR.PROVINCIA,
    PEDIDOS_PROVEEDOR.PERSONA_CONTACTO,
    PEDIDOS_PROVEEDOR.TELEFONO,
    PEDIDOS_PROVEEDOR.IVA,
    PEDIDOS_PROVEEDOR.ID_FORMA_PAGO,
    CONTACTOS.nombre,
    V_PED_PROV_ARTICULOS.ID_ARTICULO,
    articulos.familia,
    articulos.referencia,
    articulos.referencia_prov,
    articulos.descripcion,
    V_PED_PROV_ARTICULOS.CANTIDAD_PEDIDA,
    V_PED_PROV_ARTICULOS.CANTIDAD_RECIBIDA,
    V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE,

    ARTICULOS.PRECIO_COSTE,
    ARTICULOS.DESCUENTO,
    ARTICULOS.PRECIO_NETO,
    ARTICULOS.PRECIO_PORTE

from V_PED_PROV_ARTICULOS
left join PEDIDOS_PROVEEDOR on (PEDIDOS_PROVEEDOR.id = V_PED_PROV_ARTICULOS.id_pedido)
left join CONTACTOS on (contactos.id = PEDIDOS_PROVEEDOR.id_proveedor)
left join articulos on (articulos.id = V_PED_PROV_ARTICULOS.ID_ARTICULO)
where cantidad_pendiente > 0;
