CREATE OR REPLACE PROCEDURE USR_IMPORTA_NFENTRADA
IS
V_IDENTRSAID       USR_ENTR_MERC.IDENTRSAID%TYPE;
V_CDFILIAL_EXT     USR_ENTR_MERC.CDFILIAL%TYPE;
V_NRNOTAFISCAL     USR_ENTR_MERC.NRNOTAFISCAL%TYPE;
V_CDEXFORNECED     FORNECEDOR.CDEXFORNECED%TYPE;
V_DTENTRADA        USR_ENTR_MERC.DTENTRADA%TYPE;
V_CDFILIAL_EXT_REC USR_ENTR_MERC.CDFILIRECE%TYPE;
V_CDTIPOOPER       USR_ENTR_MERC.CDTIPOOPER%TYPE;
V_DTEMISSAO        USR_ENTR_MERC.DTEMISSAO%TYPE;
V_NRAUTOFORNE      USR_ENTR_MERC.NRAUTOFORNE%TYPE;
V_LOG_ERRO         USR_ENTR_MERC.LOG_ERRO%TYPE; 
V_DTIMPORTACAO     USR_ENTR_MERC.DTIMPORTACAO%TYPE;
V_CDSERIE          USR_ENTR_MERC.CDSERIE%TYPE;
V_CDMODDOCFISC     USR_ENTR_MERC.CDMODDOCFISC%TYPE;
V_NRLANCTONF       NOTAFISCAL.NRLANCTONF%TYPE;
V_NRLANCESTQ       USR_ENTR_MERC.NRLANCESTQ%TYPE;
V_VRQUANTIDADE     USR_ITEM_ENTR_MERC.VRQUANTIDADE%TYPE;
V_VRUNITARIO       USR_ITEM_ENTR_MERC.VRUNITARIO%TYPE;
V_CDPRODINTE       USR_ITEM_ENTR_MERC.CDPRODINTE%TYPE;
V_CDPRODUTO        PRODUTO.CDPRODUTO%TYPE;
V_VRTOTLANCTO      USR_ITEM_ENTR_MERC.VRUNITARIO%TYPE;
V_CDFORNECED       FORNECEDOR.CDFORNECED%TYPE;
V_IDTPIJURFORN     FORNECEDOR.IDTPIJURFORN%TYPE;
V_NRINSJURFORN     FORNECEDOR.NRINSJURFORN%TYPE;
V_CDFILIAL         FILIAL.CDFILIAL%TYPE;
V_CDFILIRECE       FILIAL.CDFILIAL%TYPE;
V_CDEMPRESA        FILIAL.CDEMPRESA%TYPE;
V_CDINSCESTA       FILIAL.CDINSCESTA%TYPE;
V_CDINSCMUNI       FILIAL.CDINSCMUNI%TYPE;
V_DSPRODEMIS       ITEMPRODUTO.DSPRODEMIS%TYPE;
V_CDPRODEMIS       ITEMPRODUTO.CDPRODEMIS%TYPE;
V_CDMARCA          PARASUPRI.CDMARCA%TYPE;
V_NRAUTOFORN       AUTOFORNE.NRAUTOFORN%TYPE;
V_CDFILLANC        AUTOFORNE.CDFILLANC%TYPE;
V_CDFILDEST        AUTOFORNE.CDFILDEST%TYPE;
V_DTPROGENTAF      ITEMAUTF.DTPROGENTAF%TYPE;
V_QTPROGENTAF      ITEMAUTF.QTPROGENTAF%TYPE;
V_VRPREUNIAF       ITEMAUTF.VRPREUNIAF%TYPE;
V_CDARVPROD        PRODUTO.CDARVPROD%TYPE;
V_VRFATOCONVAF     PRODUTO.VRFATOCONV%TYPE;
V_NRSEQUITEM       ITEMPRODUTO.NRSEQITPROD%TYPE;
V_CDOPERADOR       PARAMWEBSERVICE.CDOPERADORWS%TYPE;
V_SEQUENCIAL       NOVOCODIGO.NRSEQUENCIAL%TYPE;
V_JACADASTRADO     NUMBER;
V_RELACAF          NUMBER;
V_ERROAF           VARCHAR2(1);
V_ERRO             VARCHAR2(30);
V_ERRO_AUX         VARCHAR2(100);
V_SEQLOG           VARCHAR2(10);
V_DSMETODO         VARCHAR2(20) := 'lancNF';
V_DESC_LOG         VARCHAR2(4000);
V_FORMATO          VARCHAR2(21):= 'DD/MM/YYYY HH24:MI:SS';
V_TIPO             VARCHAR2(6) := 'BINARY';
V_LANGUAGE         VARCHAR2(20):= 'BRAZILIAN PORTUGUESE';
V_COMANDO          VARCHAR2(5000);




