retornar mensagem de erro caso não execute a procedure

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
fabissilva
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 19
Registrado em: Seg, 09 Set 2019 4:29 pm
Localização: Sorocaba - SP
Fabi
INSERT INTO possivel VALUES ('Nada é impossível para aquele que persiste');

Possuo a Procedure abaixo e gostaria de saber como retornar caso algum insert não seja executado:
Porém não sei como fazer, tentei colocando exceção, mas não executa, poderiam me auxiliar?

Selecionar tudo


CREATE OR REPLACE PROCEDURE PR_JUN_INS_CTE(PAR_ALIQ          NUMBER,
                                           PAR_CFOP          NUMBER,
                                           PAR_CHAVE         VARCHAR2,
                                           PAR_CODCLI        NUMBER,
                                           PAR_CODCUSTO      NUMBER,
                                           PAR_CODMATAULSO   VARCHAR2,
                                           PAR_CODTPRECEITA  VARCHAR2,
                                           PAR_DESCMATAULSO  VARCHAR2,
                                           PAR_DTHORA        VARCHAR2, 
                                           PAR_DTVENCTO      VARCHAR2,
                                           PAR_EMISSAO       VARCHAR2,
                                           PAR_FILIAL        NUMBER,
                                           PAR_IDUSUARIO     NUMBER,
                                           PAR_MOD           NUMBER,
                                           PAR_MUNICFIM      NUMBER,
                                           PAR_MUNICINI      NUMBER,
                                           PAR_NUMNF         VARCHAR2,
                                           PAR_OBS           VARCHAR2,
                                           PAR_SERIE         NUMBER, 
                                           PAR_USUARIO       VARCHAR2,
                                           PAR_VLICMS        NUMBER,
                                           PAR_VLNOTA        NUMBER,
                                           PAR_CODOPERFISCAL NUMBER 
--                                           , PAR_CODERRO       OUT VARCHAR2
--                                           , PAR_MSGERRO       OUT VARCHAR2 
                                           
                                           ) AS
  VAR_CODCONTACTB      NUMBER;
  VAR_CODCTBCLI        NUMBER;
  VAR_CODDOCTOCRC      NUMBER;
  VAR_CODDOCTOESF      NUMBER;
  VAR_CODEMP           NUMBER;
  VAR_CODINTNF         NUMBER;
  VAR_CODITEMLANCA     NUMBER;
  VAR_CODLANCA         NUMBER;
  VAR_CODLOG           NUMBER;
  VAR_CODTPDOC         VARCHAR2(3);
  --VAR_CONTRAPART       NUMBER;
  VAR_DOCUMENTOLANCA   VARCHAR2(10);
  VAR_EMISSAO          DATE;
  VAR_EMISSAO_SEFAZ    VARCHAR2(1);
  VAR_ESFIMP           NUMBER;
  VAR_HORA             DATE;
  VAR_ITEMSERIE        VARCHAR2(5);
  VAR_NATUREZA         VARCHAR2(200);
  VAR_NRCLI            VARCHAR2(6);
  VAR_NRIMPORT         NUMBER;
  VAR_NRPLANO          NUMBER;
  VAR_RAZAOCLI         VARCHAR2(200);
  VAR_SAIDA            DATE;
  VAR_SISTEMA          VARCHAR2(3);
  VAR_STATUS_IMPRESSAO VARCHAR2(1);
  VAR_STATUSNF         VARCHAR2(1);
  VAR_TIPONF           VARCHAR2(1);
  VAR_UFDESTSAIDA      VARCHAR2(2);
  VAR_UFORIGSAIDA      VARCHAR2(2);
  VAR_VENCTO           DATE;
  VAR_CODFORN          NUMBER;
  VAR_UFICMS           VARCHAR2(2);
  VAR_EXISTE           NUMBER;
  VAR_CODDOCTOCPG      NUMBER;
  VAR_DESC             NUMBER(15,2);  
  VAR_DESCONTO         NUMBER(15,2);
  VAR_CODTPDESPESA     varchar2(6);
  VAR_CONTACTBDESP     NUMBER;

