Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4286 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá!

Estou tentando homologar a remessa para o Banco do Brasil e não estou conseguindo. Estou tendo dificuldades na configuração do componente ACBRBoleto. Segue abaixo o fonte que uso pra gerar a remessa:

procedure TGerArquivosBanco.btnGerarClick(Sender: TObject);

var

  Titulo: TACBrTitulo;

begin

    case TfrmMsg.Msg('Confirmação', 'Tem certeza que deseja gerar o arquivo de remessa?', imPergunta, [mbSim, mbNao]) of

      1: Abort;

    end;


    try

       cdsContasReceber2.Filtered := True;

       btnGerar.Enabled := False;


       ACBrBoleto.ListadeBoletos.Clear;


       ConfiguraBanco;


       while not cdsContasReceber2.Eof do

        begin

            Titulo := ACBrBoleto.CriarTituloNaLista;


            with Titulo do

            begin

                //LocalPagamento    := 'Pagar preferêncialmente nas agências do Bradesco'; //MEnsagem exigida pelo bradesco

                Vencimento        := cdsContasReceber2DATA_VENCIMENTO.AsDateTime;

                DataDocumento     := cdsContasReceber2DATA_EMISSAO.AsDateTime;

                NumeroDocumento   := cdsContasReceber2DOCUMENTO.AsString;

                EspecieDoc        := '02';


                if cbAceite.EditValue = 'atSim'

                  then Aceite := atSim

                  else Aceite := atNao;


                DataProcessamento := Now;

                NossoNumero       := '0000000000';

                Carteira          := '11/019';

                ValorDocumento    := cdsContasReceber2VALOR_ABERTO.AsCurrency;

                Sacado.NomeSacado := cdsContasReceber2SACADO_NOME.AsString;

                Sacado.CNPJCPF    := cdsContasReceber2SACADO_CNPJCPF.AsString;

                Sacado.Logradouro := cdsContasReceber2SACADO_LOGRADOURO.AsString;

                Sacado.Numero     := cdsContasReceber2SACADO_NUMERO.AsString;

                Sacado.Bairro     := cdsContasReceber2SACADO_BAIRRO.AsString;

                Sacado.Cidade     := cdsContasReceber2SACADO_NOME_MUNICIPIO.AsString;

                Sacado.UF         := cdsContasReceber2SACADO_UF.AsString;

                Sacado.CEP        := cdsContasReceber2SACADO_CEP.AsString;

                //ValorAbatimento   := 10;

                //DataAbatimento    := Vencimento-5;

                Instrucao1        := '00';

                Instrucao2        := '00';


                ACBrBoleto.AdicionarMensagensPadroes(Titulo, Mensagem);

            end;


            cdsContasReceber2.Next;

        end;



       ACBrBoleto.GerarRemessa(1);


       TfrmMsg.Msg('Concluido!',  'Arquivo gerado com sucesso!', imInformacao, [mbOk]);

    finally

       cdsContasReceber2.Filtered := False;

       btnGerar.Enabled := True;

    end;
Abaixo segue a função ConfiguraBanco da listagem acima:
procedure TGerArquivosBanco.ConfiguraBanco;

begin

    if UpperCase(cdsBancosNOME_FANTASIA.AsString) = 'BANCO DO BRASIL'

      then ACBrBoleto.Banco.TipoCobranca := cobBancoDoBrasil

      else

         if UpperCase(cdsBancosNOME_FANTASIA.AsString) = 'BANRISUL'

           then ACBrBoleto.Banco.TipoCobranca := cobBanrisul;


    ACBrBoleto.Cedente.Nome := cdsContasReceber2NOME_FANTASIA.AsString;

    ACBrBoleto.Cedente.Conta := cdsBancosCONTA.AsString;

    ACBrBoleto.Cedente.ContaDigito := cdsBancosCONTA_DIGITO.AsString;

    ACBrBoleto.Cedente.Agencia := cdsBancosAGENCIA.AsString;

    ACBrBoleto.Cedente.AgenciaDigito := cdsBancosAGENCIA_DIGITO.AsString;


    ACBrBoleto.Cedente.CodigoCedente := cdsBancosNRO_CEDENTE.AsString;

    //ACBrBoleto.Cedente.Convenio := cdsBancosCONVENIO.AsString;

    ACBrBoleto.Cedente.CNPJCPF := 'xxxxxxxxxxxxxx';

    ACBrBoleto.Cedente.Nome := 'XXXXXXXXXXXXXXXXXXXXXX';

    ACBrBoleto.Cedente.TipoInscricao := pJuridica;

    ACBrBoleto.DataArquivo := Date;