CURSOR C_NOTAS IS
SELECT USR.IDENTRSAID, USR.CDFILIAL AS CDFILIAL_EXT, USR.NRNOTAFISCAL, USR.NRINSJURFORN AS CDEXFORNECED, USR.DTENTRADA,
       USR.CDFILIRECE AS CDFILIAL_EXT_REC, USR.CDTIPOOPER, USR.DTEMISSAO, USR.NRAUTOFORNE, USR.LOG_ERRO, USR.DTIMPORTACAO,
       USR.CDSERIE, USR.CDMODDOCFISC, F.CDFILIAL, FIL_REC.CDFILIAL AS CDFILIRECE, FO.CDFORNECED, FO.IDTPIJURFORN, FO.NRINSJURFORN,
       FIL_REC.CDEMPRESA, FIL_REC.CDINSCESTA, FIL_REC.CDINSCMUNI, PS.CDMARCA, USR.NRLANCTONF, USR.NRLANCESTQ
  FROM USR_ENTR_MERC USR
 INNER JOIN FILIAL F
    ON USR.CDFILIAL = F.CDFILIALEXT
 INNER JOIN FILIAL FIL_REC
    ON USR.CDFILIRECE = FIL_REC.CDFILIALEXT
 INNER JOIN FORNECEDOR FO
    ON USR.NRINSJURFORN = FO.CDEXFORNECED
  LEFT JOIN PARASUPRI PS
    ON NVL(FIL_REC.CDFILCENTCMP,FIL_REC.CDFILIAL) = PS.CDFILIAL
 WHERE ((USR.LOG_ERRO IS NULL)); 

CURSOR C_PRODUTONF(C_NRNOTAFISCAL IN VARCHAR2, C_NRINSJURFORN IN VARCHAR2, C_CDSERIE IN VARCHAR2, C_DTEMISSAO IN DATE) IS
SELECT USR.CDFILIAL AS CDFILIAL_EXT, USR.NRNOTAFISCAL, USR.CDFILIRECE AS CDFILIAL_EXT_REC, USR.NRAUTOFORNE, USR.DTIMPORTACAO,
       USR.VRQUANTIDADE, USR.VRUNITARIO, USR.CDPRODINTE, PROD.CDPRODUTO, F.CDFILIAL, FIL_REC.CDFILIAL AS CDFILIRECE,
       PROD.NMPRODUTO AS DSPRODEMIS,
       TO_CHAR(REPLACE(TO_CHAR(PROD.CDARVPROD, REPLACE((SELECT CDPICTPROD FROM PARAMGERAL), '.', ',')), ',', '.')) AS CDPRODEMIS
  FROM USR_ITEM_ENTR_MERC USR
 INNER JOIN PRODUTO PROD
    ON PROD.CDPRODINTE = USR.CDPRODINTE
 INNER JOIN FILIAL F
    ON USR.CDFILIAL = F.CDFILIALEXT
 INNER JOIN FILIAL FIL_REC
    ON USR.CDFILIRECE = FIL_REC.CDFILIALEXT
 WHERE USR.NRNOTAFISCAL = C_NRNOTAFISCAL
   AND USR.NRINSJURFORN   = C_NRINSJURFORN
   AND USR.CDSERIE      = C_CDSERIE
   AND USR.DTEMISSAO    = C_DTEMISSAO
   AND USR.IDIMPORTADO  <> 'S';