BEGIN

  VAR_CODCONTACTB      := 0;
  VAR_CODEMP           := 1;
  VAR_CODTPDOC         := 'CT';
  VAR_EMISSAO          := TO_DATE(PAR_EMISSAO, 'DD/MM/YYYY');
  VAR_EMISSAO_SEFAZ    := 'S';
  VAR_HORA             := TO_DATE(PAR_DTHORA,'DD/MM/YYYY HH24:MI:SS') ;
  VAR_NRPLANO          := 2;
  VAR_SAIDA            := TO_DATE(PAR_EMISSAO, 'DD/MM/YYYY');
  VAR_SISTEMA          := 'ESF';
  VAR_STATUS_IMPRESSAO := 'I';
  VAR_STATUSNF         := 'A';
  VAR_TIPONF           := 'S';
  VAR_ITEMSERIE        := '1_' || PAR_SERIE || '_1';
  VAR_VENCTO           := TO_DATE(PAR_DTVENCTO, 'DD/MM/YYYY');
  VAR_EXISTE           := 0;
  VAR_CODFORN          := 0;
  VAR_UFICMS           := '';
  VAR_DESCONTO         := 0;
  VAR_CODTPDESPESA      := '';
  VAR_CONTACTBDESP      := 0;
  
  BEGIN
    SELECT SQESFSAIDA.NEXTVAL INTO VAR_CODDOCTOESF FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODDOCTOESF := 0;
  END;

  BEGIN
    SELECT UF.CODIGOUF
      INTO VAR_UFORIGSAIDA
      FROM CTR_FILIAL         F,
           BGM_CADUF          UF,
           CTR_EMPAUTORIZADAS A,
           DVS_MUNICIPIO      D
     WHERE CODIGOFL = PAR_FILIAL
       AND UF.CODIGOUF = F.CODIGOUF
       AND A.CODINTEMPAUT = F.CODINTEMPAUT
       AND D.CODMUNIC(+) = F.CODMUNIC;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_UFORIGSAIDA := 'XX';
  END;

  BEGIN
    SELECT SQ_ESFNOTAFISCAL.NEXTVAL INTO VAR_CODINTNF FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODINTNF := 0;
  END;
  


  BEGIN
    SELECT SQCTBLANCA.NEXTVAL INTO VAR_CODLANCA FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODLANCA := 0;
  END;

  BEGIN
    SELECT CODCONTACTB
      INTO VAR_CODCONTACTB
      FROM CRCTPREC_CTBCONTA
     WHERE NROPLANO = VAR_NRPLANO
       AND CODTPRECEITA = PAR_CODTPRECEITA
       AND ROWNUM = 1;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODCONTACTB := 266;
  END;

  BEGIN
    SELECT UPPER(SUBSTR(DESCCLASSFISC,0,50))
      INTO VAR_NATUREZA
      FROM ESFCLASS
     WHERE CODCLASSFISC = PAR_CFOP;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_NATUREZA := 'ERRO';
  END;

  BEGIN
    SELECT CL.RSOCIALCLI, CL.NRCLI, CL.CODIGOUF
      INTO VAR_RAZAOCLI, VAR_NRCLI, VAR_UFDESTSAIDA
      FROM BGM_CLIENTE CL
     WHERE CL.CODCLI = PAR_CODCLI;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_RAZAOCLI    := 'ERRO';
      VAR_NRCLI       := 'ERRO';
      VAR_UFDESTSAIDA := 'XX';
  END;

--begin 
  INSERT INTO ESFNOTAFISCAL
    (CODINTNF,
     TIPONF,
     CODIGOEMPRESA,
     CODIGOFL,
     CODCLI,
     NUMERONF,
     SERIENF,
     DATAEMISSAO,
     DATAHORAENTSAI,
     CODCLASSFISC,
     NATUREZAOPERACAO,
     CODTPDOC,
     DADOSADICIONAIS,
     BASECALCICMS,
     VALORICMS,
     BASECALCICMS_SUBST,
     VALORICMS_SUBST,
     VALORTOTAL,
     VALORFRETE,
     VALORSEGURO,
     VALOROUTRASDESPESAS,
     VALORTOTALIPI,
     VALORBASEIPI,
     VALORTOTALNF,
     STATUSNF,
     ICMSISENTAS,
     ICMSOUTRAS,
     CODDOCTOESF,
     QTDDECIMAL,
     CODISSINT,
     CODLANCA,
     CODINTEDITOR,
     DATAVENCTO,
     TRANSP_TPINSCRICAO,
     CODMODELO,
     CHAVEDEACESSO,
     QTDECONSUMIDA,
     ALIQUOTAICMS,
     SITUACAO_ESPECIAL,
     EMPRESA_EMITIU_NF,
     ADD_LEIS_VIG_DADOS_ADICIONAIS,
     GRAVA_DADOS_ADICIONAIS_LIVRO,
     ICMS_N_DESTAC_INF_DADOS_ADIC,
     ADD_VLR_DIVERSOS_TOTAL_NOTA,
     VLR_DIVERSOS_COMPOE_BASE_ICMS,
     IMP_QTDE_EM_DECIMAIS,
     INCLUIR_DOCTOS_DEVOLVIDOS,
     INCLUIR_CREDITOS_IMOBILIZADO,
     VALOR_DESCONTO_FINANCEIRO,
     VALOR_DESCONTO,
     STATUS_IMPRESSAO,
     EMISSAO_SEFAZ,
     TIPO_CALC_DIF_ALIQ,
     CALCDIFALIQ_CRED,
     VALOR_OUTRAS_BASE_PISCOFINS,
     VALOR_OUTRAS_COMO_IPI_NO_XML,
     BASECALCICMS_DEVOL,
     VALORICMS_DEVOL,
     ALIQUOTAICMS_DEVOL,
     VALORFCP_SUBST,
     NOTA_REMESSA,
     TRANSP_FRETEPORCONTA,
     TRANSP_QTDE,
     TRANSP_PESOBRUTO,
     TRANSP_PESOLIQUIDO
     )
  VALUES
    (VAR_CODINTNF,
     VAR_TIPONF,
     VAR_CODEMP,
     PAR_FILIAL,
     PAR_CODCLI,
     PAR_NUMNF,
     PAR_SERIE,
     VAR_EMISSAO,
     VAR_HORA,
     PAR_CFOP,
     VAR_NATUREZA,
     VAR_CODTPDOC,
     null,
     PAR_VLNOTA,
     PAR_VLICMS,
     0.00,
     0.00,
     PAR_VLNOTA,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     PAR_VLNOTA,
     VAR_STATUSNF,
     0.00,
     0.00,
     VAR_CODDOCTOESF,
     2,
     0,
     VAR_CODLANCA,
     0,
     VAR_VENCTO,
     -1,
     PAR_MOD,
     PAR_CHAVE,
     0.00,
     PAR_ALIQ,
     1,
     'S',
     'N',
     'N',
     'N',
     'N',
     'N',
     'N',
     'N',
     'N',
     'N',
     0.00,
     VAR_STATUS_IMPRESSAO,
     VAR_EMISSAO_SEFAZ,
     'N',
     'N',
     'N',
     'N',
     0.00,
     0.00,
     0.00,
     0.00,
     'N',
     0,
     0,
     0.00,
     0.00);
     
