<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Remessa de Pagamento e&#x2F;ou Arquivo Retorno]]></title><description><![CDATA[<p dir="auto">Pessoal, tudo bem?</p>
<p dir="auto">Alguem ja criou e poderia compartilhar um modelo de remessa de pagamento (CNAB 240)? Se for Bradesco melhor ainda...obrigado!</p>
]]></description><link>https://forum.softwell.com.br/topic/32032/remessa-de-pagamento-e-ou-arquivo-retorno</link><generator>RSS for Node</generator><lastBuildDate>Fri, 12 Jun 2026 14:15:35 GMT</lastBuildDate><atom:link href="https://forum.softwell.com.br/topic/32032.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Mar 2023 18:37:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Remessa de Pagamento e&#x2F;ou Arquivo Retorno on Fri, 24 Mar 2023 20:34:11 GMT]]></title><description><![CDATA[<p dir="auto">Ah, blz. Entendi errado.. eu faço tudo via sql, depois só um loop na consulta e escrevo o arquivo. Tem muito a ver com o meu banco isso aí, mas se vc seguir a estrutura, campo a campo, deve sair tb```<br />
code_text</p>
<pre><code class="language-:">
/*CABEÇALHO DO ARQUIVO*/
SELECT 
1 AS ORDEM, 1 as SEQUENCIA,1 as detalhe,
'237'   ---01.0
||'0000' ---02.0
||'0' ---03.0
||rpad(cast('' as varchar),9,' ')  ---04.0
||'2'---05.0
||ENT_CNPJ---06.0
||rpad(cast(FIN_CONTA_CORRENTE.CCO_CODIGO_CONVENIO as varchar),20,' ') ---07.0
|| lpad(cast(CCO_AGENCIA as varchar),5,'0') ---08.0
||SUBSTR(CCO_DIGITO_AGENCIA,1,1)---09.0
||lpad(cast(CCO_NUMERO as varchar),12,'0') ---10.0
||CCO_DIGITO_CONTA ---11.0
||' '---12.0
||SUBSTR(ENT_NOME,1,30)---13.0
||rpad(cast('BANCO BRADESCO S.A' as char(30)),30,' ') ---14.0
||rpad(cast('' as varchar),10,' ') ---15.0
||'1' ---16.0
||to_char(current_date,'ddMMyyyy')---17.0
||to_char(now(),'HH24MISS')---18.0
||Lpad(cast(':NSA_ARQUIVO' as varchar),6,'0')  ---19.0
||'089'---20.0
||'01600'---21.0
||rpad(cast('' as varchar),20,' ') ---22.0
||rpad(cast('' as varchar),20,' ') ---23.0
||rpad(cast('' as varchar),29,' ') ---24.0
AS EXPORTACAO
FROM GER_ENTIDADE
INNER JOIN FIN_CONTA_CORRENTE ON FIN_CONTA_CORRENTE.CCO_ID = GER_ENTIDADE.CCO_ID

UNION ALL
/*CABEÇALHO LOTE*/
SELECT 
2,  1 as SEQUENCIA,1 as detalhe,
'237'   ---1.01
||'0001' --1.02
||'1'--1.03
||'C'--1.04
||'20'--1.05
||'01'--1.06
||'045'--1.07
||' '--1.08
||'2'--1.09
||ENT_CNPJ--1.10
||rpad(cast(FIN_CONTA_CORRENTE.CCO_CODIGO_CONVENIO as varchar),20,' ') --1.11
||lpad(cast(CCO_AGENCIA as varchar),5,'0') --1.12
||SUBSTR(CCO_DIGITO_AGENCIA,1,1)--1.13
||lpad(cast(CCO_NUMERO as varchar),12,'0') ---1.14
||CCO_DIGITO_CONTA ---1.15
||' ' ---1.16
||SUBSTR(ENT_NOME,1,30)---1.17
||rpad(cast('' as varchar),40,' ') ---1.18
||lpad(cast(ENT_END as varchar),30,' ') ---1.19
||lpad(cast(ENT_numero as varchar),5,'0') ---1.20
||lpad(cast(ent_compl as varchar),15,' ') ---1.21
||rpad(cast(ENT_MUNICIPIO as varchar),20,' ') ---1.22
||SUBSTR(ENT_CEP,1,5)---1.23
||SUBSTR(ENT_CEP,6,3)---1.24
||ENT_UF---1.25
||'01'---1.36
||rpad(cast('' as varchar),6,' ')--1.27
||rpad(cast('' as varchar),10,' ')--1.28
FROM GER_ENTIDADE
INNER JOIN FIN_CONTA_CORRENTE ON FIN_CONTA_CORRENTE.CCO_ID = GER_ENTIDADE.CCO_ID

