Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Bom dia pessoal, estou tendo problemas com a homologação do Boleto impresso na Caixa Econômica Federal - SIGCB. 
A principal é o layout que estou modificando e assim que homologar posto o arquivo a quem interessar.
Antes da modificação do Layout foram necessárias duas pequenas alterações nos fonte, que ao meu ver não vão interferir nos outros bancos, mas segue sugestão para análise, e se possível que seja adicionada ao projeto.

O aceite tem que ser "A" e não "S". Também existe mais uma opção possível em outros Bancos que é a "B", Banco do Nordeste.
No arquivo ACBrBoleto.pas, na linha:
 

TACBrAceiteTitulo = (atSim, atNao);

Modificar para:

TACBrAceiteTitulo = (atSim, atNao, atAceite, atBNao);

 

No arquivo \FC\Fortes\ACBrBoletoFCFortesFr.pas (aqui uso somente fortes) mudar a linha:

txtAceite.Caption := IfThen((atSim = Titulo.Aceite), 'A', 'N');


para:

case Titulo.Aceite of
  atSim    : txtAceite.Caption := 'S';
  atNao    : txtAceite.Caption := 'N';
  atAceite : txtAceite.Caption := 'A';
  atBnao   : txtAceite.Caption := 'B';
end;


O mesmo para a linha com txtAceite2.Caption.

Outro problema sempre me ocorreu (em qualquer banco),é a duplicação das instruções, principalmente quando se usa os campos abaixo 
Titulo.PercentualMulta e Titulo.ValorMoraJuros.

No arquivo \FC\Fortes\ACBrBoletoFCFortesFr.pas removendo a linha (:

ACBrBoletoFC.ACBrBoleto.AdicionarMensagensPadroes(Titulo,MensagemPadrao);


Esta duplicação não ocorre (efetuei o teste pelo demo).
Segue sugestões, caso não interfiram no componente seriam bem vindas.
Obrigado a todos.

Postado
Em 04/04/2017 at 21:05, romerofartura disse:

Boa noite. O Banco ainda não deu o retorno. Assim que retornarem vou postando aqui.

Estou às voltas com a Caixa Federal, aguardando resultado de um segundo envio para homologação.

Deixo aqui algumas sugestões de alteração, eu fiz no meu ACBr e recompilei,

na unit ACBrBoletoFCFortesFr.pas

1) na ficha de compensação do boleto está a mensagem
"Autenticação-Ficha de Compensação" e a pedido deles alterar para
"Autenticação Mecânica - Ficha de compensação"

2) nas instruções de cobrança, diminuí a fonte para fSize=7 e fsBold= true
Notei que cabem mais instruções e ficou mais legivel pelo negrito

3) aparentemente um erro, não está imprimindo o canhoto/comprovante de entrega qualquer que seja o parametro
[TipoImpressao] no arquivo .ini do titulo então nessa mesma unit eu forcei a barra com
   /// RLBand4.Visible := (fBoletoFC.LayOut = lPadraoEntrega) ;
   RLBand4.Visible := (True) ;

na linha 530 da unit

fora isso tudo tranquilo. 


Estou aguardando o retorno da caixa


Valeu!! 

  • 3 meses depois ...
Postado
15 horas atrás, Programador disse:

Olá boa tarde alguém conseguiu homologar boletos caixa, SIGCB?

 

 

 

Eu homologuei sem problemas, embora não esteja usando atualmente.
A empresa negociou com o banco Itaú, onde também consegui homologar.

Para a Caixa Federal veio somente a observação de corrigir a mensagem de Autenticação para Autenticação Mecânica

Os demais ajustes fiz por minha conta, não foram solicitados pelo banco, e vale salientar que foram somente ajustes visuais, nada em processamento ou correções do tipo. Somente visual!!!

Está homologado na Caixa sim SigCB, 

Postado

olá obrigado por responder.

minha homologação está dando problema no dígito verificador geral, está dando incorreto, aplicando o módulo 11, mas segundo o pessoal da homologação está incorreto.

  • Administradores
Postado

Boa tarde.

Você precisa fornecer mais detalhes sobre os valores passados ao componente, assim como o valor calculado e o esperado pelo banco.

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 !!