--       EXCEPTION
--    WHEN OTHERS THEN
--      PAR_CODERRO := '1';
--      PAR_MSGERRO := 'Erro no insert da tabela ESFNOTAFISCAL ' || SQLCODE ||  ' -ERROR- ' || SQLERRM;
--  END;


  --INSERT NA CONTABILIDADE

  BEGIN
    SELECT CCC.CODCONTACTB
      INTO VAR_CODCTBCLI
      FROM CRCCONTACTB_CLIENTE CCC
     WHERE CCC.CODCLI = PAR_CODCLI
       AND ROWNUM = 1;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODCTBCLI := 0;
  END;

  BEGIN
    SELECT TO_CHAR(NVL(MAX(DOCUMENTOLANCA), 0) + 1)
      INTO VAR_DOCUMENTOLANCA
      FROM CTBLANCA
     WHERE SUBSTR(DOCUMENTOLANCA, 10, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 9, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 8, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 7, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 6, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 5, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 4, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 3, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 2, 1) BETWEEN '0' AND '9'
       AND SUBSTR(DOCUMENTOLANCA, 1, 1) BETWEEN '0' AND '9'
       AND CODLANCA <> VAR_CODLANCA
       AND DTLANCA = VAR_EMISSAO
       AND CODIGOFL = 2
       AND CODIGOEMPRESA = VAR_CODEMP;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_DOCUMENTOLANCA := '0000000000';
  END;

  VAR_DOCUMENTOLANCA := LPAD(VAR_DOCUMENTOLANCA, 10, '0');

  INSERT INTO CTBLANCA
    (CODLANCA,
     DTLANCA,
     SISTEMA,
     USUARIO,
     CODIGOEMPRESA, --5
     CODIGOFL,
     DOCUMENTOLANCA,
     LOTELANCA,
     LCTOMODIFICADO,
     CODTPLNC,
     CODLANCA_ORIGINAL,
     CODTPLNC_ORIGINAL,
     USUARIO_INCLUSAO,
     DATA_INCLUSAO, --15
     CODIGOFL_ORIGEM,
     LANCAMENTO_SUB_CONTA)
  VALUES
    (VAR_CODLANCA,
     VAR_EMISSAO,
     VAR_SISTEMA,
     PAR_USUARIO,
     VAR_CODEMP, --5
     2,
     VAR_DOCUMENTOLANCA,
     VAR_SISTEMA,
     'N',
     1,
     VAR_CODLANCA,
     1,
     PAR_USUARIO,
     SYSDATE, --15
     PAR_FILIAL,
     'N');

  --LANCAMENTOS DE DEBITOS NA CONTABILIDADE

  BEGIN
    SELECT NVL(MAX(CODITEMLANCA) + 1, 1)
      INTO VAR_CODITEMLANCA
      FROM CTBITLNC
     WHERE CODLANCA = VAR_CODLANCA;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODITEMLANCA := 1;
  END;

  INSERT INTO CTBITLNC
    (CODLANCA,
     CODITEMLANCA,
     NROPLANO,
     CODCONTACTB,
     CONTRAPARTITEMLANCA, --51
     CODCUSTO,
     DEBITOCREDITOITEMLANCA,
     VRITEMLANCA,
     HISTORICOITEMLANCA,
     CONJUNTOITEMLANCA --10
     )
  VALUES
    (VAR_CODLANCA,
     VAR_CODITEMLANCA,
     VAR_NRPLANO,
     VAR_CODCTBCLI,
     VAR_CODCONTACTB, --5
     NULL,
     'D',
     PAR_VLNOTA,
     'SAIDA DA NES N. ' || PAR_NUMNF || '-1',
     1);

  --INSERT DO LANCAMENTO DE CREDITO
  BEGIN
    SELECT NVL(MAX(CODITEMLANCA) + 1, 1)
      INTO VAR_CODITEMLANCA
      FROM CTBITLNC
     WHERE CODLANCA = VAR_CODLANCA;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODITEMLANCA := 1;
  END;

  INSERT INTO CTBITLNC
    (CODLANCA,
     CODITEMLANCA,
     NROPLANO,
     CODCONTACTB,
     CONTRAPARTITEMLANCA, --51
     CODCUSTO,
     DEBITOCREDITOITEMLANCA,
     VRITEMLANCA,
     HISTORICOITEMLANCA,
     CONJUNTOITEMLANCA --10
     )
  VALUES
    (VAR_CODLANCA,
     VAR_CODITEMLANCA,
     VAR_NRPLANO,
     VAR_CODCONTACTB,
     VAR_CODCTBCLI, --5
     NULL,
     'C',
     PAR_VLNOTA,
     'SAIDA DA CTE N. ' || PAR_NUMNF || '-1 - CLIENTE ' || VAR_RAZAOCLI,
     1);

  COMMIT;

  SELECT SQCTR_LOG.NEXTVAL INTO VAR_CODLOG FROM DUAL;

  INSERT INTO CTR_LOG
    (CODIGOLOG,
     SISTEMA,
     USUARIO,
     DATALOG,
     HORALOG, --5
     TEXTOLOG,
     CHECKSUMLOG,
     USUARIOSAC,
     OS_USER,
     TERMINAL, --10
     IP_ADRESS --11
     )
  VALUES
    (
     --    VAR_CODLOG, 'ESF', PAR_USUARIO, VAR_EMISSAO, TO_DATE(SYSDATE,'HH24:MI:SS'), --5
     VAR_CODLOG,
     'CTB',
     PAR_USUARIO,
     VAR_EMISSAO,
     SYSDATE, --5
     'Lancamento ' || VAR_DOCUMENTOLANCA || ' data ' || PAR_EMISSAO ||
     ' Emp ' || VAR_CODEMP || ' Fil 2 integrado pelo modulo de ESF',
     NULL,
     NULL,
     SYS_CONTEXT('USERENV', 'OS_USER'),
     SYS_CONTEXT('USERENV', 'TERMINAL'),
     SYS_CONTEXT('USERENV', 'IP_ADDRESS')
     );

  COMMIT;

  INSERT INTO ESFSAIDA
    (CODIGOEMPRESA,
     CODIGOFL,
     NRDOCSAIDA,
     ITEMSAIDA,
     CODTPDOC,
     SISTEMA,
     NROPLANO,
     CODCLI,
     USUARIO,
     CODCLASSFISC,
     DTEMISSAOSAIDA,
     DTSAIDASAIDA,
     SERIESAIDA,
     VLCONTABILSAIDA,
     ICMSBASESAIDA,
     ICMSALIQSAIDA,
     ICMSVALORSAIDA,
     ICMSISENTASAIDA,
     ICMSOUTRASSAIDA,
     CODOPERFISCAL_ICMSSAIDA,
     IPIBASESAIDA,
     IPIALIQSAIDA,
     IPIVALORSAIDA,
     IPIISENTASAIDA,
     IPIOUTRASSAIDA,
     OBSSAIDA,
     STATUSSAIDA,
     UFDESTINOSAIDA,
     VLSERVICOSAIDA,
     VALORNF,
     PAUTAFISCAL,
     CODSITTRIBUTARIA,
     CODMODELO,
     CODDOCTOESF,
     DOCCONCILIADO,
     CODLANCA,
     INUTILIZADO,
     CODIGOFL_ORIGEM,
     ICMS_RECOLHIDO_ANT,
     DT_VENCIMENTO,
     UFORIGEM,
     VL_ICMS_UF_DEST_DIFAL,
     VL_ICMS_UF_REM_DIFAL,
     ALIQ_ICMS_DIFAL,
     VL_FCP_UF_DEST_DIFAL,
     VL_FCP_BASEICMS_DIFAL,
     ALIQ_FCP_UF_DEST_DIFAL,
     GNRE_RECOLHIDA_DIFAL,
     ICMSSUBSTBASE,
     ICMSSUBSTVALOR,
     CODMUNICFEDERAL_ORIGEM,
     CODMUNICFEDERAL_DESTINO,
     CONSUMIDOR_FINAL,
     VLDESCONTOSAIDA,
     VLOPERACAOSAIDA,
     RATVALORSAIDA,
     SENARVALORSAIDA,
     CONTRPREVALORSAIDA,
     PRODUTOR_RURAL,
     VL_ICMS_DESONERADO,
     ALIQ_FCP,
     VALOR_FCP,
     CRED_PRESUMIDO_BASE,
     CRED_PRESUMIDO_ALIQ,
     CRED_PRESUMIDO_VALOR,
     ESTORNO_CRED_BASE,
     ESTORNO_CRED_ALIQ,
     ESTORNO_CRED_VALOR,
     ESTORNO_DEB_BASE,
     ESTORNO_DEB_ALIQ,
     ESTORNO_DEB_VALOR,
     OUTROS_CREDITOS_BASE,
     OUTROS_CREDITOS_ALIQ,
     OUTROS_CREDITOS_VALOR)
  VALUES
    (VAR_CODEMP,
     PAR_FILIAL,
     PAR_NUMNF,
     '1_' || PAR_SERIE || '_1',
     VAR_CODTPDOC,
     VAR_SISTEMA,
     VAR_NRPLANO,
     PAR_CODCLI,
     PAR_USUARIO,
     PAR_CFOP,
     VAR_EMISSAO,
     VAR_SAIDA,
     PAR_SERIE,
     PAR_VLNOTA,
     PAR_VLNOTA,
     PAR_ALIQ,
     PAR_VLICMS,
     0.00,
     0.00,
     PAR_CODOPERFISCAL,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     null,
     'N',
     VAR_UFDESTSAIDA,
     0.00,
     0.00,
     'N',
     '000',
     PAR_MOD,
     VAR_CODDOCTOESF,
     'N',
     VAR_CODLANCA,
     'N',
     PAR_FILIAL,
     'N',
     VAR_VENCTO,
     VAR_UFORIGSAIDA,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     'N',
     0.00,
     0.00,
     PAR_MUNICINI,
     PAR_MUNICFIM,
     'N',
     0.00,
     PAR_VLNOTA,
     0.00,
     0.00,
     0.00,
     'N',
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00);

  SELECT SQCTR_LOG.NEXTVAL INTO VAR_CODLOG FROM DUAL;

  INSERT INTO CTR_LOG
    (CODIGOLOG,
     SISTEMA,
     USUARIO,
     DATALOG,
     HORALOG, --5
     TEXTOLOG,
     CHECKSUMLOG,
     USUARIOSAC,
     OS_USER,
     TERMINAL, --10
     IP_ADRESS --11
     )
  VALUES
    (
     --    VAR_CODLOG, 'ESF', PAR_USUARIO, VAR_EMISSAO, TO_DATE(SYSDATE,'HH24:MI:SS'), --5
     VAR_CODLOG,
     VAR_SISTEMA,
     PAR_USUARIO,
     VAR_EMISSAO,
     SYSDATE, --5
     'Nota fiscal de saida > Empresa 00' || VAR_CODEMP || ' , Filial 0' ||
     PAR_FILIAL || ' ,  cliente ' || VAR_NRCLI || ', serie ' || PAR_SERIE ||
     ' numero ' || PAR_NUMNF || ' e especie ' || VAR_CODTPDOC || '.',
     NULL,
     NULL,
     SYS_CONTEXT('USERENV', 'OS_USER'),
     SYS_CONTEXT('USERENV', 'TERMINAL'),
     SYS_CONTEXT('USERENV', 'IP_ADDRESS'));

  COMMIT;

  INSERT INTO ESFENTRASAIDA_IMPOSTO
    (CODDOCTOESF,
     TIPO,
     BASEIRRF,
     ALIQUOTAIRRF,
     VALORIRRF,
     BASEINSS,
     ALIQUOTAINSS,
     VALORINSS,
     BASEPIS,
     ALIQUOTAPIS,
     VALORPIS,
     BASECOFINS,
     ALIQUOTACOFINS,
     VALORCOFINS,
     BASECSLL,
     ALIQUOTACSLL,
     VALORCSLL,
     ITEM,
     IRRFRETIDO,
     INSSRETIDO,
     PISRETIDO,
     COFINSRETIDO,
     CSLLRETIDO)
  VALUES
    (VAR_CODDOCTOESF,
     'S',
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     VAR_ITEMSERIE,
     NULL,
     NULL,
     NULL,
     NULL,
     NULL
     );

  BEGIN
    SELECT SQ_ESF_IMPOSTOS.NEXTVAL INTO VAR_ESFIMP FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_ESFIMP := 0;
  END;

  INSERT INTO ESF_IMPOSTOS
    (ID_IMP,
     CHAVE,
     ITEM,
     LIVRO,
     TIPO,
     SISTEMA,
     VL_BASE,
     ALIQUOTA,
     VL_IMPOSTO,
     TP_IMPOSTO,
     SITUACAO_ESPECIAL,
     RETIDO,
     VL_ISENTAS,
     VL_OUTRAS)
  VALUES
    (VAR_ESFIMP,
     VAR_CODDOCTOESF,
     VAR_ITEMSERIE,
     'ICMS',
     'S',
     VAR_SISTEMA,
     ROUND(PAR_VLNOTA),
     ROUND(PAR_ALIQ),
     ROUND(PAR_VLICMS),
     'ICMS',
     0,
     'N',
     0,
     0);

  INSERT INTO ESF_ASSOCNFDOCTO
    (CODINTNF, CODDOCTOESF, TIPO, CODINT_WMS)
  VALUES
    (VAR_CODINTNF, VAR_CODDOCTOESF, VAR_TIPONF, 0);

  INSERT INTO ESFNOTAFISCAL_ITEM
    (CODINTNF,
     CODITEM,
     CODPRODUTO,
     DESCRICAO,
     CF,
     SITTRIBUTARIA,
     UNIDADE,
     QTDE,
     VLRUNITARIO,
     VLRTOTAL,
     ALIQICMS,
     CFOP,
     CODTPRECEITA,
     NROPLANO,
     CODCONTACTB,
     CODCUSTOFIN,
     BASECALC,
     VALORICMS,
     BASEICMSSUBST,
     VALORICMSSUBST,
     BASEIPI,
     VALORIPI,
     ALIQIPI,
     ISENTAS,
     OUTRAS,
     CODOPERFISCAL,
     BASE_ICMS_DIF_ALIQ,
     VALOR_ICMS_DIF_ALIQ,
     ALIQ_ICMS_DIF_ALIQ,
     BASEICMSDIFALIQ_CRED,
     DIFERENCIALALIQ_CRED,
     ALIQICMSDIFALIQ_CRED,
     VLR_PROP_DESCONTO,
     CUMULATIVO,
     VL_CONTABIL,
     PERC_BASE_COFINS,
     VL_BASE_COFINS,
     ALIQ_COFINS,
     VL_COFINS,
     VL_RATEADO_COFINS,
     PERC_BASE_PIS,
     VL_BASE_PIS,
     ALIQ_PIS,
     VL_PIS,
     VL_RATEADO_PIS,
     INDICE_PROPRIO,
     BASEOPFIS,
     PERC_ICMS_DIFERIDO,
     VALOR_ICMS_DIFERIDO,
     FCP_ST,
     BASECALC_DEVOL,
     VALORICMS_DEVOL,
     ALIQICMS_DEVOL,
     VL_ICMS_DESONERADO,
     BASECALC_ICMS_DIFERIDO,
     BASEICMSSTRETIDO,
     VALORICMSSTRETIDO,
     POSSUI_DIF_ALIQ,
     POSSUIDIFALIQ_CRED
)
  VALUES
    (VAR_CODINTNF,
     1,
     PAR_CODMATAULSO,
     PAR_DESCMATAULSO,
     99999999,
     '000',
     'UN',
     1,
     PAR_VLNOTA,
     PAR_VLNOTA,
     PAR_ALIQ,
     PAR_CFOP,
     PAR_CODTPRECEITA,
     VAR_NRPLANO,
     VAR_CODCONTACTB,
     PAR_CODCUSTO,
     PAR_VLNOTA,
     PAR_VLICMS,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     PAR_CODOPERFISCAL,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     'S',
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     'N',
     100,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     0.00,
     NULL,
     NULL);

  --INSERT NO FINANCEIRO
  BEGIN
    SELECT SQCRCDOCTO.NEXTVAL INTO VAR_CODDOCTOCRC FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODDOCTOCRC := 0;
  END;

  INSERT INTO CRCDOCTO
    (CODDOCTOCRC,
     CODIGOFL,
     CODINDIC,
     CODIGOEMPRESA,
     SISTEMA, --5
     USUARIO,
     CODTPDOC,
     CODCLI,
     NRODOCTOCRC,
     CODMOVTOBCO, --10
     NROPARCELACRC,
     EMISSAOCRC,
     SAIDACRC,
     VENCIMENTOCRC,
     RECEBIMENTOCRC, --15
     DESCONTOCRC,
     ACRESCIMOCRC,
     OBSDOCTOCRC,
     QUITADODOCTOCRC,
     STATUSDOCTOCRC, --20
     CODDOCTOCRCSUBST,
     TIPORECEBCRC,
     VLRINSSCRC,
     VLRIRRFCRC,
     CODLANCA, --25
     SERIEDOCTOCRC,
     VLRPISCRC,
     VLRCOFINSCRC,
     VLRCSLCRC,
     VLRISSCRC, --30
     DESCFINANCEIROCRC,
     INSTRUCAO_PROTESTO,
     VENCIMENTOORIGINALCRC,
     DOCTODEDEVOL,
     DOCTODESUBSTITUICAO, --35
     CODBANCO,
     CODAGENCIA,
     CODCONTABCO,
     CODDOCTOCRC_ADTO,
     CODDOCTOCRC_DEVOL, --40
     VALOR_ADTO,
     VALOR_DEVOL,
     CODDOCTOESF,
     COBELETMSGBOLETO,
     COBELETNOSSONUMERO, --45
     CARTAO_TID,
     CARTAO_CODAUTORIZ,
     CARTAO_ESTABEL,
     COBELETNRREMESSA,
     COBELETSTATUS, --50
     OBS2DOCTOCRC,
     NROTOTALPARCELAS_CARTAO,
     TIPOMOVTO_CARTAO,
     CARTAO_RESUMO,
     CODLANCABX_DESC, --55
     DATA_INCLUSAO,
     USUARIO_INCLUSAO,
     COBELETCARTEIRA,
     CODIGOFL_ORIGEM,
     ID_MOVTO_ORC, --60
     COD_RESP_COB,
     data_referencia --61
     )
  VALUES
    (VAR_CODDOCTOCRC,
     PAR_FILIAL,
     NULL,
     VAR_CODEMP,
     VAR_SISTEMA, --5
     PAR_USUARIO,
     VAR_CODTPDOC,
     PAR_CODCLI,
     LPAD(PAR_NUMNF, 10, '0'),
     NULL, --10
     1,
     VAR_EMISSAO,
     VAR_EMISSAO,
     VAR_VENCTO,
     NULL, --15
     0,
     0,
     PAR_OBS,
     'N',
     'N', --20
     NULL,
     NULL,
     0,
     0,
     NULL, --25
     PAR_SERIE,
     0,
     0,
     0,
     0, --30
     0,
     NULL,
     VAR_VENCTO,
     'N',
     'N', --35
     NULL,
     NULL,
     NULL,
     NULL,
     NULL, --40
     0,
     0,
     VAR_CODDOCTOESF,
     NULL,
     NULL, --45
     NULL,
     NULL,
     NULL,
     NULL,
     NULL, --50
     NULL,
     0,
     NULL,
     NULL,
     NULL, --55
     SYSDATE,
     PAR_USUARIO,
     NULL,
     PAR_FILIAL,
     NULL, --60
     NULL,
     VAR_EMISSAO --61
     );

  INSERT INTO CRCITDOC
    (CODDOCTOCRC,
     CODITEMDOCCRC,
     CODTPRECEITA,
     VALORITEMDOC,
     CODCONTACTB, --5
     CODCUSTO,
     NROPLANO,
     OBSITEMDOCTOCRC,
     CODCUSTOFIN,
     CODGRPRATEIO --10
     )
  VALUES
    (VAR_CODDOCTOCRC,
     1,
     PAR_CODTPRECEITA,
     PAR_VLNOTA,
     VAR_CODCONTACTB,
     NULL,
     VAR_NRPLANO,
     NULL,
     PAR_CODCUSTO,
     NULL);
