create or replace procedure esp_popula_rateio is -- Cursor Contas Fixas Cursor rateio_conta_fixa is select t.codconta, t.codccprojetos, t.codpessoa from Contasfixas t where t.codConta not in (select r.doc from rateio_documento r where r.tipo_doc='CF') and t.codccprojetos <> 999999 and t.codempresa = 1; -- Cursor Contas correntes Cursor rateio_cc is select t.codmov, t.codccprojetos from movcontacorrente t where t.codmov not in (select r.doc from rateio_documento r where r.tipo_doc='CC') and t.codccprojetos <> 999999 and t.codempresa = 1; -- Cursor provisório Cursor rateio_prov is select t.codprog, t.codccprojetos, 'FPR' as Sigla from Progcontasrecprov t where t.codprog not in (select r.doc from rateio_documento r where r.tipo_doc='FPR') and t.codccprojetos <> 999999 and t.codempresa = 1 UNION select t.codprog, t.codccprojetos, 'FPP' as Sigla from ProgcontasPagarprov t where t.codprog not in (select r.doc from rateio_documento r where r.tipo_doc='FPP') and t.codccprojetos <> 999999 and t.codempresa = 1; -- Cursor definitivo Cursor rateio_def is select t.codprog, t.codccprojetos, t.codpessoa, nvl(t.numserie,0) as numserie from Progcontaspermanente t where t.codprog not in (select r.doc from rateio_documento r where r.tipo_doc='FD') and t.codccprojetos <> 999999 and t.codempresa = 1; -- Cursor NF Cursor rateio_nf is select t.numnota, t.codccprojetos, t.numserie, t.codpessoa from Nota t where t.numnota not in (select r.doc from rateio_documento r where r.tipo_doc='NF') and t.codccprojetos <> 999999 and t.codempresa = 1; -- Cursor NC Cursor rateio_NC is select t.numnota, t.codccprojetos, t.numserie, t.codpessoa from NotaCompra t where t.numnota not in (select r.doc from rateio_documento r where r.tipo_doc='NC') and t.codccprojetos <> 999999 and t.codempresa = 1; -- Cursor Pedido Cursor rateio_Pedido is select t.numpedido, t.codccprojetos, t.codcliente as CodPessoa from Pedido t where t.numpedido not in (select r.doc from rateio_documento r where r.tipo_doc='P') and t.codccprojetos <> 999999 and t.codempresa = 1; xCodRateio Integer; begin -- Contas Fixas for x in rateio_conta_fixa loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, 'CF', x.codConta, 0, x.codpessoa ); end loop; -- Contas correntes for x in rateio_cc loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, 'CC', x.codmov, 0, 0 ); end loop; --Provisório for x in rateio_prov loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, x.sigla, x.codprog, 0, 0 ); end loop; --Definitivo for x in rateio_def loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, 'FD', x.codprog, x.numserie, x.codpessoa ); end loop; -- NF for x in rateio_NF loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, 'NF', x.numnota, x.numserie, x.codpessoa ); end loop; -- Nota Compra for x in rateio_NC loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, 'NC', x.numnota, x.numserie, x.codpessoa ); end loop; -- Pedido for x in rateio_Pedido loop xCodRateio := f_proximo_codrateio(1); insert into Rateio_Documento ( codseq, codrateio, codempresa, codccprojetos, percentual, tipo_doc, doc, numserie, codpessoa ) values ( seq_rateio_documento.nextval, xCodRateio, 1, x.codccprojetos, 100, 'P', x.numpedido, 0, x.codpessoa ); end loop; end esp_popula_rateio;