Postado
3 horas atrás, Programador disse:

olá obrigado por responder.

minha homologação está dando problema no dígito verificador geral, está dando incorreto, aplicando o módulo 11, mas segundo o pessoal da homologação está incorreto.

O que ocorreu comigo é a solicitação do banco que seja fornecida uma mostra com no mínimo 10 e no máximo 20 boletos conforme indicado abaixo.

Portanto o erro estava na minha amostra e não nos dígitos gerados pelo componente
 

image.png.5756e7608fbf546e32737a3b54d263e7.png

  • Membros Pro
Postado

Boa tarde. Meu cliente acabou por não usar a CEF, mas foi homologado com ressalva. Segue transcrição abaixo.

" Corrigir a distância entre o fim da folha e o código de barras, de acordo com item 4.2.10.1 do MO67.119 - "Posição: 12mm desde a margem inferior da Ficha de compensação até o centro do código de barras" (foi necessário cortar a folha ao fim da margem para leitura do código de barras);
 

Quanto aos cálculos todos foram aplicados corretamente. Enviei os 20 boletos que eles pedem com dígitos verificadores diferentes e aprovaram.

Aliás (Juliana), aproveito o post para que verifique a possibilidade de aplicar estas alterações no fonte, caso já não tenham sido feitas, possivelmente irá ajudar muitos usuários. Depois delas já consegui homologar, além da CEF o BB e Itaú e estou no aguardo do SICREDI, mas ao que tudo indica vai passar.
As alterações principais solicitadas nas homologações foram no layout mesmo, pouca coisa. A linha "corte aqui" abaixo do código de barras, foi o que resolveu, mas veio a ressalva). O ideal seria posicionar a 12mm, o que ainda irei fazer.

Segue as alterações dos fontes novamente. Agradeço a todos que interagiram e se dispuseram a ajudar.

ACBrBancoBrasil.pas

ACBrBancoCaixa.pas

ACBrBoleto.pas

ACBrBoletoFCFortesFr.dfm

ACBrBoletoFCFortesFr.pas

Postado (editado)

na propriedade   estou informando desta forma=  acbrboleto1.Banco.TipoCobranca:=cobCaixaEconomica, ou devo informar assim:   acbrboleto1.Banco.TipoCobranca:=cobCaixaSicob;

qual usar?

Editado por Programador
  • Membros Pro
Postado

Precisa ver com seu gerente qual o tipo de cobrança que está sendo usada na sua conta se não me engano a caixa tem duas a SIGCB  que é a discutida aqui no tópico e a SICOB.

Identificando qual foi colocada em sua conta vc ajusta o componente. 

  • Administradores
Postado

Boa tarde.

1 hora atrás, romerofartura disse:

As alterações principais solicitadas nas homologações foram no layout mesmo, pouca coisa. A linha "corte aqui" abaixo do código de barras, foi o que resolveu, mas veio a ressalva). O ideal seria posicionar a 12mm, o que ainda irei fazer.

Foram alteradas também as units do Banco do Brasil e Caixa, nestes casos, oque além do layout foi necessário mudar? Lembrando que se não tiver relação com o tópico atual, por favor crie um novo.

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 !!

  • Membros Pro
Postado

Nelas tem alterações nas linhas que contém os novos  aceites: atAceite = 'A' e atBnao = 'B' e notei que em algumas units não tem o else deixando o aceite com algum valor padrão.

      case Aceite of
         atSim, atAceite :  ATipoAceite := 'A';
         atNao, atBnao :  ATipoAceite   := 'N';
      else
        ATipoAceite := 'N';
      end;

 

Postado (editado)

bom dia a todos!

A cobrança é SIGCB e estou informando para o componente as informações:

acbrboleto1.Banco.TipoCobranca:=cobCaixaEconomica;
acbrboleto1.Banco.TamanhoMaximoNossoNum:=15;