/*
  INSERT INTO CRCDOCTO_HISTORICO_NEGOCIACOES
    (CODDOCTOCRC,
     VENCIMENTOCRC,
     RECEBIMENTOCRC,
     STATUSDOCTOCRC,
     USUARIO, --5
     DATA_EVENTO,
     COD_TP_EVENTO,
     MAIS_INFORMACOES,
     SEQUENCIA_EVENTO,
     DESCONTOCRC, --10
     ACRESCIMOCRC,
     VLRINSSCRC,
     VLRIRRFCRC,
     VLRPISCRC,
     VLRCOFINSCRC, --15
     VLRCSLCRC,
     VLRISSCRC,
     DESCFINANCEIROCRC,
     VALOR_ADTO,
     VALOR_DEVOL, --20
     VLR_BRUTO,
     ATUALIZA --22
     )
  VALUES
    (VAR_CODDOCTOCRC,
     VAR_VENCTO,
     NULL,
     'N',
     PAR_USUARIO, --5
     SYSDATE,
     1,
     'DOCUMENTO CRIADO.',
     1,
     0, --10
     0,
     0,
     0,
     0,
     0, --15
     0,
     0,
     0,
     0,
     0, --20
     PAR_VLNOTA,
     'N');*/

  --UPDATE ESFISS
  --   SET CODLANCA = VAR_CODLANCA, CODDOCTOCRC = VAR_CODDOCTOCRC
  -- WHERE CODISSINT = VAR_CODISSINT;

  -- UPDATE CRCDOCTO
  --    SET CODLANCA = VAR_CODLANCA
  --  WHERE CODDOCTOCRC = VAR_CODDOCTOCRC;

  COMMIT;

  --END IF;

  --INSERT NA TABELA DA INTRANET
  BEGIN
    SELECT NVL(MAX(ID_IMPORT_CTE) + 1, 1)
      INTO VAR_NRIMPORT
      FROM TB_JUN_INT_IMPORT_CTE;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_NRIMPORT := 1;
  END;

  INSERT INTO TB_JUN_INT_IMPORT_CTE
    (ID_IMPORT_CTE,
     ID_USER,
     NUM_CTE,
     CODFILIAL,
     DATA_IMPORTACAO,
     CODLANCA,
     CODDOCGTOESF,
     CODDOCCRC,
     CODINTNF)
  VALUES
    (VAR_NRIMPORT,
     PAR_IDUSUARIO,
     PAR_NUMNF,
     PAR_FILIAL,
     SYSDATE, --5
     VAR_CODLANCA,
     VAR_CODDOCTOESF,
     VAR_CODDOCTOCRC,
     VAR_CODINTNF);


  SELECT SQCTR_LOG.NEXTVAL INTO VAR_CODLOG FROM DUAL;

  INSERT INTO CTR_LOG
    (CODIGOLOG,
     SISTEMA,
     USUARIO,
     DATALOG,
     HORALOG,
     TEXTOLOG,
     CHECKSUMLOG,
     USUARIOSAC,
     OS_USER,
     TERMINAL,
     IP_ADRESS)
  VALUES
    (VAR_CODLOG,
     VAR_SISTEMA,
     PAR_USUARIO,
     VAR_EMISSAO,
     SYSDATE, --5
     'INTRANET - IMPORTACAO DE CTE',
     NULL,
     NULL,
     SYS_CONTEXT('USERENV', 'OS_USER'),
     SYS_CONTEXT('USERENV', 'TERMINAL'),
     SYS_CONTEXT('USERENV', 'IP_ADDRESS')
     );

  
  COMMIT;  
  
   
 BEGIN
   SELECT UF.CODIGOUF
     INTO VAR_UFICMS
     FROM DVS_MUNICIPIO UF
    WHERE UF.CODIGOMUNICFEDERAL = PAR_MUNICINI;
 EXCEPTION 
   WHEN OTHERS THEN
     VAR_UFICMS := '';
 END;