UNION ALL
/*REGISTRO DETALHE SEGMENTO A*/
SELECT
2, ROW_NUMBER () OVER (ORDER BY vw_fin_relacao_pagamentos.codigo,tipo) as ordem,1 as detalhe,
COALESCE(b1.ban_numero,'')   ---A.01
||'0001' ---A.02 --incrementar 1 a cada vez que gerar o arquivo.
||'3' ---A.03
|| ':CONTADOR'---A.04
||'A' ---A.05
||'0' --A.06
||'00' --A.07
||'000' --A.08     
||'237'  --A.09 (Verificar se rá mudar as contas dos favorecidos)
||lpad(cast(coalesce(fec_pensionista.cpn_age_numero, fec_cartorio.car_ag_bradesco) as varchar),5,'0') ---A.10
||rpad(cast(car_digito_ag_bradesco as varchar),1,' ')--A.11 
||lpad(cast(coalesce(cast(fec_pensionista.cpn_num_conta as varchar), fec_cartorio.car_cc_bradesco) as varchar),12,'0') ---A.12  
||rpad(cast(coalesce(fec_pensionista.cpn_digito, CAR_DIGITO_bradesco) as varchar),1,' ')--A.13  
||rpad(cast('' as varchar),1,' ')--A.14  
||rpad(cast(coalesce(frh_funcionario.fun_nome, FEC_CARTORIO.CAR_DELEGATARIO) as varchar),30,' ') ---A.15
||lpad(cast(coalesce(gratuito.mov_id,isento.mov_id,renda_minima.mov_id,avulso.mov_id)   as varchar),20,'0') ---A.16  -- incrementar 1 para cada linha do arquivo. é o código do item do lote de faturamento. 
||to_char(COALESCE(gratuito.ltm_data_credito,isento.ltm_data_credito,renda_minima.ltm_data_credito,avulso.ltm_data_credito),'ddMMyyyy')---A.17  
||'BRL'--A.18
||'0000000000'--A.19
||lpad(coalesce(replace(cast(fin_movimentacao.mov_valor_liquido as varchar),'.',''),''),20,'0')--A.20 layout diz 13 posicoes. Mas so bate com 20.
||rpad(cast('' as varchar),20,' ')--A.21
||'00000000' --A.22
||'000000000000000' --A.23   layout diz 13 posicoes. Mas so bate com 15.
||rpad(cast('' as varchar),40,' ')--A.24
||'01' --A.25  (Código Finalidade Doc)
||rpad(cast('' as varchar),5,' ')--A.26 (Código Finalidade TED)
||'CC'--A.27
||rpad(cast('' as varchar),3,' ')--A.28
||'0' --A.29
||rpad(cast('' as varchar),10,' ')--A.30
FROM vw_fin_relacao_pagamentos
  Inner Join vw_status_solicitacao On vw_status_solicitacao.codigo = vw_fin_relacao_pagamentos.status
  Inner Join fec_cartorio On fec_cartorio.car_id = vw_fin_relacao_pagamentos.car_id
  Inner Join fec_comarca_e_distritos On fec_comarca_e_distritos.com_id = fec_cartorio.com_id
  Inner Join fec_distrito On fec_distrito.dis_id = fec_cartorio.dis_id
  Left Join fin_lote_movimentacao gratuito on gratuito.atg_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'G'
  Left Join fin_lote_movimentacao isento on isento.ati_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'I'
  Left Join fin_lote_movimentacao renda_minima on renda_minima.srm_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'R'
  Left Join fin_lote_movimentacao avulso On (avulso.fla_id = vw_fin_relacao_pagamentos.codigo) And (vw_fin_relacao_pagamentos.tipo = 'A')
  Inner Join fin_lote on fin_lote.lot_id  = gratuito.lot_id or  fin_lote.lot_id  = isento.lot_id or fin_lote.lot_id  = renda_minima.lot_id Or(fin_lote.lot_id = avulso.lot_id)
  Inner Join fin_movimentacao On fin_movimentacao.mov_id = coalesce(gratuito.mov_id,isento.mov_id,renda_minima.mov_id,avulso.mov_id)
  inner Join frh_funcionario CARTORIO on cartorio.car_id = FEC_CARTORIO.CAR_ID 
  Left Join frh_funcionario on fin_movimentacao.fun_id = frh_funcionario.fun_id and frh_funcionario.car_id is null
  Left Join fec_pensionista on fec_pensionista.fun_id_pensionista = fin_movimentacao.fun_id and fec_pensionista.fun_id_funcionario = cartorio.fun_id
  Left Join fin_banco b on b.ban_id = fec_pensionista.ban_id
  Left Join ger_municipio m on m.mun_id = fec_pensionista.mun_id,
  (SELECT DISTINCT b.ban_numero FROM fin_banco b WHERE b.ban_numero = '237' and b.ban_ativo = 'A')b1