end;

No componente apenas alterei apenas as propriedades ACBRBoleto.LayoutRemessa, ACBRBoleto.Cedente.TipoInscricao, ACBRBoleto.Cedente.ResponEmissao e ACBRBoleto.Banco.TipoCobranca.

Por favor me ajudem. Ja mandei 5 arquivos pra homologar e todos voltaram com os mesmos erros. Desde já, agradeço a atenção.

Carlos Alexandre Heidrich

Programador e Técnico em Informática

Postado

Olá

Descobri que meu problema com a remessa do Banco do Brasil CNAB240 aconteceu devido a diversos bugs no arquivo ACBrBancoBrasil.pas.

A grande maioria deles eu consegui contornar alterando o fonte. Mas tem alguns que fogem ao meu alcance. Vou listar abaixo os problemas que encontrei para uma nova atualização do componente.

Linha 354: Alterei ela e deixei desse jeito:

IntToStrZero(2 * (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo)+ 1) - 1, 5) + //9 a 13 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q)
Linha 403: Deixei ela desse jeito:
IntToStrZero(2 * (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo) + 1), 5) + //Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q)
Linha 120: Nosso número na carteira 11 possui 20 caracteres que devem ser prenchidos com zeros('00000000000000000000')
ANossoNumero := padR(ANossoNumero, 20, '0'); //ANossoNumero :=   padR(AConvenio, 7, '0')+ padR(ANossoNumero, 11, '0');
Linha 221 e 259: Erro grave! Esta sendo atribuido o Código do Cedente no campo que deveria receber o Convênio
padR(CodigoCedente, 9, '0') + '0014'    + //33 a 45 - Código do convênio no banco [ Alterado conforme instruções da CSO Brasília ] 27-07-09
Linha 364: O erro que me fez gritar "NÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃOOOOOOOOOO!!!!!!!!!!!!!!!!!" :shock::shock::shock: quando percebi o que estava de errado com o tipo de cobrança: Ele está fixo no fonte!
'1'                                                        + //58 - Cobrança Simples

Tenho um cliente que precisa alterar esse campo. As vezes ele usa '1' para Cobrança Simples e as vezes precisa usar '4' para Cobrança Descontada. Se o ACBrBoleto possuir essa propriedade facilitaria bastante. Do jeito que está hoje, precisaria fazer uma gambi pra resolver o problema.

Outro problema que me chamou a atenção é que tem varios "campos" do layout fixos no fonte.

Gostaria de poder ajudar os colegas desenvolvedores do ACBr a melhorar esse poderoso componente.

Se essas altereção que mencionei forem inseridas no fonte de uma nova versão, gostaria de ser comunicado para poder atualizar os fontes do meu componente.

Gostaria de saber como faço pra ajudar a desenvolver os componentes?

Desde já agradeço a ajuda.

Carlos Alexandre Heidrich

Programador e Técnico em Informática

Postado

Valeu pelas dicas amigo, vou verificar meus fontes porque uso isso de montão. Porém seus boletos carteira 11 estão imprimindo sem problemas ? Os meus boletos carteira 18/019 estão ok, porém quando eu emito boleto carteira 11/019 (convênio 7 posições) e tento pagar via internet banking está dando erro de linha digitável inválida ! Suas impressões carteira 11 estão em ordem ?

  • 1 ano depois...