BEGIN
  SELECT F.CODFORN, FR.CODTPDESPESA, TC.CODCONTACTB
    INTO VAR_CODFORN, VAR_CODTPDESPESA, VAR_CONTACTBDESP
    FROM TB_JUN_ICMS_FORN F
   INNER JOIN BGM_FORNECEDOR FR
      ON FR.CODIGOFORN = F.CODFORN
   INNER JOIN CPGTPDES TD
      ON TD.CODTPDESPESA = FR.CODTPDESPESA
   INNER JOIN CPGTPDES_CTBCONTA TC
      ON TC.CODTPDESPESA = TD.CODTPDESPESA
     AND TC.NROPLANO = VAR_NRPLANO
   WHERE F.UF = VAR_UFICMS AND F.UF <> 'MG';
   
EXCEPTION
  WHEN OTHERS THEN
    VAR_CODFORN      := '';
    VAR_CODTPDESPESA := '';
    VAR_CONTACTBDESP := 0;
END;

IF VAR_CODFORN <> '' OR VAR_CONTACTBDESP <> 0 THEN
  
  IF VAR_EXISTE <> 1 THEN

  BEGIN
    SELECT SQCPGDOCTO.NEXTVAL INTO VAR_CODDOCTOCPG FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      VAR_CODDOCTOCPG := 0;
  END;
  
  VAR_DESC := PAR_VLICMS * 0.2;
  VAR_DESCONTO := PAR_VLICMS - VAR_DESC;
          
