Untitled
unknown
plain_text
2 years ago
12 kB
5
Indexable
create or replace procedure spBPM_IniciaRecebCentral(pnCodFlowCentral in number, psSimulation in varchar2, psCodUsuario in varchar2, pnNroempresa in max_empresa.nroempresa%type) as vsToken varchar2(500); xmlValues varchar2(2000); vsNroProcesso varchar2(15); begin vsToken := pkg_bpm_orquestra.fGeraToken(psCodUsuario); if (vsToken is not null) then --Identificar as novas notas fiscais a serem recebidas for y in (select * from (select distinct nf.SEQNOTAFISCAL, nf.nroempresa, nf.NUMERONF, nf.SERIENF, lpad(nf.nrocgccpf, 12, '0') || lpad(nf.digcgccpf, 2, '0') nrocgccpf, emp.nroempresa||'-'||initcap(emp.nomereduzido) nomeempresa, regexp_replace(initcap(nvl(substr(nf.natoperacao, 1, instr(nf.natoperacao, ' ') - 1), nf.natoperacao)), '[]~!@#$%^&*()_+=\{}[:¿;¿<,>./?]+', '') natoperacao, regexp_replace(initcap(p.nomerazao), '[]~!@#$%^&*()_+=\{}[:¿;¿<,>./?]+', '') || '-' || p.seqpessoa fornecedor, rank() over(partition by lpad(p.nrocgccpf, 12, '0') || lpad(p.digcgccpf, 2, '0') order by p.seqpessoa) r_id, to_char(nf.DTAEMISSAOC5, 'dd/mm/yy') dtaemissao from mrlv_nfeimportacao nf, ge_empresa emp, ge_pessoa p where nf.nroempresa = emp.nroempresa and nf.seqpessoa = p.seqpessoa and p.fisicajuridica = 'J' and nf.DTAEMISSAOC5 between trunc(sysdate) - 10 and trunc(sysdate) and nf.nroempresa = pnNroempresa and nf.nroprocessobpm = 0 and not exists (select 1 from maf_fornecedor yy where yy.seqfornecedor = p.seqpessoa and yy.indgerativautobpmrectocentr = 'N') and not exists (select x.seqnotafiscal from mlf_auxnotafiscal x, ge_pessoa xx where x.seqpessoa = xx.seqpessoa and x.numeronf = nf.numeronf and lpad(xx.nrocgccpf, 12, '0') || lpad(xx.digcgccpf, 2, '0') = lpad(nf.nrocgccpf, 12, '0') || lpad(nf.digcgccpf, 2, '0') and lpad(trim(x.serienf), 3, '0') = lpad(nf.serienf, 3, '0') and x.nroempresa = nf.nroempresa and x.tipnotafiscal = 'E' and x.indprocessamento in ('G', 'L') and nvl(to_char(x.dtaemissao, 'dd/mm/yyyy'), nf.dtaemissao) = nf.dtaemissao and nvl(x.nfechaveacesso, nvl(x.nfechaveacessocopia, nf.chaveacesso)) = nf.chaveacesso) and not exists (select 1 from tmp_m014_item it where it.m000_id_nf = nf.SEQNOTAFISCAL and it.m014_cd_cfop in (select column_value from table(cast(c5_complexin.c5intable((select a.valor from max_parametro a where a.parametro = 'CFOP_EXCECAO_RECEB' and a.grupo = 'BPM')) as c5instrtable)))) and not exists((select y.seqnotafiscal from mlf_notafiscal y, ge_pessoa yyy where y.numeronf = nf.numeronf and y.seqpessoa = yyy.seqpessoa and lpad(yyy.nrocgccpf, 12, '0') || lpad(yyy.digcgccpf, 2, '0') = lpad(nf.nrocgccpf, 12, '0') || lpad(nf.digcgccpf, 2, '0') and lpad(trim(y.serienf), 3, '0') = lpad(to_char(nf.serienf), 3, '0') and y.nroempresa = nf.nroempresa and y.tipnotafiscal = 'E' and to_char(y.dtaemissao, 'dd/mm/yyyy') = nf.dtaemissao and nvl(y.nfechaveacesso, 0) = nf.chaveacesso union select yy.seqnotafiscal from mlf_notafiscal yy, max_codgeraloper pp, ge_pessoa z where yy.nfreferencianro = nf.numeronf and yy.nfreferenciaserie = nf.serienf and yy.seqpessoa = z.seqpessoa and lpad(z.nrocgccpf, 12, '0') || lpad(z.digcgccpf, 2, '0') = lpad(nf.nrocgccpf, 12, '0') || lpad(nf.digcgccpf, 2, '0') and yy.nroempresa = nf.nroempresa and yy.tipnotafiscal = 'E' and to_char(yy.nfreferenciadtaemissao, 'dd/mm/yyyy') = nf.dtaemissao and nvl(yy.nfereferenciachave, 0) = nf.chaveacesso and pp.codgeraloper = yy.codgeraloper and pp.tipuso = 'E' and pp.indnfrefprodrural = 'S'))) where r_id = 1) loop --Chamada do Webservice para criar um novo processo de recebimento por nota fiscal xmlValues := '<![CDATA[<form>'; xmlValues := xmlValues || '<nroempresa>' || y.nroempresa || '</nroempresa>'; xmlValues := xmlValues || '<cnpj>' || y.nrocgccpf || '</cnpj>'; xmlValues := xmlValues || '<numeronf>' || y.NUMERONF || '</numeronf>'; xmlValues := xmlValues || '<serie>' || y.SERIENF || '</serie>'; xmlValues := xmlValues || '<observacao></observacao>'; xmlValues := xmlValues || '<quantidadeDeNotas>0</quantidadeDeNotas>'; xmlValues := xmlValues || '<codigodoprocessopai>0</codigodoprocessopai>'; xmlValues := xmlValues || '<situacaonf></situacaonf>'; xmlValues := xmlValues || '<seqnotafiscal></seqnotafiscal>'; xmlValues := xmlValues || '<seqauxnotafiscal></seqauxnotafiscal>'; xmlValues := xmlValues || '<incnfe></incnfe>'; xmlValues := xmlValues || '<incnf></incnf>'; xmlValues := xmlValues || '<origemnfe>N</origemnfe>'; xmlValues := xmlValues || '<origemnf>N</origemnf>'; xmlValues := xmlValues || '<notaliberada></notaliberada>'; xmlValues := xmlValues || '<codinconsistcad></codinconsistcad>'; xmlValues := xmlValues || '<codinconsistcom></codinconsistcom>'; xmlValues := xmlValues || '<codinconsistfisc></codinconsistfisc>'; xmlValues := xmlValues || '<codinconsistcadpes></codinconsistcadpes>'; xmlValues := xmlValues || '<codinconsistccentral></codinconsistccentral>'; xmlValues := xmlValues || '<retinconsistcad></retinconsistcad>'; xmlValues := xmlValues || '<retinconsistcom></retinconsistcom>'; xmlValues := xmlValues || '<retinconsistfisc></retinconsistfisc>'; xmlValues := xmlValues || '<retinconsistcadpes></retinconsistcadpes>'; xmlValues := xmlValues || '<retinconsistcentral></retinconsistcentral>'; xmlValues := xmlValues || '<codusuarioatividade></codusuarioatividade>'; xmlValues := xmlValues || '<nomeempresa>' || y.nomeempresa || '</nomeempresa>'; xmlValues := xmlValues || '<nomeusuarioatividade></nomeusuarioatividade>'; xmlValues := xmlValues || '<emailusuarioatividade></emailusuarioatividade>'; xmlValues := xmlValues || '<fornecedor>' || y.fornecedor || '</fornecedor>'; xmlValues := xmlValues || '<natoperacao>' || y.natoperacao || '</natoperacao>'; xmlValues := xmlValues || '<decisao>S</decisao>'; xmlValues := xmlValues || '<cancelado></cancelado>'; xmlValues := xmlValues || '<historico></historico>'; xmlValues := xmlValues || '<produtorrural>N</produtorrural>'; xmlValues := xmlValues || '</form>]]>'; pkg_bpm_orquestra.spIniciaProcesso(vsToken, pnCodFlowCentral, psSimulation, xmlValues, psCodUsuario, 'Empresa: ' || y.nroempresa || ' - NroNF: ' || y.NUMERONF || ' - Serie: ' || y.SERIENF || ' - CNPJ: ' || y.nrocgccpf, vsNroProcesso); if (vsNroProcesso is not null) then update TMP_M000_NF a set a.nroprocessobpm = to_number(vsNroProcesso) where a.m000_id_nf = y.seqnotafiscal; end if; end loop; end if; Exception When Others Then pkg_bpm_orquestra.spGravalog(Sqlerrm, psCodUsuario, 'N'); end spBPM_IniciaRecebCentral;
Editor is loading...
Leave a Comment