WHERE fec_pensionista.fun_id_pensionista is null
  and (b.ban_numero = '237' or b.ban_numero is null)
  and fin_lote.lot_id =  :LOTE
  
UNION ALL
/*REGISTRO DETALHE SEGEMENTO B*/
SELECT
2,  ROW_NUMBER () OVER (ORDER BY vw_fin_relacao_pagamentos.codigo,tipo) as ordem,2 as detalhe,
b1.ban_numero   ---B.01
||'0001' ---B.02 --incrementar 1 a cada vez que gerar o arquivo.
||'3'   ---B.03
|| ':CONTADOR'--lpad(cast( ROW_NUMBER () OVER (ORDER BY vw_fin_relacao_pagamentos.codigo,tipo) as varchar),5,'0')
||'B' ---B.05
||rpad(cast('' as varchar),3,' ')--B.06
||'2' ---B.07
||case when fec_pensionista.cpn_cpf_representante is null then FEC_CARTORIO.CAR_CNPJ else '000' || fec_pensionista.cpn_cpf_representante end ---B.08
||rpad(cast(COALESCE(coalesce(fec_pensionista.cpn_endereco,FEC_CARTORIO.CAR_ENDERECO),'') as varchar),30,' ') ---B.09
||lpad(COALESCE(cast(coalesce(fec_pensionista.cpn_numero,FEC_CARTORIO.CAR_NUMERO) as varchar),''),5,'0') ---B.10
||Rpad(cast(COALESCE(coalesce(fec_pensionista.cpn_complemento,FEC_CARTORIO.CAR_COMPLEMENTO),'') as varchar),15,' ') ---B.11
||Rpad(cast(COALESCE(coalesce(fec_pensionista.cpn_bairro,FEC_CARTORIO.CAR_BAIRRO),'') as varchar),15,' ') ---B.12
||Rpad(cast(COALESCE(coalesce(m.mun_nome,FEC_CARTORIO.CAR_MUNICIPIO),'') as varchar),20,' ') ---B.13
||SUBSTR(coalesce(cpn_CEP,ENT_CEP),1,5)---B.14
||SUBSTR(coalesce(cpn_CEP,ENT_CEP),6,3)---B.15
||RPAD(COALESCE(coalesce(fec_pensionista.cpn_UF,FEC_CARTORIO.CAR_UF),''),2,' ')---B.16
||to_char(COALESCE(gratuito.ltm_data_credito,isento.ltm_data_credito,renda_minima.ltm_data_credito,avulso.ltm_data_credito),'ddMMyyyy')---B.17  
||lpad(coalesce(replace(cast(CASE vw_fin_relacao_pagamentos.tipo 
                             WHEN 'G' THEN gratuito.ltm_valor
                             WHEN 'I' THEN isento.ltm_valor
                             WHEN 'R' THEN renda_minima.ltm_valor
                             WHEN 'A' THEN avulso.ltm_valor END as varchar),'.',''),''),15,'0')---B.18 