INSERT INTO CPGDOCTO
  (CODDOCTOCPG,
   SISTEMA,
   CODIGOFL,
   CODINDIC,
   CODIGOEMPRESA,
   USUARIO,
   CODTPDOC,
   CODIGOFORN,
   NRODOCTOCPG,
   CODMOVTOBCO,
   NROPARCELACPG,
   EMISSAOCPG,
   ENTRADACPG,
   VENCIMENTOCPG,
   PAGAMENTOCPG,
   DESCONTOCPG,
   ACRESCIMOCPG,
   TIPODOCPAGTOCPG,
   OBSDOCTOCPG,
   QUITADODOCTOCPG,
   STATUSDOCTOCPG,
   FAVORECIDODOCTOCPG,
   VLRINSSCPG,
   VLRIRRFCPG,
   TIPOPAGTOCPG,
   VENCPRORROGCPG,   
   SERIEDOCTOCPG,   
   PAGAMENTOLIBERADO,
   CODLANCA,
   CODIFICACAOFLP,
   VLRPISCPG,
   VLRCOFINSCPG,
   VLRCSLCPG,
   VLRISSCPG,   
   DOCTODEDEVOL,  
   VLRSESTSENATCPG,
   CODLANCA_PG,
   PIS_COFINS_CSL_RETIDO,
   DIVIDA_ETIQUETA_GUIA,
   PARC_NOTIFICACAO_GUIA,
   MODULO_INCLUSAO,
   CONTABIL_MATSERV_MESANT,
   IMPOSTO_TRIMESTRAL,
   USUARIO_LIBEROU_PAGTO,
   USUARIO_INCLUSAO,
   DATA_INCLUSAO,
   OBS_DARF,
   AUTELETRONICA,
   CODMOVTOBCO_ESTORNO,
   PAGTO_ANTECIPADO,
   CODIGOFL_ORIGEM,
   DATA_REFERENCIA,
   VLR_ORIGINAL,
   IPVA_DPVAT,
   RENAVAM,
   PLACA_VEICULO,
   ANOBASE,
   CODIGOUF,
   CODIGOMUNIC,
   OPCAO_PAGTO,
   CODIGOFL_DOCTO,
   NOMECONTRIBUINTE,
   DIG_LACRE_FGTS,
   INFOADICIONALVALOR,
   TIPO_CHAVE_PIX_FAV,
   IMPOSTO_FGTS,
   VLR_OUTRA_ENTIDADE_GUIA)