Vencimento        :=20/07/2017
DataDocumento     :=25/06/2017
NumeroDocumento   :=0000001/1
EspecieDoc        :=DM
Aceite            :=atSim
DataProcessamento :=18/07/2017
Carteira          :=SR
NossoNumero       :=000000000000001
ValorDocumento    :=3,00
Sacado.NomeSacado :=ANTONIO OLIVEIRA
Sacado.CNPJCPF    :=92670297210
Sacado.Logradouro :=TRAVESSA PARANA                         
Sacado.Numero     :=32
Sacado.Bairro     :=CIDADE NOVA
Sacado.Cidade     :=MANAUS
Sacado.UF         :=AM
Sacado.CEP        :=69094014
ValorMoraJuros    :=0,01
Mensagem.Text     :=PROTESTO 15 DIAS DEPOIS DO VENCIMENTO.                                                              
OcorrenciaOriginal.Tipo:=toRemessaRegistrar

 

 

Editado por Programador
Postado
Em 18/07/2017 at 10:10, Programador disse:

bom dia a todos!

A cobrança é SIGCB e estou informando para o componente as informações:

acbrboleto1.Banco.TipoCobranca:=cobCaixaEconomica;
acbrboleto1.Banco.TamanhoMaximoNossoNum:=15;

Vencimento        :=20/07/2017
DataDocumento     :=25/06/2017
NumeroDocumento   :=0000001/1
EspecieDoc        :=DM
Aceite            :=atSim
DataProcessamento :=18/07/2017
Carteira          :=SR
NossoNumero       :=000000000000001
ValorDocumento    :=3,00
Sacado.NomeSacado :=ANTONIO OLIVEIRA
Sacado.CNPJCPF    :=92670297210
Sacado.Logradouro :=TRAVESSA PARANA                         
Sacado.Numero     :=32
Sacado.Bairro     :=CIDADE NOVA
Sacado.Cidade     :=MANAUS
Sacado.UF         :=AM
Sacado.CEP        :=69094014
ValorMoraJuros    :=0,01
Mensagem.Text     :=PROTESTO 15 DIAS DEPOIS DO VENCIMENTO.                                                              
OcorrenciaOriginal.Tipo:=toRemessaRegistrar

 

 

 

Em 17/07/2017 at 14:44, Juliana Tamizou disse:

Boa tarde.

Você precisa fornecer mais detalhes sobre os valores passados ao componente, assim como o valor calculado e o esperado pelo banco.

Att.

olá bom dia boa tarde

alguém poderia me dar uma luz, obrigado....

 

  • Membros Pro
Postado

Boa tarde.

Verifique se a carteira é esta mesmo, porque as carteiras sem registros (Carteira :=SR) não vão mais existir.

Na minha homologação foi usada a carteira RG (com registro). Fique atento também ao gerar a remessa dê preferência pelo no CNAB240. 

Na homologação que estou fazendo para o SICREDI, vei a orientação, pois a FEBRABAN, segundo eles vai descontinuar o CNAB 400 este ano.

No mais as informações parecem esta corretas.

Postado (editado)
4 horas atrás, romerofartura disse:

Boa tarde.

Verifique se a carteira é esta mesmo, porque as carteiras sem registros (Carteira :=SR) não vão mais existir.

Na minha homologação foi usada a carteira RG (com registro). Fique atento também ao gerar a remessa dê preferência pelo no CNAB240. 

Na homologação que estou fazendo para o SICREDI, vei a orientação, pois a FEBRABAN, segundo eles vai descontinuar o CNAB 400 este ano.

No mais as informações parecem esta corretas.

a carteira ficou errada somente no exemplo que mandei vamos considerar carteira RG, mas foi correta RG para homologação, uso acbrboleto para outros banco, bradesco,itau etc.e sempre faço a homologação para garantir que todos as informações foram preenchidas corretamente, mas com a caixa estou com este problema, pode ser alguma propriedade errada ou não informada..

Editado por Programador
  • Membros Pro
Postado

Mando assim veja se tem algo diferente. 