||'000000000000000'---B.19
||'000000000000000'---B.20 
||'000000000000000'---B.21 
||'000000000000000'---B.22
||rpad(cast('' as varchar),15,' ')--B.23
||'0' --B.24
||rpad(cast('' as varchar),6,' ')--B.25
||rpad(cast('' as varchar),8,' ')--B.26
FROM GER_ENTIDADE,
  vw_fin_relacao_pagamentos
  Inner Join vw_status_solicitacao On vw_status_solicitacao.codigo = vw_fin_relacao_pagamentos.status
  Inner Join fec_cartorio On fec_cartorio.car_id = vw_fin_relacao_pagamentos.car_id
  Inner Join fec_comarca_e_distritos On fec_comarca_e_distritos.com_id = fec_cartorio.com_id
  Inner Join fec_distrito On fec_distrito.dis_id = fec_cartorio.dis_id
  Left join fin_lote_movimentacao gratuito on gratuito.atg_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'G'
  Left join fin_lote_movimentacao isento on isento.ati_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'I'
  Left join fin_lote_movimentacao renda_minima on renda_minima.srm_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'R'
  Left Join fin_lote_movimentacao avulso On (avulso.fla_id = vw_fin_relacao_pagamentos.codigo) And (vw_fin_relacao_pagamentos.tipo = 'A')
  Inner join fin_lote on fin_lote.lot_id  = gratuito.lot_id or  fin_lote.lot_id  = isento.lot_id or fin_lote.lot_id  = renda_minima.lot_id Or(fin_lote.lot_id = avulso.lot_id)
  Inner Join fin_movimentacao On fin_movimentacao.mov_id = coalesce(gratuito.mov_id,isento.mov_id,renda_minima.mov_id,avulso.mov_id)
  Inner join frh_funcionario CARTORIO on cartorio.car_id = FEC_CARTORIO.CAR_ID 
  Left join frh_funcionario on fin_movimentacao.fun_id = frh_funcionario.fun_id and frh_funcionario.car_id is null
  Left join fec_pensionista on fec_pensionista.fun_id_pensionista = fin_movimentacao.fun_id and fec_pensionista.fun_id_funcionario = cartorio.fun_id
  Left join fin_banco b on b.ban_id = fec_pensionista.ban_id
  Left join ger_municipio m on m.mun_id = fec_pensionista.mun_id,
  (SELECT DISTINCT b.ban_numero FROM fin_banco b WHERE b.ban_numero = '237' and b.ban_ativo = 'A')b1
WHERE fec_pensionista.fun_id_pensionista is null
  and (b.ban_numero = '237' or b.ban_numero is null)
  and fin_lote.lot_id = :LOTE