CURSOR C_ITEMAUTF(C_CDFILLANC IN VARCHAR2, C_CDFILDEST IN VARCHAR2, C_NRAUTOFORNE IN VARCHAR2, C_CDPRODUTO IN VARCHAR2) IS
SELECT I.CDMARCA, I.DTPROGENTAF, (I.QTPROGENTAF - NVL(I.QTEFETENTRAF, 0)) AS QTPROGENTAF,
       I.VRPREUNIAF, P.CDPRODUTO, P.CDARVPROD, NVL(P.VRFATOCONV, 1) AS VRFATOCONVAF
  FROM ITEMAUTF I, PRODUTO P, USR_ITEM_AUTF USR
 WHERE I.CDFILLANC   = C_CDFILLANC
   AND I.CDFILDEST   = C_CDFILDEST
   AND I.NRAUTOFORN  = C_NRAUTOFORNE
   AND P.CDPRODUTO   = C_CDPRODUTO
   AND (I.CDMARCA    = USR.CDMARCA)
   AND (IDBAIXITMAF NOT IN ('2','3') OR IDBAIXITMAF IS NULL)
   AND (I.QTPROGENTAF - NVL(I.QTEFETENTRAF, 0)) > 0
   AND I.CDPRODUTO  = P.CDPRODUTO
   AND I.NRAUTOFORN = USR.NRAUTOFORN
   AND I.CDFILLANC  = USR.CDFILLANC
   AND I.CDFILDEST  = USR.CDFILDEST
   AND I.CDPRODUTO  = USR.CDPRODUTO
 ORDER BY I.DTPROGENTAF;

