CREATE OR REPLACE VIEW PREDETLISTAV AS
SELECT D.COD_CIA, L.COD_LISTA_PRECIO, L.DES_LISTA, D.COD_MONEDA, D.COD_ARTICULO, D.COSTO,
       pre_par.PrecioNuevo(D.COD_CIA, D.PRECIO_UNITARIO, porc_utilidad, descuento, PORCENTAJE) PRECIO_UNITARIO,
       CASE WHEN L.PORCENTAJE>0 THEN PORCENTAJE ELSE 0 END PORC_UTILIDAD,
       CASE WHEN L.PORCENTAJE<0 THEN -PORCENTAJE ELSE 0 END DESCUENTO,
       D.DOCUMENTO
FROM PREDETLISTA D, PRELISTA L
WHERE D.COD_CIA=L.COD_CIA
  AND D.COD_LISTA_PRECIO=L.LISTA_MADRE
  AND L.PORCENTAJE IS NOT NULL
  AND L.LISTA_MADRE IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM PREDETLISTA O
                  WHERE O.COD_CIA=D.COD_CIA
                    AND O.COD_LISTA_PRECIO=L.COD_LISTA_PRECIO
                    AND O.COD_ARTICULO=D.COD_ARTICULO
                    AND O.COD_MONEDA=D.COD_MONEDA)
UNION
SELECT D.COD_CIA, L.COD_LISTA_PRECIO, L.DES_LISTA, D.COD_MONEDA, D.COD_ARTICULO, D.COSTO,
       CASE WHEN LISTA_MADRE IS NULL THEN
          D.PRECIO_UNITARIO
       ELSE
          Precios.PrecioDerDesc(D.COD_CIA, L.LISTA_MADRE, D.COD_ARTICULO, D.COD_MONEDA, PORC_UTILIDAD, DESCUENTO)
       END PRECIO_UNITARIO,
       D.PORC_UTILIDAD, D.DESCUENTO, D.DOCUMENTO
FROM PREDETLISTA D, PRELISTA L
WHERE D.COD_CIA=L.COD_CIA
  AND D.COD_LISTA_PRECIO=L.COD_LISTA_PRECIO;