UNION ALL
/*TRAILER DO LOTE*/
SELECT 
3, 1 as SEQUENCIA,1 as detalhe,
b1.ban_numero   ---5.01
||'0001' ---5.02 --incrementar 1 a cada vez que gerar o arquivo.
||'5' ---5.03
||rpad(cast('' as varchar),9,' ')--5.04
|| ':REGISTROS_LOTE' --pad(cast(count(1) as varchar),6,'0')--5.04 ---5.05  --incrementar 1 a cada item do lote. 
||lpad(coalesce(replace(cast(SUM(fin_movimentacao.mov_valor_liquido) as varchar),'.',''),''),18,'0')--5.06  
||rpad(cast('' as varchar),18,'0')--5.07
||rpad(cast('' as varchar),6,'0')--5.08
||rpad(cast('' as varchar),165,' ')--5.09
||rpad(cast('' as varchar),10,' ')--5.10
FROM vw_fin_relacao_pagamentos
  Inner Join vw_status_solicitacao On vw_status_solicitacao.codigo = vw_fin_relacao_pagamentos.status
  Inner Join fec_cartorio On fec_cartorio.car_id = vw_fin_relacao_pagamentos.car_id
  Inner Join fec_comarca_e_distritos On fec_comarca_e_distritos.com_id = fec_cartorio.com_id
  Inner Join fec_distrito On fec_distrito.dis_id = fec_cartorio.dis_id
  Left join fin_lote_movimentacao gratuito on gratuito.atg_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'G'
  Left join fin_lote_movimentacao isento on isento.ati_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'I'
  Left join fin_lote_movimentacao renda_minima on renda_minima.srm_id = vw_fin_relacao_pagamentos.codigo and vw_fin_relacao_pagamentos.tipo = 'R'
  Left Join fin_lote_movimentacao avulso On (avulso.fla_id = vw_fin_relacao_pagamentos.codigo) And (vw_fin_relacao_pagamentos.tipo = 'A')
  Inner Join   fin_movimentacao On fin_movimentacao.mov_id = coalesce(gratuito.mov_id,isento.mov_id,renda_minima.mov_id,avulso.mov_id)
  Inner join fin_lote on fin_lote.lot_id  = gratuito.lot_id or  fin_lote.lot_id  = isento.lot_id or fin_lote.lot_id  = renda_minima.lot_id Or(fin_lote.lot_id = avulso.lot_id)
  Inner join frh_funcionario on fin_movimentacao.fun_id = frh_funcionario.fun_id and frh_funcionario.car_id = fec_cartorio.car_id,
  (SELECT DISTINCT b.ban_numero FROM fin_banco b WHERE b.ban_numero = '237' and b.ban_ativo = 'A')b1
WHERE fin_lote.lot_id = :LOTE
GROUP BY b1.ban_numero

UNION ALL
/*TRAILER DO ARQUIVO*/
SELECT DISTINCT
4, 1 as SEQUENCIA,1 as detalhe,
ban_numero   ---9.01
||'9999'  ---9.02
||'9' ---9.03
||rpad(cast('' as varchar),9,' ')--9.04
||'000001' --9.05
||':TOTAL' --9.06 
||'000000' --9.07
||rpad(cast('' as varchar),205,' ')--9.04
 FROM fin_banco 
 WHERE ban_numero = '237'
order by 1,2,3</code></pre>
]]></description><link>https://forum.softwell.com.br/post/42909</link><guid isPermaLink="true">https://forum.softwell.com.br/post/42909</guid><dc:creator><![CDATA[andersonleal]]></dc:creator><pubDate>Fri, 24 Mar 2023 20:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Remessa de Pagamento e&#x2F;ou Arquivo Retorno on Fri, 24 Mar 2023 16:59:30 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andersonleal">@<bdi>andersonleal</bdi></a> Obrigado pelo arquivo! Na verdade o interesse seria num fluxo que trouxesse e resultasse nesse arquivo.</p>
<p dir="auto">Obrigado!</p>
]]></description><link>https://forum.softwell.com.br/post/42908</link><guid isPermaLink="true">https://forum.softwell.com.br/post/42908</guid><dc:creator><![CDATA[ttsales]]></dc:creator><pubDate>Fri, 24 Mar 2023 16:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to Remessa de Pagamento e&#x2F;ou Arquivo Retorno on Thu, 23 Mar 2023 20:48:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ttsales">@<bdi>ttsales</bdi></a> <a href="https://drive.google.com/file/d/1nSMN6wp8VB4kBX9wtFPou9AuQd2GtxWk/view?usp=sharing" rel="nofollow ugc">https://drive.google.com/file/d/1nSMN6wp8VB4kBX9wtFPou9AuQd2GtxWk/view?usp=sharing</a></p>
]]></description><link>https://forum.softwell.com.br/post/42907</link><guid isPermaLink="true">https://forum.softwell.com.br/post/42907</guid><dc:creator><![CDATA[andersonleal]]></dc:creator><pubDate>Thu, 23 Mar 2023 20:48:45 GMT</pubDate></item></channel></rss>