DM.ACBrBoleto1.LayoutRemessa := c240;

 with DM.ACBrBoleto1.Banco do
  begin
    Nome   := DmFd.FDQ_Boletos.FieldByName('BANCO_NOME').AsString;
    Numero := StrToInt(DmFd.FDQ_Boletos.FieldByName('BANCO_NRO').AsString);
  	
	case DmFd.FDQ_Boletos.FieldByName('BANCO_NRO').AsInteger of
        1 : TipoCobranca := cobBancoDoBrasil;
       33 : TipoCobranca := cobSantander;
      104 : TipoCobranca := cobCaixaEconomica;
      237 : TipoCobranca := cobBradesco;
      341 : TipoCobranca := cobItau;
      748 : TipoCobranca := cobSicred;
      756 : TipoCobranca := cobBancoob; //SICOOB
    end;
  end;

  with DM.ACBrBoleto1.Cedente do //Beneficiario
  begin
     Agencia       := DmFd.FDQ_Boletos.FieldByName('AGENCIA_NRO').AsString;
     AgenciaDigito := DmFd.FDQ_Boletos.FieldByName('AGENCIA_NRO_DIG').AsString;
     Conta         := DmFd.FDQ_Boletos.FieldByName('CONTA').AsString;
     ContaDigito   := DmFd.FDQ_Boletos.FieldByName('CONTA_DIG').AsString;
     Convenio      := DmFd.FDQ_Boletos.FieldByName('CONVENIO').AsString;