VALUES
  (VAR_CODDOCTOCPG,
   'CPG',
   PAR_FILIAL,
   NULL,
   VAR_CODEMP,
   PAR_USUARIO,
   'DRE',
   VAR_CODFORN,
   LPAD(PAR_NUMNF, 10, '0'),
   NULL,
   1,
   VAR_EMISSAO,
   VAR_EMISSAO,
   VAR_EMISSAO,
   NULL,
   0.00,
   0.00,
   NULL,
   'ICMS CTE ' || LTRIM(PAR_NUMNF,0) || ' UF: ' || VAR_UFICMS,
   'N',
   'N',
   NULL,
   0.00,
   0.00,
   NULL,
   VAR_EMISSAO,
   PAR_SERIE,
   'N',
   NULL,
   NULL,
   0.00,
   0.00,
   0.00,
   0.00,
   'N',
   0.00,
   NULL,
   0,
   0,
   0,
   'CPG',
   'N',
   'N',
   NULL,
   PAR_USUARIO,
   SYSDATE,
   NULL,
   NULL,
   NULL,
   NULL,
   PAR_FILIAL,
   VAR_EMISSAO,
   VAR_DESCONTO,
   0,
   NULL,
   NULL,
   0,
   VAR_UFICMS,
   0,
   0,
   PAR_FILIAL,
   'XXXXXXX',
   0,
   0.00,
   -1,
   0.00,
   0.00);
   
   
