-- ============================================================
--   VIEW: RENTABILIDADE
-- ============================================================
CREATE OR REPLACE VIEW RENTABILIDADE_VIEW
(CDPRODUTO, NMPRODUTO,SGUNIDADE,CDFILIAL,NMFILIAL,CDLOJA,NMLOJA,CDCAIXA,NMCAIXA,DTENTRVENDA,VRPEALPRODIT,
 VRUNIT_BRUTO, VRUNIT_BRUTO_DESC,VRIMPOSTO,QTPRODVEND) AS
SELECT
    IT.CDPRODUTO, PR.NMPRODUTO, PR.SGUNIDADE,
    VE.CDFILIAL,FI.NMFILIAL,VE.CDLOJA,LO.NMLOJA,CA.CDCAIXA,CA.NMCAIXA,VE.DTENTRVENDA,
    NVL(IM.VRPEALPRODIT,0) AS VRPEALPRODIT,
    (IT.VRUNITVEND + NVL(IT.VRUNITVENDCL,0)) AS VRUNIT_BRUTO,
    (IT.VRUNITVEND + NVL(IT.VRUNITVENDCL,0)) - (NVL(IT.VRDESITVEND,0)/DECODE(IT.QTPRODVEND, 0, 1, IT.QTPRODVEND)) AS VRUNIT_BRUTO_DESC,
    ROUND(((IT.VRUNITVEND + NVL(IT.VRUNITVENDCL,0)) - (NVL(IT.VRDESITVEND,0)/DECODE(IT.QTPRODVEND, 0, 1, IT.QTPRODVEND))) * (NVL(IM.VRPEALPRODIT,0)/100),2) AS VRIMPOSTO,
    SUM(IT.QTPRODVEND) AS QTPRODVEND
  FROM
    ITEMVENDA IT, VENDA VE, PRODUTO PR, CAIXA CA, LOJA LO, FILIAL FI,
    (SELECT SUM(IM.VRPEALPRODIT) AS VRPEALPRODIT, IM.CDFILIAL, IM.CDCAIXA, IM.NRSEQVENDA,
     IM.NRSEQUITVEND
     FROM ITVENDAIMPOS IM, ITEMVENDA IT
     WHERE (IM.CDFILIAL     = IT.CDFILIAL    ) AND
           (IM.CDCAIXA      = IT.CDCAIXA     ) AND
           (IM.NRSEQVENDA   = IT.NRSEQVENDA  ) AND
           (IM.NRSEQUITVEND = IT.NRSEQUITVEND)
     GROUP BY IM.CDFILIAL, IM.CDCAIXA, IM.NRSEQVENDA,
              IM.NRSEQUITVEND ) IM
  WHERE
    FI.CDFILIAL         = VE.CDFILIAL     AND
    VE.CDFILIAL         = IT.CDFILIAL     AND
    VE.CDCAIXA          = IT.CDCAIXA      AND
    VE.NRSEQVENDA       = IT.NRSEQVENDA   AND
    VE.CDFILIAL         = LO.CDFILIAL     AND
    VE.CDLOJA           = LO.CDLOJA       AND
    IT.CDPRODUTO        = PR.CDPRODUTO    AND
    VE.IDSITUVENDA     <> 'C'            AND
    VE.CDFILIAL         = CA.CDFILIAL     AND
    VE.CDCAIXA          = CA.CDCAIXA      AND
    IM.CDFILIAL     (+) = IT.CDFILIAL     AND
    IM.CDCAIXA      (+) = IT.CDCAIXA      AND
    IM.NRSEQVENDA   (+) = IT.NRSEQVENDA   AND
    IM.NRSEQUITVEND (+) = IT.NRSEQUITVEND
  GROUP BY
    VE.CDFILIAL,FI.NMFILIAL, VE.CDLOJA,LO.NMLOJA,CA.CDCAIXA,CA.NMCAIXA,VE.DTENTRVENDA,IT.CDPRODUTO,PR.NMPRODUTO,PR.SGUNIDADE,
    NVL(IM.VRPEALPRODIT,0),
    (IT.VRUNITVEND + NVL(IT.VRUNITVENDCL,0)),
    (IT.VRUNITVEND + NVL(IT.VRUNITVENDCL,0)) - (NVL(IT.VRDESITVEND,0)/DECODE(IT.QTPRODVEND, 0, 1, IT.QTPRODVEND)),
    ((IT.VRUNITVEND + NVL(IT.VRUNITVENDCL,0)) - (NVL(IT.VRDESITVEND,0)/DECODE(IT.QTPRODVEND, 0, 1, IT.QTPRODVEND))) * (NVL(IM.VRPEALPRODIT,0)/100)
/

-- VERSAO --
BEGIN ATUVEROBJ('RENTABILIDADE_VIEW','4.05.136'); END;
/

