create or replace TRIGGER ATUALIZA_PEDIDOOL_PED
BEFORE INSERT ON ITEMPRODUTO FOR EACH ROW
DECLARE
   V_IDSISTEMA NOTAFISCAL.IDSISTEMA%TYPE;
   V_CDFILDEST ITEMPEDRELACOL.CDFILDEST%TYPE;
   V_CDFILLANC ITEMPEDRELACOL.CDFILLANC%TYPE;
   V_NRPEDEXOL ITEMPEDRELACOL.NRPEDEXOL%TYPE;
   V_CDMARCA   ITEMPEDRELACOL.CDMARCA%TYPE;
   V_CDPRODUTO ITEMPEDRELACOL.CDPRODUTO%TYPE;
   V_DTPROGENPEOL ITEMPEDRELACOL.DTPROGENPEOL%TYPE;

BEGIN
   SELECT MAX(IDSISTEMA)
     INTO V_IDSISTEMA
     FROM NOTAFISCAL
    WHERE CDFILIAL = :NEW.CDFILIAL
      AND NRLANCTONF = :NEW.NRLANCTONF;

   IF V_IDSISTEMA = 'EXP' THEN
      SELECT MAX(R.CDFILDEST),   MAX(R.CDFILLANC),   MAX(R.NRPEDEXOL),   MAX(R.CDMARCA),   MAX(R.CDPRODUTO), MAX(DTPROGENPEOL)
        INTO V_CDFILDEST, V_CDFILLANC, V_NRPEDEXOL, V_CDMARCA, V_CDPRODUTO, V_DTPROGENPEOL
        FROM ITEMPEDIDO I, ITEMPEDRELACOL R
       WHERE I.CDFILIAL = :NEW.CDFILIALPED
         AND I.NRPEDIDO = :NEW.NRPEDIDO
         AND I.NRITEMPED = :NEW.NRITEMPED
         AND I.CDFILIAL = R.CDFILIAL
         AND I.NRPEDIDO = R.NRPEDIDO
         AND I.NRITEMPED = R.NRITEMPED;

      IF V_CDFILDEST IS NOT NULL THEN
         INSERT INTO NFRELACPEXOL
         (CDFILIAL, NRLANCTONF,
          CDFILDEST, CDFILLANC, NRPEDEXOL, CDMARCA, CDPRODUTO, DTPROGENPEOL, QTNFRELPEXOL,  VRNFRELPEXOL, IDENTRADAPEDOL,
          NRSEQITPEOL)
         VALUES
         (:NEW.CDFILIAL, :NEW.NRLANCTONF,
          V_CDFILDEST, V_CDFILLANC, V_NRPEDEXOL, V_CDMARCA, V_CDPRODUTO, V_DTPROGENPEOL, :NEW.QTITEMPROD, :NEW.VRUNITITEM, 'N',
          :NEW.NRSEQITPROD);

         UPDATE ITEMPEDEXOL
            SET IDBAIXENPEOL = '2'
            WHERE CDFILDEST    = V_CDFILDEST
              AND CDFILLANC    = V_CDFILLANC
              AND NRPEDEXOL    = V_NRPEDEXOL
              AND CDMARCA      = V_CDMARCA
              AND CDPRODUTO    = V_CDPRODUTO
              AND DTPROGENPEOL = V_DTPROGENPEOL;

       END IF;
   END IF;

END;
/