CREATE OR REPLACE VIEW ESVPRODUTOSVENDA 
AS
SELECT ROWNUM SEQ, PCPRODUT.CODPROD, PCPRODUT.DESCRICAO, PCPRODUT.NOMEECOMMERCE, PCPRODUT.CODFAB,
       PCPRODUT.CODAUXILIAR, CASE WHEN PCPRODUT.TIPOPRODUTO = 'S' THEN 'SHOWROOM'
                                  WHEN PCPRODUT.TIPOPRODUTO = 'A' THEN 'AUTOSSERVICO'
                             ELSE 'NÃO DEFINIDO' END TIPOPRODUTO,
       PCPRODUT.DADOSTECNICOS, PCPRODUT.INFORMACOESTECNICAS, PCPRODUT.URLIMAGEM,
       PCPRODUT.ENVIAECOMMERCE, PCPRODUT.CODMARCA CODIGOMARCA, PCMARCA.MARCA NOMEMARCA, 
       PCPRODUT.CODEPTO CODIGODEPARTAMENTO, PCDEPTO.DESCRICAO NOMEDEPARTAMENTO,
       PCPRODUT.CODSEC  CODIGOSECAO, PCSECAO.DESCRICAO NOMESECAO,
       PCPRODUT.CODCATEGORIA CODIGOCATEGORIA, PCCATEGORIA.CATEGORIA NOMECATEGORIA,
       PCPRODUT.CODFORNEC, PCFORNEC.FORNECEDOR NOMEFORNECEDOR, PCPRODFILIAL.CLASSEESTOQUE,
       PCPRODFILIAL.CLASSEVENDA, PCPRODFILIAL.CODFILIAL CODIGOFILIAL
  FROM PCPRODUT, PCDEPTO, PCSECAO, PCCATEGORIA, PCMARCA, PCFORNEC, PCPRODFILIAL
 WHERE PCPRODUT.DTEXCLUSAO IS NULL
   AND NVL(PCPRODUT.OBS,'X') <> 'PV'
   AND PCPRODUT.CODEPTO = PCDEPTO.CODEPTO
   AND PCPRODUT.CODSEC  = PCSECAO.CODSEC
   AND PCPRODUT.CODPROD = PCPRODFILIAL.CODPROD
   AND PCPRODUT.CODSEC  = PCCATEGORIA.CODSEC (+)
   AND PCPRODUT.CODCATEGORIA = PCCATEGORIA.CODCATEGORIA (+)
   AND PCPRODUT.CODFORNEC    = PCFORNEC.CODFORNEC (+)
   AND PCPRODUT.CODMARCA     = PCMARCA.CODMARCA (+) ;


CREATE OR REPLACE VIEW ESVPRECOVENDA
AS   
SELECT PCTABPR.NUMREGIAO NUMEROREGIAO
      ,PCTABPR.CODPROD
      ,PCTABPR.PVENDA1 PRECOVENDA
      ,( SELECT PCPRECOPROM.PRECOFIXO
           FROM PCPRECOPROM
          WHERE PCPRECOPROM.NUMREGIAO = PCTABPR.NUMREGIAO
            AND PCPRECOPROM.CODPROD   = PCTABPR.CODPROD
            AND TRUNC(SYSDATE) BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA ) PRECOOFERTA
FROM PCTABPR
WHERE PCTABPR.PVENDA > 0
  AND NVL(PCTABPR.EXCLUIDO, 'N') = 'N';


CREATE OR REPLACE VIEW ESVESTOQUEVENDA
AS
SELECT PCEST.CODFILIAL, PCEST.CODPROD,
       ( NVL(PCEST.QTESTGER,0) - NVL(PCEST.QTRESERV,0) - NVL(PCEST.QTBLOQUEADA,0) - NVL(PCEST.QTPENDENTE,0) ) QUANTIDADEESTOQUEDISPONIVEL,
       ( SELECT MIN(PCPEDIDO.dtprevent) FROM PCITEM, PCPEDIDO
          WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED
            AND ( PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE,0) ) > 0
            AND PCITEM.CODPROD = PCEST.CODPROD ) DATAPREVISAOENTREGA
  FROM PCEST
 WHERE PCEST.CODFILIAL <> '99';             
