CREATE OR REPLACE PROCEDURE EXPORTA_AUTFORN_TEK
IS
   -- AUTOFORNE
   V_CDFILDEST    VARCHAR2(4);
   V_CDFILLANC    VARCHAR2(4);
   V_NRAUTOFORN   VARCHAR2(10);
   -- EMAIL
   V_NMRAZSOCFORN VARCHAR2(100);
   V_DTAUTOFORN   DATE;
   
   -- ITEMAUTF
   V_CDPRODINTE   VARCHAR2(20);
   -- EMAIL
   V_NMPRODUTO    VARCHAR2(50);
   V_DTPROGENTAF  DATE;
   V_SGUNIDADE    VARCHAR2(10);
   V_QTPROGENTAF  FLOAT;
   V_CDMARCA      VARCHAR2(5);
   V_CDPRODUTO    VARCHAR2(10);   
   
   CURSOR C_AUTOFORNE IS
      SELECT A.CDFILDEST, A.CDFILLANC, A.NRAUTOFORN, --EMAIL, EMAIL,
             F.NMRAZSOCFORN, A.DTAUTOFORN
        FROM AUTOFORNE A, FORNECEDOR F
       WHERE A.CDFORNECED = F.CDFORNECED
         AND A.CDFILDEST  = '9999'
         AND EXISTS (SELECT 1
                       FROM ITEMAUTF I
                      WHERE I.CDFILLANC = A.CDFILLANC
                        AND I.CDFILDEST = A.CDFILDEST
                        AND I.NRAUTOFORN = A.NRAUTOFORN
                        AND I.DTEXPORTA_RIQ IS NULL);
   
   CURSOR C_ITEMAUTF(C_CDFILDEST IN VARCHAR2, C_CDFILLANC IN VARCHAR2, C_NRAUTOFORN IN VARCHAR2) IS
      SELECT P.CDPRODINTE, -- EMAIL
             P.NMPRODUTO, I.DTPROGENTAF, P.SGUNIDADE, I.QTPROGENTAF,
             I.CDMARCA, I.CDPRODUTO
        FROM ITEMAUTF I, PRODUTO P
       WHERE I.CDPRODUTO  = P.CDPRODUTO
         AND I.CDFILDEST  = C_CDFILDEST
         AND I.CDFILLANC  = C_CDFILLANC
         AND I.NRAUTOFORN = C_NRAUTOFORN
         AND I.DTEXPORTA_RIQ IS NULL;
BEGIN
   OPEN C_AUTOFORNE;
   LOOP
      FETCH C_AUTOFORNE INTO V_CDFILDEST, V_CDFILLANC, V_NRAUTOFORN, -- EMAIL, --EMAIL,
                             V_NMRAZSOCFORN, V_DTAUTOFORN;
      EXIT WHEN C_AUTOFORNE%NOTFOUND;
      
      INSERT INTO INT_AUTOFORNE_TEK(NRAUTOFORN, DSEMAILOPERAPROV, DSEMAILOPERSOL, NMRAZSOCFORN,
                                    DTGRAVACAO, HRGRAVACAO)
      VALUES (V_NRAUTOFORN, NULL, NULL, V_NMRAZSOCFORN,
              TRUNC(SYSDATE), TO_CHAR(SYSDATE, 'HH24:MI'));
      
      OPEN C_ITEMAUTF(V_CDFILDEST, V_CDFILLANC, V_NRAUTOFORN);
      LOOP
         FETCH C_ITEMAUTF INTO V_CDPRODINTE, 
                               V_NMPRODUTO, V_DTPROGENTAF, V_SGUNIDADE, V_QTPROGENTAF,
                               V_CDMARCA, V_CDPRODUTO;
         EXIT WHEN C_ITEMAUTF%NOTFOUND;
         
         INSERT INTO INT_ITEMAUTF_TEK(NRAUTOFORN, CDPRODEXTERNO, DSEMAILOPERSOL,
                                      NMPRODUTO, DTPROGENTAF, SGUNIDADE, QTPROGENTAF, DTAUTOFORN,
                                      DTGRAVACAO, HRGRAVACAO)
         VALUES(V_NRAUTOFORN, V_CDPRODINTE, NULL,
                V_NMPRODUTO, V_DTPROGENTAF, V_SGUNIDADE, V_QTPROGENTAF, V_DTAUTOFORN,
                TRUNC(SYSDATE), TO_CHAR(SYSDATE, 'HH24:MI'));
      
         UPDATE ITEMAUTF
            SET DTEXPORTA_RIQ = SYSDATE
          WHERE CDFILDEST   = V_CDFILDEST
            AND CDFILLANC   = V_CDFILLANC
            AND NRAUTOFORN  = V_NRAUTOFORN
            AND CDMARCA     = V_CDMARCA
            AND CDPRODUTO   = V_CDPRODUTO
            AND DTPROGENTAF = V_DTPROGENTAF;      
      END LOOP;
      CLOSE C_ITEMAUTF;
   END LOOP;
   CLOSE C_AUTOFORNE;
   
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
      ROLLBACK;
      RAISE;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('EXPORTA_AUTFORN_TEK','6.39.014'); END;
/
