Skip to content
  • Categorias
  • Recente
  • Tags
  • Popular
Collapse
Brand Logo

  1. Fórum Maker
  2. Categorias
  3. Maker
  4. Remessa de Pagamento e/ou Arquivo Retorno

Remessa de Pagamento e/ou Arquivo Retorno

Agendado Fixado Trancado Movido Maker
4 Posts 2 Posters 484 Visualizações 1 Watching
  • Mais Antigo para Mais Recente
  • Mais Recente para Mais Antigo
  • Mais Votados
Responder
  • Responder como tópico
Entre para responder
Este tópico foi deletado. Apenas usuários com privilégios de moderação de tópico podem vê-lo.
  • T Offline
    T Offline
    ttsales
    escreveu em última edição por
    #1

    Pessoal, tudo bem?

    Alguem ja criou e poderia compartilhar um modelo de remessa de pagamento (CNAB 240)? Se for Bradesco melhor ainda...obrigado!

    andersonlealA 1 Resposta Última resposta
    0
    • T ttsales

      Pessoal, tudo bem?

      Alguem ja criou e poderia compartilhar um modelo de remessa de pagamento (CNAB 240)? Se for Bradesco melhor ainda...obrigado!

      andersonlealA Offline
      andersonlealA Offline
      andersonleal
      escreveu em última edição por
      #2

      @ttsales https://drive.google.com/file/d/1nSMN6wp8VB4kBX9wtFPou9AuQd2GtxWk/view?usp=sharing

      T 1 Resposta Última resposta
      2
      • andersonlealA andersonleal

        @ttsales https://drive.google.com/file/d/1nSMN6wp8VB4kBX9wtFPou9AuQd2GtxWk/view?usp=sharing

        T Offline
        T Offline
        ttsales
        escreveu em última edição por
        #3

        @andersonleal Obrigado pelo arquivo! Na verdade o interesse seria num fluxo que trouxesse e resultasse nesse arquivo.

        Obrigado!

        1 Resposta Última resposta
        0
        • andersonlealA Offline
          andersonlealA Offline
          andersonleal
          escreveu em última edição por
          #4

          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```
          code_text

          
          /*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
          1 Resposta Última resposta
          1
          Responder
          • Responder como tópico
          Entre para responder
          • Mais Antigo para Mais Recente
          • Mais Recente para Mais Antigo
          • Mais Votados


          • Login

          • Não tem uma conta? Cadastrar

          • Login or register to search.
          • Primeiro post
            Último post
          0
          • Categorias
          • Recente
          • Tags
          • Popular