//       Modalidade    := IBDS_boleto.FieldByName('CONVENIO').AsString;
     CodigoCedente := DmFd.FDQ_Boletos.FieldByName('CEDENTE_COD').AsString;
     Nome          := DmFd.FDQ_Boletos.FieldByName('CEDENTE_NOME').AsString;
     CNPJCPF       := so_numeros(Dm.empCNPJ);
     Logradouro    := tira_acento(trim(Dm.empEnder));
     NumeroRes     := trim(Dm.empNro);
     Complemento   := tira_acento(trim(Dm.empCompl));
     Bairro        := tira_acento(trim(Dm.empBairro));
     Cidade        := tira_acento(Dm.empCid);
     UF            := Dm.empUF;
     CEP           := Dm.empCEP;

     case StrToInt(DmFd.FDQ_Boletos.FieldByName('BANCO_NRO').AsString) of
       756 : Modalidade := '01';
       001 : Modalidade := '027';
     end;

     if (Length(CNPJCPF) = 11) then
       TipoInscricao := pFisica
     else
       TipoInscricao := pJuridica;     
  end;

  DM.ACBrBoleto1.ListadeBoletos.Clear;

  for I := 0 to NrTitulos - 1 do
  begin
    Abrir(emp, Boletos[i]); //Abre a tabela do boleto coms os dados
    Titulo := DM.ACBrBoleto1.CriarTituloNaLista;

    with Titulo do
    begin
      DataProcessamento := Now;
      DataDocumento     := DmFd.FDQ_Boletos.FieldByName('DATA_INC').AsDateTime;
      Vencimento        := DmFd.FDQ_Boletos.FieldByName('DT_VENCTO').AsDateTime;
      Carteira          := DmFd.FDQ_Boletos.FieldByName('CARTEIRA').AsString;
      NumeroDocumento   := DmFd.FDQ_Boletos.FieldByName('N_DOC').AsString;
      NossoNumero       := DmFd.FDQ_Boletos.FieldByName('N_NUMERO').AsString;
      SeuNumero         := DmFd.FDQ_Boletos.FieldByName('CODIGO').AsString; //DmFd.FDQ_Boletos.FieldByName('COD_CONTA').AsString;
      EspecieDoc        := DmFd.FDQ_Boletos.FieldByName('ESPECIE').AsString;
      //EspecieMod        := '01'; Aqui para BANCOOP, se precisar
      ValorDocumento    := DmFd.FDQ_Boletos.FieldByName('VALOR').AsFloat;
      ValorDesconto     := DmFd.FDQ_Boletos.FieldByName('DESCONTO').AsFloat; //VALOR, Se percentual calcular o valor na hora de gerar o boleto e passar o valor.
      DataDesconto      := 0; //AQUI Adicionar
      ValorAbatimento   := 0; //AQUI Adicionar

      PercentualMulta   := DmFd.FDQ_Boletos.FieldByName('MULTA').AsFloat; //Percentual
      ValorMoraJuros    := DmFd.FDQ_Boletos.FieldByName('JUROS').AsFloat; //VALOR, Se percentual calcular o valor na hora de gerar o boleto e passar o valor.
      //DataMoraJuros     := DmFd.FDQ_Boletos.FieldByName('DT_JUROS').AsFloat; //AQUI Adicionar. 0 A contar do atraso
      DataBaixa         := DmFd.FDQ_Boletos.FieldByName('DT_VENCTO').AsDateTime + 90;

      case DM.ACBrBoleto1.Banco.TipoCobranca of
        cobBancoob :
        begin
          CodigoMora  := '2'; //SICOOB

          if (ValorMoraJuros > 0) then
            Instrucao1 := '01'; //Mandar a instrução 01 já na remessa. 01 - Cobrar juros e 07 não protestar
        end;
      end;

      DataProtesto := DmFd.FDQ_Boletos.FieldByName('DT_PROT').AsDateTime; //Mandar data como zero, sem protesto
      if (DataProtesto > 0) then
        TipoDiasProtesto := diCorridos;

      case AnsiIndexStr(DmFd.FDQ_Boletos.FieldByName('ACEITE').AsString, ['A', 'S', 'N', 'B'])  of
        0 : Aceite := atAceite;
        1 : Aceite := atSim;
        2 : Aceite := atNao;
        3 : Aceite := atBNao;
      end;

      Sacado.NomeSacado := tira_acento(DmFd.FDQ_Boletos.FieldByName('SACADO').AsString);
      Sacado.CNPJCPF    := DmFd.FDQ_Boletos.FieldByName('CPF_CNPJ').AsString;
      Sacado.Logradouro := tira_acento(DmFd.FDQ_Boletos.FieldByName('ENDERECO').AsString);
      Sacado.Numero     := DmFd.FDQ_Boletos.FieldByName('NRO').AsString;
      Sacado.Bairro     := tira_acento(DmFd.FDQ_Boletos.FieldByName('BAIRRO').AsString);
      Sacado.Cidade     := tira_acento(DmFd.FDQ_Boletos.FieldByName('NOMECID').AsString);
      Sacado.UF         := DmFd.FDQ_Boletos.FieldByName('UF').AsString;
      LocalPagamento    := tira_acento(DmFd.FDQ_Boletos.FieldByName('LOC_PAGTO').AsString);

      if (remessa > 0) then //remesa 0 impressão e 1 remessa
        Sacado.CEP := so_numeros(DmFd.FDQ_Boletos.FieldByName('CEP').AsString)
      else
        Sacado.CEP := DmFd.FDQ_Boletos.FieldByName('CEP').AsString;

      if (Length( so_numeros(Sacado.CNPJCPF)) = 11) then
        Sacado.Pessoa := pFisica
      else
        Sacado.Pessoa := pJuridica;

      if (remessa = 0) then ////remesa 0 impressão e 1 remessa
      begin
        if (Trim(DmFd.FDQ_Boletos.FieldByName('INSTRUCOES').AsString) <> '') then
          Mensagem.Text := tira_acento(DmFd.FDQ_Boletos.FieldByName('INSTRUCOES').AsString);

        if (Trim(DmFd.FDQ_Boletos.FieldByName('INSTRUCOES2').AsString) <> '') then
          Mensagem.Text := Mensagem.Text + tira_acento(DmFd.FDQ_Boletos.FieldByName('INSTRUCOES2').AsString);

        if (Trim(DmFd.FDQ_Boletos.FieldByName('INSTRUCOES3').AsString) <> '') then
          Mensagem.Text := Mensagem.Text + tira_acento(DmFd.FDQ_Boletos.FieldByName('INSTRUCOES3').AsString);
      end;

      DM.ACBrBoleto1.AdicionarMensagensPadroes(Titulo, Mensagem);
      //ACBrBoleto.Banco.MontarCampoNossoNumero()
    end;
  end;

  DM.ACBrBoleto1.ChecarDadosObrigatorios;
  
if (remessa = 0) then //0 Imprimir  e 1 remessa
  begin
    DM.ACBrBoleto1.Imprimir;
    DM.ACBrBoleto1.GerarPDF;
  end
  else
    DM.ACBrBoleto1.GerarRemessa(remessa);

Minha função de emissão é basicamente esta. Veja se te ajuda.

  • Curtir 1
  • Este tópico foi criado há 2682 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.