Postado

Pessoal, no CNAB400 também tá canseira, tendo que fazer gambiarra toda vez que atualizo, a minha remessa só vai desta forma abaixo:

 

 

 

  {Pegando Tipo de Carteira}
         case ACBrBoleto.Cedente.CaracTitulo of
         tcSimples   : TipoCarteira    := '     ';
         tcDescontada: TipoCarteira    := '04DSC';
         tcVinculada : TipoCarteira    := '02VIN';
         else TipoCarteira             := '     ';
         end;
 
 
         wLinha:= wLinha +
                  TipoCarteira                                            + // Tipo de cobrança
                  Carteira                                                + // Carteira
                  ATipoOcorrencia                                         + // Ocorrência "Comando"
                  padL( NumeroDocumento, 10, ' ')                         + // Seu Numero - Nr. titulo dado pelo cedente
                  FormatDateTime( 'ddmmyy', Vencimento )                  + // Data de vencimento
                  IntToStrZero( Round( ValorDocumento * 100 ), 13)        + // Valor do titulo
                  '001' + '0000' + ' '                                    + // Numero do Banco - 001 + Prefixo da agencia cobradora + DV-pref. agencia cobradora
                  padR(ATipoEspecieDoc, 2, '0') + ATipoAceite             + // Especie de titulo + Aceite
                  FormatDateTime( 'ddmmyy', DataDocumento )               + // Data de Emissão
                  AInstrucao                                              + // 1ª e 2ª instrução codificada
                  IntToStrZero( round(ValorMoraJuros * 100 ), 13)         + // Juros de mora por dia
                  aDataDesconto                                           + // Data limite para concessao de desconto
                  IntToStrZero( round( ValorDesconto * 100), 13)          + // Valor do desconto
                  IntToStrZero( round( ValorIOF * 100 ), 13)              + // Valor do IOF
                  IntToStrZero( round( ValorAbatimento * 100 ), 13)       + // Valor do abatimento permitido
                  ATipoSacado + padR(OnlyNumber(Sacado.CNPJCPF),14,'0')   + // Tipo de inscricao do sacado + CNPJ ou CPF do sacado
                  padL( Sacado.NomeSacado, 37) + '   '                    + // Nome do sacado + Brancos
                  padL(trim(Sacado.Logradouro) + ', ' +
                       trim(Sacado.Numero) + ' '+ trim(Sacado.Bairro),
                       52)                                                + // Endereço do sacado
                  padR( OnlyNumber(Sacado.CEP), 8 )                       + // CEP do endereço do sacado
                  padL( trim(Sacado.Cidade), 15)                          + // Cidade do sacado
                  padL( Sacado.UF, 2 )                                    + // UF da cidade do sacado
                  padL( AMensagem, 40)                                    + // Observações
                  DiasProtesto + ' '                                      + // Número de dias para protesto + Branco
                  IntToStrZero( aRemessa.Count + 1{NumRegT}, 6 );
 
 
 
Do jeito que está hoje nos fontes não vai nem a bala quando uso o Tipo da Carteira = Descontada.
 
Com quem eu vejo pra checar esta alteração?
 
Abraços.
  • Fundadores
Postado

Se deseja submeter correções e melhorias nos fontes, por favor anexe no Post todas as Units alteradas (se necessário ZIP)

 

Usamos o "WinMerge" para analisar suas modificações e verificar se elas podem ser incluídas nos fontes originais sem prejuízo para outros usuários

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • 4 semanas depois ...
  • Administradores
Postado

Boa noite Wanderley.

 

Fiz um merge das suas correções com outras que recebi recentemente e acredito que seu arquivo será gerado corretamente, existe apenas uma diferença com relação aos nomes de algumas variáveis,porém o conteúdo das mesmas é o mesmo.

 

As alterações para este banco estão disponíveis no svn.

 

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 1 mês depois ...
  • Este tópico foi criado há 4286 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.