BEGIN
  V_COMANDO := NULL;
  V_COMANDO := 'ALTER SESSION SET NLS_DATE_FORMAT = '||CHR(39)||V_FORMATO||CHR(39)||' NLS_SORT = '||CHR(39)||V_TIPO||CHR(39)||' NLS_LANGUAGE= '||CHR(39)||V_LANGUAGE||CHR(39);
  EXECUTE IMMEDIATE V_COMANDO;

   OPEN C_NOTAS;
   LOOP
      FETCH C_NOTAS INTO V_IDENTRSAID,   V_CDFILIAL_EXT, V_NRNOTAFISCAL, V_CDEXFORNECED, V_DTENTRADA,    V_CDFILIAL_EXT_REC, V_CDTIPOOPER, V_DTEMISSAO,
                         V_NRAUTOFORNE,  V_LOG_ERRO,     V_DTIMPORTACAO, V_CDSERIE,      V_CDMODDOCFISC, V_CDFILIAL,         V_CDFILIRECE, V_CDFORNECED,
                         V_IDTPIJURFORN, V_NRINSJURFORN, V_CDEMPRESA,    V_CDINSCESTA,   V_CDINSCMUNI,   V_CDMARCA,          V_NRLANCTONF, V_NRLANCESTQ;
      EXIT WHEN C_NOTAS%NOTFOUND;

      V_ERRO := '';
      V_ERRO_AUX := '';
      V_VRTOTLANCTO := 0;

      BEGIN
         SELECT COUNT(*)
           INTO V_JACADASTRADO
           FROM USR_ENTR_MERC
          WHERE CDFILIAL     = V_CDFILIAL_EXT
            AND NRNOTAFISCAL = V_NRNOTAFISCAL
            AND NRINSJURFORN = V_NRINSJURFORN
            AND CDSERIE      = V_CDSERIE
            AND DTEMISSAO    = V_DTEMISSAO
            AND NRLANCTONF   IS NOT NULL;
      EXCEPTION
         WHEN OTHERS THEN
            V_JACADASTRADO := 0;
      END;

      SELECT SUM(VRQUANTIDADE * VRUNITARIO)
        INTO V_VRTOTLANCTO
        FROM USR_ITEM_ENTR_MERC
       WHERE NRNOTAFISCAL = V_NRNOTAFISCAL
         AND NRINSJURFORN = V_NRINSJURFORN
         AND CDSERIE      = V_CDSERIE
         AND DTEMISSAO    = V_DTEMISSAO;

      IF(V_JACADASTRADO = 0) THEN

         IF (V_CDMARCA IS NOT NULL) THEN

            NOVO_CODIGO_SC('LANCNF/FILIAL'||V_CDFILIAL, V_SEQUENCIAL);
            V_NRLANCTONF := SUBSTR(V_SEQUENCIAL, 11, 10);
            NOVO_CODIGO_SC('LANCTOEST'||V_CDFILIAL, V_SEQUENCIAL);
            V_NRLANCESTQ := SUBSTR(V_SEQUENCIAL, 11, 10);

            BEGIN
               GERA_NOTAFISCAL_CORPO_ENTRADA(V_CDFILIAL,
                                             V_CDFILIRECE,
                                             V_CDEMPRESA,
                                             V_CDTIPOOPER,
                                             V_CDSERIE,
                                             V_CDFORNECED,
                                             V_DTENTRADA,
                                             'DFE',
                                             V_VRTOTLANCTO,
                                             V_NRLANCTONF,
                                             V_NRLANCESTQ,
                                             'S',           --P_ATUAESTOQUE
                                             NULL,          --P_NRAPURACFAT
                                             NULL,          --P_NRLANCTONF
                                             NULL,          --P_IDTPIJURTRAN
                                             NULL,          --P_NRINSJURTRAN
                                             NULL,          --P_NRPLACAVEIC
                                             NULL,          --P_SGUFVEIC
                                             NULL,          --P_IDPGTOFRETE
                                             NULL,          --P_DSQTDEVOLU
                                             NULL,          --P_DSESPECVOLU
                                             NULL,          --P_DSMARCAVOLU
                                             NULL,          --P_DSNUMEVOLU
                                             NULL,          --P_VRPBRUTOVOLU
                                             NULL,          --P_VRPLIQUVOLU
                                             NULL,          --P_NRLANCESTQ
                                             NULL,          --P_NRLANCORIG
                                             NULL,          --P_DTLANCAMENNF
                                             V_NRNOTAFISCAL,--P_NRNOTAFISC
                                             V_DTEMISSAO,   --P_DTEMISSAO
                                             NULL,          --P_NRACESSONFE
                                             V_CDMODDOCFISC --P_CDMODDOCFISC
                                             );

            EXCEPTION
               WHEN OTHERS THEN
                 IF (SQLERRM like '%FKEST00178SERIEENT%') THEN
                    V_ERRO := 'COM_ERRO_SERIE';
                    V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
                 else
                    V_ERRO := 'COM_ERRO_GEN';
                    V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
                 END IF;
            END;

            IF (V_ERRO_AUX IS NULL) THEN
               OPEN C_PRODUTONF(V_NRNOTAFISCAL, V_NRINSJURFORN, V_CDSERIE, V_DTEMISSAO);
               LOOP
                  FETCH C_PRODUTONF INTO V_CDFILIAL_EXT, V_NRNOTAFISCAL, V_CDFILIAL_EXT_REC, V_NRAUTOFORNE, V_DTIMPORTACAO, V_VRQUANTIDADE,
                                         V_VRUNITARIO,   V_CDPRODINTE,   V_CDPRODUTO,        V_CDFILIAL,    V_CDFILIRECE,   V_DSPRODEMIS,
                                         V_CDPRODEMIS;
                    EXIT WHEN C_PRODUTONF%NOTFOUND;

                       V_NRAUTOFORN := LPAD(V_NRAUTOFORNE, 10, '0');

                       BEGIN
                          GERA_NOTAFISCAL_PRODUTO(V_CDFILIAL,
                                                  V_NRLANCTONF,
                                                  V_CDPRODUTO,
                                                  V_CDPRODEMIS,
                                                  V_DSPRODEMIS,
                                                  V_VRQUANTIDADE,
                                                  V_VRUNITARIO);

                       EXCEPTION
                          WHEN OTHERS THEN
                             V_ERRO := 'COM_ERRO_PROD';
                             V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
                       END;

                       SELECT MAX(A.CDFILLANC), MAX(A.CDFILDEST)
                         INTO V_CDFILLANC, V_CDFILDEST
                         FROM AUTOFORNE A
                        WHERE A.NRAUTOFORN = V_NRAUTOFORN
                          AND (A.IDSITUATUAAF IS NULL);

                       OPEN C_ITEMAUTF(V_CDFILLANC, V_CDFILDEST, V_NRAUTOFORN, V_CDPRODUTO);
                       LOOP
                          FETCH C_ITEMAUTF INTO V_CDMARCA, V_DTPROGENTAF, V_QTPROGENTAF, V_VRPREUNIAF, V_CDPRODUTO, V_CDARVPROD, V_VRFATOCONVAF;
                          EXIT WHEN C_ITEMAUTF%NOTFOUND;

                              V_RELACAF := 0;
                              BEGIN

                                 UPDATE ITEMPRODUTO
                                    SET NRAUTOFORN   = V_NRAUTOFORN,
                                        CDMARCA      = V_CDMARCA
                                  WHERE CDFILIAL     = V_CDFILIAL
                                    AND NRLANCTONF   = V_NRLANCTONF
                                    AND CDPRODUTO    = V_CDPRODUTO
                                    AND QTITEMPROD   = V_VRQUANTIDADE
                                    AND VRUNITITEM   = V_VRUNITARIO;

                                 SELECT COUNT(1)
                                   INTO V_RELACAF
                                   FROM NFRELACAF
                                  WHERE CDFILIAL    = V_CDFILIAL
                                    AND CDFILLANC   = V_CDFILLANC
                                    AND NRLANCTONF  = V_NRLANCTONF
                                    AND CDFILDEST   = V_CDFILDEST
                                    AND NRAUTOFORN  = V_NRAUTOFORN
                                    AND CDPRODUTO   = V_CDPRODUTO
                                    AND CDMARCA     = V_CDMARCA
                                    AND DTPROGENTAF = V_DTPROGENTAF;
                              EXCEPTION
                                 WHEN NO_DATA_FOUND THEN
                                    V_RELACAF := 0;
                              END;

                              IF V_RELACAF = 0 THEN
                                 INSERT INTO NFRELACAF
                                   (CDFILIAL,  NRLANCTONF,  CDFILDEST,   CDFILLANC,   NRAUTOFORN, CDMARCA,
                                    CDPRODUTO, DTPROGENTAF, QTNFRELACAF, VRNFRELACAF)
                                 VALUES
                                   (V_CDFILIAL, V_NRLANCTONF, V_CDFILDEST,   V_CDFILLANC,   V_NRAUTOFORN,
                                    V_CDMARCA,  V_CDPRODUTO,  V_DTPROGENTAF, V_VRQUANTIDADE, V_VRUNITARIO);
                              END IF;
                       END LOOP;
                       CLOSE C_ITEMAUTF;

                       SELECT LPAD((TO_NUMBER(NVL(MAX(NRSEQITPROD),'0000'))), 4, 0)
                         INTO V_NRSEQUITEM
                         FROM ITEMPRODUTO
                        WHERE CDFILIAL   = V_CDFILIAL
                          AND NRLANCTONF = V_NRLANCTONF;

                       NF_BAIXA_AF(V_CDFILIAL,
                                   V_NRLANCTONF,
                                   V_NRSEQUITEM,
                                   'I',
                                   V_CDPRODEMIS,
                                   V_CDPRODEMIS,
                                   V_CDPRODUTO,
                                   V_CDPRODUTO,
                                   V_CDMARCA,
                                   V_CDMARCA,
                                   V_VRQUANTIDADE,
                                   V_VRQUANTIDADE,
                                   V_ERROAF);

                       IF V_ERROAF  = 'S' THEN

                          V_ERRO := 'COM_ERRO_AF';

                          NOVO_CODIGO('INTEGRA_WEBSERV_IT/FILIAL/AF' || V_CDFILDEST || V_NRAUTOFORN, V_SEQUENCIAL);
                          V_SEQLOG := SUBSTR(V_SEQUENCIAL, 11, 10);

                          LOG_WEBSERVICE_INTEGRACAO('I',
                                                    V_SEQLOG,
                                                    V_DSMETODO,
                                                    'INCLUSAO',
                                                    NULL,
                                                    'LANCAMENTO',
                                                    NULL,
                                                    NULL,
                                                    'Erro ao baixar Prod. da AF: '||V_NRAUTOFORN||' Prod.: '||V_CDARVPROD||' FILIAL: '||V_CDFILDEST||' NF: '||V_NRNOTAFISCAL||' FORN.: '|| V_NRINSJURFORN||' SERIE: '||V_CDSERIE||' DT. EMIS.: '||V_DTEMISSAO,
                                                    V_CDFORNECED,
                                                    NULL,
                                                    NULL,
                                                    V_CDFILLANC,
                                                    NULL,
                                                    NULL,
                                                    NULL,
                                                    NULL,
                                                    V_NRAUTOFORN,
                                                    V_CDFILDEST,
                                                    NULL,
                                                    NULL,
                                                    NULL,
                                                    NULL);
                          V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
                       ELSE
                          V_ERROAF := '';
                       END IF;
               END LOOP;
               CLOSE C_PRODUTONF;

               BEGIN
                  SELECT CDOPERADORWS
                    INTO V_CDOPERADOR
                    FROM PARAMWEBSERVICE
                   WHERE IDSITUACAOWS = 'A';
               EXCEPTION
                  WHEN OTHERS THEN
                     V_CDOPERADOR := NULL;
               END;

               IF V_CDOPERADOR IS NOT NULL THEN
                 --DBMS_OUTPUT.PUT_LINE('Data: '||V_DTENTRADA);
                --RAISE_APPLICATION_ERROR('-20501', 'Data: '||V_DTENTRADA, TRUE);
                  GERA_FECHAMENTO_NFENTRADA(V_CDFILIAL, V_NRLANCTONF, V_DTENTRADA, V_NRLANCESTQ, V_CDOPERADOR);
               ELSE
                  V_ERRO := 'COM_ERRO_OPER';
                  V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
               END IF;
            END IF;
         ELSE
            V_ERRO := 'COM_ERRO_MARCA';
            V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
         END IF;
      ELSE
         V_ERRO := 'COM_ERRO_NF_JA_EXISTE';
         V_ERRO_AUX := SUBSTR(SQLERRM,0,100);
      END IF;

   IF V_ERRO IS NULL THEN

      UPDATE USR_ENTR_MERC
         SET DTIMPORTACAO = SYSDATE,
             NRLANCTONF   = V_NRLANCTONF,
             NRLANCESTQ   = V_NRLANCESTQ,
             LOG_ERRO     = 'Operação realizada com Sucesso! (Data:'||TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS')||')'
       WHERE CDFILIAL     = V_CDFILIAL_EXT
         AND NRNOTAFISCAL = V_NRNOTAFISCAL
         AND NRINSJURFORN = V_NRINSJURFORN
         AND CDSERIE      = V_CDSERIE
         AND DTEMISSAO    = V_DTEMISSAO;
         --C_NRNOTAFISCAL IN VARCHAR2, C_NRINSJURFORN IN VARCHAR2, C_CDSERIE IN VARCHAR2, C_DTEMISSAO IN DATE

      UPDATE USR_ITEM_ENTR_MERC
      SET IDIMPORTADO = 'S'
      WHERE NRNOTAFISCAL = V_NRNOTAFISCAL
        AND NRINSJURFORN = V_NRINSJURFORN
        AND CDSERIE      = V_CDSERIE
        AND DTEMISSAO    = V_DTEMISSAO;

   ELSE
      /*TRATATIVAS DE LOG*/
      V_DESC_LOG := 'Operação não realizada - FILIAL: '||V_CDFILIRECE||' NF: '||V_NRNOTAFISCAL||' FORN.: '|| V_NRINSJURFORN||' SERIE: '||V_CDSERIE||' DT. EMIS.: '||V_DTEMISSAO||'-';

      CASE WHEN V_ERRO = 'COM_ERRO_PROD'           THEN V_DESC_LOG := V_DESC_LOG||'(Erro ao lançar Produto) '||V_ERRO_AUX;
           WHEN V_ERRO = 'COM_ERRO_SERIE'          THEN V_DESC_LOG := V_DESC_LOG||'(Serie não Cadastrada) '||V_ERRO_AUX;
           WHEN V_ERRO = 'COM_ERRO_AF'             THEN V_DESC_LOG := V_DESC_LOG||'(Erro ao Baixar AF) '||V_ERRO_AUX;
           WHEN V_ERRO = 'COM_ERRO_MARCA'          THEN V_DESC_LOG := V_DESC_LOG||'(Marca padrão não parametrizada) '||V_ERRO_AUX;
           WHEN V_ERRO = 'COM_ERRO_OPER'           THEN V_DESC_LOG := V_DESC_LOG||'(Operador padrão não parametrizado) '||V_ERRO_AUX;
           WHEN V_ERRO = 'COM_ERRO_NF_JA_EXISTE'   THEN V_DESC_LOG := V_DESC_LOG||'(NF ja cadastrado para Filial) '||V_ERRO_AUX;
           WHEN V_ERRO = 'COM_ERRO_GEN'            THEN V_DESC_LOG := V_DESC_LOG||'(Erro Genérico) '||V_ERRO_AUX;
      END CASE;

      NOVO_CODIGO('INTEGRA_WEBSERV_CABEC/FILIAL' || V_CDFILIAL, V_SEQUENCIAL);
      V_SEQLOG := SUBSTR(V_SEQUENCIAL, 11, 10);

         LOG_WEBSERVICE_INTEGRACAO('C',
                                   V_SEQLOG,
                                   V_DSMETODO,
                                   'INCLUSAO',
                                   NULL,
                                   'LANCAMENTO',
                                   NULL,
                                   NULL,
                                   V_DESC_LOG,
                                   V_CDFORNECED,
                                   NULL,
                                   NULL,
                                   V_CDFILIAL,
                                   V_NRLANCTONF,
                                   NULL,
                                   V_NRLANCESTQ,
                                   NULL,
                                   NULL,
                                   V_CDFILIRECE,
                                   NULL,
                                   NULL,
                                   NULL,
                                   NULL);

      UPDATE USR_ENTR_MERC
         SET LOG_ERRO = V_ERRO||' (Data:'||TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS')||')'
       WHERE CDFILIAL     = V_CDFILIAL_EXT
         AND NRNOTAFISCAL = V_NRNOTAFISCAL
         AND NRINSJURFORN = V_NRINSJURFORN
         AND CDSERIE      = V_CDSERIE
         AND DTEMISSAO    = V_DTEMISSAO
         AND LOG_ERRO IS NULL;

      UPDATE USR_ITEM_ENTR_MERC
      SET IDIMPORTADO = 'S'
      WHERE NRNOTAFISCAL = V_NRNOTAFISCAL
        AND NRINSJURFORN = V_NRINSJURFORN
        AND CDSERIE      = V_CDSERIE
        AND DTEMISSAO    = V_DTEMISSAO;

   END IF;
   V_NRINSJURFORN := NULL;
   COMMIT;

   END LOOP;
   CLOSE C_NOTAS;

   COMMIT;
END;
/

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