insert into cpgitdoc
  (coditemdoccpg,
   coddoctocpg,
   nroplano,
   codtpdespesa,
   codcusto,
   valoritemdoc,
   obsitemdoctocpg,
   codcontactb,
   codcustofin,
   codgrprateio,
   itemrateado,
   codnatprest)
values
  (1,
   VAR_CODDOCTOCPG,
   VAR_NRPLANO,
   VAR_CODTPDESPESA,
   null,
   VAR_DESCONTO,
   null,
   VAR_CONTACTBDESP,
   PAR_CODCUSTO,
   NULL,
   'N',
   NULL);

   
   UPDATE TB_JUN_INT_IMPORT_CTE
      SET CODDOCTOCPG = VAR_CODDOCTOCPG ,
          OBSERVACAOCPG = 'ICMS CTE ' || LTRIM(PAR_NUMNF,0) || ' UF: ' || VAR_UFICMS     
    WHERE ID_IMPORT_CTE = VAR_NRIMPORT;
   
     
  ELSE  
  
  UPDATE TB_JUN_INT_IMPORT_CTE
     SET OBSERVACAOCPG = 'CTE' || LTRIM(PAR_NUMNF,0) || ' FORN. INEXISTENTE / CONTA CONTABIL não ASSOCIADA A DESPESA / UF MG'
   WHERE ID_IMPORT_CTE = VAR_NRIMPORT;
   
   COMMIT;
  END IF;
  
 
END IF;

COMMIT;

END;


Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Acredito que você possa usar o sql%rowcount após as instruções SQL
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes