CREATE OR REPLACE PROCEDURE INTEGR_EXPORTA_AF
IS
V_NRAUTOFORN     AUTOFORNE.NRAUTOFORN%TYPE;
V_NRINSJURTRAN   AUTOFORNE.NRINSJURTRAN%TYPE;
V_IDPGTOFRETE    AUTOFORNE.IDPGTOFRETE%TYPE;
V_CDFORMPGTO     AUTOFORNE.CDFORMPGTO%TYPE;
V_CDFILDEST      AUTOFORNE.CDFILDEST%TYPE;
V_CDFILLANC      AUTOFORNE.CDFILLANC%TYPE;
V_DTAUTOFORN     AUTOFORNE.DTAUTOFORN%TYPE;
V_NRSEQAPURAF    AUTOFORNE.NRSEQAPURAF%TYPE;
V_DTPROGENTAF    ITEMAUTF.DTPROGENTAF%TYPE; 
V_QTPROGENTAF    ITEMAUTF.QTPROGENTAF%TYPE;
V_VRPREUNIAF     ITEMAUTF.VRPREUNIAF%TYPE;
V_CDOPERADOR     OPERADOR.CDOPERADOR%TYPE;
V_NMCOMPRADOR    OPERADOR.NMACESSO%TYPE;
V_CDMARCA        MARCA.CDMARCA%TYPE;
V_CDREGIAO       REGIAO.CDREGIAO%TYPE;
V_CDFORNECED     FORNECEDOR.CDFORNECED%TYPE;
V_CDEXFORNECED   FORNECEDOR.CDEXFORNECED%TYPE;
V_NMCONTFORN     ENDEFORN.NMCONTFORN%TYPE;
V_CDCENTCUST     PARAMFILIAL.CDEXFILIAL%TYPE;
V_CDPRODUTO      PRODUTO.CDPRODUTO%TYPE;
V_SGUNIDADE      PRODUTO.SGUNIDADE%TYPE;
V_CDPRODINTE     PRODUTO.CDPRODINTE%TYPE;
V_DTCOTACAO      COLETAPR.DTCOLEPREC%TYPE;
--V_DSURLWEBSERV   PARAMWEBSERVICE.DSURLWEBSERV%TYPE; 
--V_CDOPERADORWS   PARAMWEBSERVICE.CDOPERADORWS%TYPE; 
--V_DSSERVPROXY    PARAMWEBSERVICE.DSSERVPROXY%TYPE; 
--V_CDSENHPROXY    PARAMWEBSERVICE.CDSENHPROXY%TYPE; 
--V_NRPORTAWEBSERV PARAMWEBSERVICE.NRPORTAWEBSERV%TYPE;
V_CDMOEDA       NUMBER(2);
CURSOR C_AF IS
SELECT AF.NRAUTOFORN,  AF.DTAUTOFORN, AF.CDOPERADOR, AF.NRINSJURTRAN, FO.IDTPFRETFORN, AF.CDFORMPGTO, SUBSTR(NVL(OP.NMACESSO,OP.NMOPERADOR), 0, 15) AS NMOPERADOR, PA.CDEXFILIAL AS CDCENTCUST,
       SUBSTR(REGEXP_REPLACE(FO.CDEXFORNECED, '\D'), 1, 14) AS CDEXFORNECED, 0 AS CDMOEDA,  ED.NMCONTFORN, AF.CDFILDEST, AF.CDFILLANC, AF.CDFORNECED, AF.NRSEQAPURAF
  FROM AUTOFORNE AF, OPERADOR OP, PARAMFILIAL PA, FORNECEDOR FO, ENDEFORN ED
 WHERE AF.CDOPERADOR = OP.CDOPERADOR
   AND AF.CDFILDEST = PA.CDFILIAL
   AND PA.CDEXFILIAL  IS NOT NULL
   AND FO.CDFORNECED   = AF.CDFORNECED
   AND ED.CDFORNECED   = FO.CDFORNECED
   AND FO.CDEXFORNECED IS NOT NULL
   AND ED.IDTPENDEFORN = 'P'
   AND IDBAIXAAF IS NULL
   AND AF.DTEXPOAUTOFORN IS NULL;
CURSOR C_ITEMAF(V_NRAUTOFORN IN VARCHAR2, V_CDFILDEST IN VARCHAR2, V_CDFILLANC IN VARCHAR2) IS
SELECT IT.NRAUTOFORN,  IT.DTPROGENTAF, IT.QTPROGENTAF, IT.VRPREUNIAF, PR.CDPRODINTE, PR.SGUNIDADE,  IT.CDFILDEST, IT.CDFILLANC, IT.CDMARCA, IT.CDPRODUTO
  FROM ITEMAUTF IT, PRODUTO PR
 WHERE IT.NRAUTOFORN = V_NRAUTOFORN
   AND IT.CDFILDEST  = V_CDFILDEST
   AND IT.CDFILLANC  = V_CDFILLANC
   AND IT.CDPRODUTO  = PR.CDPRODUTO
   AND PR.CDPRODINTE IS NOT NULL;
BEGIN
   DELETE FROM USR_AUTO_FORNE;
   DELETE FROM USR_ITEM_AUTF;
   OPEN C_AF;
   LOOP
      FETCH C_AF INTO V_NRAUTOFORN,  V_DTAUTOFORN, V_CDOPERADOR, V_NRINSJURTRAN, V_IDPGTOFRETE, V_CDFORMPGTO, V_NMCOMPRADOR, V_CDCENTCUST,
                      V_CDEXFORNECED, V_CDMOEDA, V_NMCONTFORN,  V_CDFILDEST, V_CDFILLANC, V_CDFORNECED, V_NRSEQAPURAF;
      EXIT WHEN C_AF%NOTFOUND;
            INSERT INTO USR_AUTO_FORNE(NRAUTOFORN,  DTAUTOFORN, CDOPERADOR, NRINSJURTRAN, IDPGTOFRETE, CDFORMPGTO, NMCOMPRADOR, CDCENTCUST, CDFORNECED,
                                       CDEXFORNECED, CDMOEDA,  NMCONTFORN,  CDFILDEST, CDFILLANC, DTINCLUSAO)
            VALUES(V_NRAUTOFORN,  V_DTAUTOFORN, V_CDOPERADOR, V_NRINSJURTRAN, V_IDPGTOFRETE, V_CDFORMPGTO, V_NMCOMPRADOR, V_CDCENTCUST, V_CDFORNECED,
                   V_CDEXFORNECED, V_CDMOEDA,  V_NMCONTFORN,  V_CDFILDEST, V_CDFILLANC, SYSDATE);
            BEGIN
               SELECT CDREGIAO
                 INTO V_CDREGIAO
                 FROM FILIAL
                WHERE CDFILIAL = V_CDFILDEST;
            EXCEPTION
               WHEN OTHERS THEN
                  V_CDREGIAO := '';
            END;                
            OPEN C_ITEMAF(V_NRAUTOFORN, V_CDFILDEST, V_CDFILLANC);
            LOOP
               FETCH C_ITEMAF INTO V_NRAUTOFORN,  V_DTPROGENTAF, V_QTPROGENTAF, V_VRPREUNIAF, V_CDPRODINTE, V_SGUNIDADE,  V_CDFILDEST, V_CDFILLANC, V_CDMARCA, V_CDPRODUTO;
               EXIT WHEN C_ITEMAF%NOTFOUND;
               BEGIN
                  SELECT COLETAPR.DTCOLEPREC
                    INTO V_DTCOTACAO
                    FROM ITMAPURPREC, COLETAPR
                   WHERE ITMAPURPREC.NRSEQITMAP   = V_NRSEQAPURAF
                     AND ITMAPURPREC.IDITMSELAPUR = 'S'
                     AND ITMAPURPREC.CDCENTITMAP  = V_CDFILLANC
                     AND ITMAPURPREC.CDPRODITMAP  = V_CDPRODUTO
                     AND ITMAPURPREC.CDREGITMAP   = V_CDREGIAO
                     AND ITMAPURPREC.CDFORNITMAP  = V_CDFORNECED
                     AND ITMAPURPREC.CDMARCITMAP  = V_CDMARCA
                     AND ITMAPURPREC.DTENTRAPUT   = V_DTPROGENTAF
                     AND ITMAPURPREC.NRCOLEITMAP  = COLETAPR.NRCOLEPRECO
                     AND ITMAPURPREC.CDCENTITMAP  = COLETAPR.CDFILIAL;
              EXCEPTION
                 WHEN OTHERS THEN
                     V_DTCOTACAO := V_DTAUTOFORN;
              END;
               --raise_application_error(-20010,V_NRAUTOFORN||' '||V_DTPROGENTAF||' '||V_QTPROGENTAF||' '||V_VRPREUNIAF||' '||V_CDPRODUTO||' '||V_CDPRODINTE||' '||V_SGUNIDADE||' '||V_CDFILDEST||' '||V_CDFILLANC||' '||V_CDMARCA);
               INSERT INTO USR_ITEM_AUTF(NRAUTOFORN,  DTPROGENTAF, DTCOTACAO, QTPROGENTAF, VRPREUNIAF, CDPRODUTO, CDPRODINTE, SGUNIDADE,  CDFILDEST, CDFILLANC, CDMARCA)
               VALUES(V_NRAUTOFORN,  V_DTPROGENTAF, V_DTCOTACAO, V_QTPROGENTAF, V_VRPREUNIAF, V_CDPRODUTO, V_CDPRODINTE, V_SGUNIDADE,  V_CDFILDEST, V_CDFILLANC, V_CDMARCA);
            END LOOP;
            CLOSE C_ITEMAF;
      COMMIT;
   END LOOP;
   CLOSE C_AF;
  /* BEGIN
      SELECT DSURLWEBSERV, CDOPERADORWS, DSSERVPROXY, CDSENHPROXY, NRPORTAWEBSERV
        INTO V_DSURLWEBSERV, V_CDOPERADORWS, V_DSSERVPROXY, V_CDSENHPROXY, V_NRPORTAWEBSERV
        FROM PARAMWEBSERVICE
       WHERE IDSITUACAOWS = 'A';
   END;*/
   --CALLWEBSERVICE('EnviarAF',V_DSURLWEBSERV, SYSDATE, SYSDATE, V_CDOPERADORWS, V_DSSERVPROXY, V_CDSENHPROXY, V_NRPORTAWEBSERV);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('INTEGR_EXPORTA_AF','6.35.021'); END;
/
