Ir para conteúdo
  • Cadastre-se

dev botao

Alterações Boleto Caixa


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

Recommended Posts

Olá, acredito que deva ser feita uma alteração no fonte da caixa:

function TACBrCaixaEconomica.MontarCodigoBarras(const ACBrTitulo : TACBrTitulo): String;
var
  CodigoBarras, FatorVencimento, DigitoCodBarras :String;
  CampoLivre,DVCampoLivre, ANossoNumero : String;
  {Crz}
  function PadL(Oque: string; Tamanho: integer; ComOque: char = '0'): string;
  var
    FillStr: string;
  begin
    Oque := trim(Oque);
    if Oque = '' then Oque := '0';
    Oque := (IntToStr(StrToInt(Oque) ));
    
    SetLength(FillStr, Tamanho);
    FillChar(FillStr[1], Tamanho, ComOque);

    if Length(Oque) > Tamanho then
      Result := Copy(Oque, 1, Tamanho)
    else
      Result := Copy(FillStr, 1, Tamanho - Length(oque)) + Oque;
  end;
  {/Crz}
begin

    FatorVencimento := CalcularFatorVencimento(ACBrTitulo.Vencimento);
    
    ANossoNumero := FormataNossoNumero(ACBrTitulo);

    {Montando Campo Livre}
    CampoLivre := padR(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente,6,'0') +
                  CalcularDVCedente(ACBrTitulo) + Copy(ANossoNumero,3,3)  +
                  Copy(ANossoNumero,1,1) + Copy(ANossoNumero,6,3)         +
                  '4' + Copy(ANossoNumero,9,9);

    Modulo.CalculoPadrao;
    Modulo.MultiplicadorFinal   := 2;
    Modulo.MultiplicadorInicial := 9;
    Modulo.Documento := CampoLivre;
    Modulo.Calcular;
    DVCampoLivre := intTostr(Modulo.ModuloFinal);

    if Length(DVCampoLivre) > 1 then
       DVCampoLivre := '0';

    CampoLivre := CampoLivre + DVCampoLivre;

    //Alteracao!!
    if ACBrTitulo.ACBrBoleto.LayoutRemessa = c240 then
    begin

      {CRZ}
      if (ACBrTitulo.Carteira = 'SR') then
      begin
        // Esse processo sobrescreve tudo o que foi feito lá em cima....
        ANossoNumero := ACBrTitulo.NossoNumero;

        while (ANossoNumero <> '') and (ANossoNumero[1] = '0') do // Tira zeros à esquerda para não atrapalhar (importante!)
        begin
          ANossoNumero := Copy(ANossoNumero, 2, Length(ANossoNumero));
        end;

        CampoLivre :=
          PadL(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente, 5) +
          PadL(ACBrTitulo.ACBrBoleto.Cedente.Agencia, 4) +
          '8' + '7' +
          PadL(ANossoNumero, 14);
      end;
      {/CRZ}

    end;
    //..........................................................................


    {Codigo de Barras}
    with ACBrTitulo.ACBrBoleto do
    begin
       CodigoBarras := IntToStrZero(Banco.Numero, 3) +
                       '9' +
                       FatorVencimento +
                       IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10) +
                       CampoLivre;
    end;

    DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
    Result:= copy( CodigoBarras, 1, 4) + DigitoCodBarras + copy( CodigoBarras, 5, 44);
end;

Pois como estava não seguia o manuel(pag. 11)... que está em anexo obrigado!

 

ESPCODBARBLOQCOBRANREGIST_16POSICOES.pdf

ESPCODBARBLOQCOBRANREGIST_16POSICOES.pdf

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

 

Vc teve algum retorno negativo da caixa ou algo assim com os fontes conforme estão 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 !!

Link para o comentário
Compartilhar em outros sites

Então, não comecei a rotina dos boletos da caixa agora, essa tarefa caiu pois o programador responsável pela mudança acima saiu da empresa... com esse código ai ele homologou os boletos, porém toda a vez que se atualiza o ACBr há a necessidade de adicionar essa rotina... e acredito que seria melhor subir pro ACBr (assim como o Akai aqui do fórum e da empresa fez) em vez de alterar toda a hora... sem esse código o boleto gera os números errado e não cai em conta alguma...

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

 

Entendi...porém no momento da impressão do boleto pode-se não ter sido definido qual layout de remessa será utilizado, ou mesmo a remessa nem seja utilizada pelo cliente...da forma que está escrito apenas quando o CNAB é 240 é necessário essa mudança, pela experiência que tenho tido com boletos os bancos não definem como formatar o Código de Barras de acordo com o layout de arquivo de remessa escolhido.

 

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

Link para o comentário
Compartilhar em outros sites

Com certeza, você está correta em cada vírgula. Essas condições foram criadas especificamente para um cliente, por questões de receio de "cagada" de mexer no fonte do ACBr. ^^

 

Essas condições não tem nada ver com o manual. 

 

:)

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

Boa tarde Juliana,

esse nosso problema com o boleto da caixa, e somente com ela, e com um unico cliente,

é que se nos gerarmos o codigo de barras conforme o ACBr, hora que o cliente paga, não cai em conta nenhuma...

 

esse trecho que foi implementado é so uma "POG" para o problema,





 //Alteracao!!
    if ACBrTitulo.ACBrBoleto.LayoutRemessa = c240 then
    begin

      {CRZ}
      if (ACBrTitulo.Carteira = 'SR') then
      begin
        // Esse processo sobrescreve tudo o que foi feito lá em cima....
        ANossoNumero := ACBrTitulo.NossoNumero;

        while (ANossoNumero <> '') and (ANossoNumero[1] = '0') do // Tira zeros à esquerda para não atrapalhar (importante!)
        begin
          ANossoNumero := Copy(ANossoNumero, 2, Length(ANossoNumero));
        end;

        CampoLivre :=
          PadL(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente, 5) +
          PadL(ACBrTitulo.ACBrBoleto.Cedente.Agencia, 4) +
          '8' + '7' +
          PadL(ANossoNumero, 14);
      end;
      {/CRZ}

    end;
    //..........................................................................

queriamos saber se tem alguma alteração na forma de passar os dados que gere o codigo corretamente:

Codigo SEM a alteração:
10490.00175 24000.200048 00000.634022 6 56760000023451

Codigo COM a alteração:
10490.01728 05868.70005 00000.063404 9 56760000023451

 

é o mesmo boleto, se pagar o boleto com a alteração ele cai na conta corretamente, mas se pagar o outro o dinheiro para para o "alem", conta nenhuma...

 

excluindo essa alteração, será nos estamos passando alguma coisa errada ou faltando passar alguma coisa???
 

Massao Aihara

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

 

Adicione aqui as informações que foram utilizadas para gerar o boleto, inclusive as configurações do  do componente, apenas com a linha digitável fica complicado definir oque pode ser feito.

 

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

Link para o comentário
Compartilhar em outros sites

estou com um problema diferente, mas referente a caixa, e na homologação não passou

 

msg da caixa:

 

O código do Cedente informado no campo “Agência/Código Cedente” é inválido. O código correto a ser impresso neste campo seria: “0566/354562-8”.

o codigo gerado pelo boleto é: "00566/354562"  (Recibo sacado/via Banco)  e assim "00566-3/354562" (comprovante de entrega)

 

Estou usando o fastreport para emissao dos boletos

 

case StrToInt(FBanco) of

...

104: Boleto.Banco.TipoCobranca := iffthen(cart='SR',cobCaixaSicob, cobCaixaEconomica);

...

end;

 

apaguei a pasta ACBr e baixei tudo novamente..troquei meus layouts pelos da pasta \ACBrboletos\delphi\Layout

e o problema continua

 

Massa de testes encaminhada para homologação não contém CNPJ do Cedente. Incluir na Ficha de Compensação, no mesmo alinhamento do campo “Cedente”, o campo CNPJ, com o respectivo número da inscrição (CNPJ) do Cedente – ÍTEM IMPEDITIVO;    

esse item é passivel de ajuste no codigo fonte, ou devo passar junto com nome da empresa?  

 

 Conforme definido no item 11 acima,  se a logomarca CAIXA e o número-código/DV de Compensação (104-0)  forem impressos no “Recibo do Sacado” e “Comprovante de Entrega”, deve-se imprimir também as seguintes informações no rodapé deste “Recibo do Sacado” – ITEM IMPEDITIVO:

 

SAC CAIXA: 0800 726 0101 (informações, reclamações, sugestões e elogios)

Para pessoas com deficiência auditiva ou de fala: 0800 726 2492

Ouvidoria: 0800 725 7474 (reclamações não solucionadas e denúncias) 

caixa.gov.br  

 

- Alterar conteúdo do campo “Local de Pagamento” na Ficha de Compensação, para:  PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE;

- Alterar nome do campo “Espécie”, para: “Moeda”.  Incluir ainda a expressão “R$” neste campo;

- Os campos de cálculo devem ter as seguintes denominações:  (=) Valor do documento(-) Desconto(-) Outras Deduções/Abatimentos;   (+) Mora/Multa/Juros;  (+) Outros Acréscimos  e   (=) Valor cobrado. Na massa de testes avaliada, alguns destes campos foram omitidos, outros deverão ter seus nomes corrigidos – ITEM IMPEDITIVO;

- Incluir na Ficha de Compensação, no mesmo alinhamento do campo “Sacador Avalista”, o campo “CPF/CNPJ”,  para eventual informação do número de inscrição do sacador avalista.           

- Excluir campo “Código de Baixa”.        

 

alguem teve q fazer algum ajuste pra atender essa solicitação ?

Editado por Paulo Augusto
Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

 

A caixa é meio chata mesmo, apenas com relação ao primeiro item, verifique se  você está usando o TipoCobranca correto, pois para este banco existem 2, o cobCaixaEconomica e o cobCaixaEconomicaSicob.

 

Para a crítica quanto ao local de pagamento basta mudar isso na unit do banco, para a questão do 0800 da caixa foi adicionada uma propriedade com essas informações e na rotina de impressão caso esta propriedade não seja vazia o texto presente nela é impresso.

 

Para as demais alterações o componente ACBrBoletoFCFortes foi alterado para atender a todos estes requisitos, pois utilizamos este componente.

 

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

Link para o comentário
Compartilhar em outros sites

sim qnto ao tipo de cobranca eu demonstrei acima, como estou setando, porem nos meus fontes as opções sao: (cobCaixaSicob, cobCaixaEconomica), vou atualiar os componentes novamente e verificar os ajustes

 

obrigado!

 

mais uma observação, o instalador ACBrInstall nao instala na minha máquina: win7 64 bits, sempre q baixo preciso fazer a instalação manual, alguem teve esse problema tbem ?

 

mais uma vez agradeço a atenção e a dedicação no projeto

Editado por Paulo Augusto
Link para o comentário
Compartilhar em outros sites

Fiz a atualização e nao mudou nada, ja foi postado no svn as alterações ?

 

qnto ao codigo cedente (agencia/codigo cendente) observei que os bancos: ITAU/CAIXA/SICOOB) nao tem o dv da agencia, tendo o dv do cedente em sua composicao, entretanto os bancos: do BRASIL/BRADESCO possui o dv na agencia e tbem no codigo cedente.

 

qnto a msg 0800, encontrei a propriedade q contem essas informações, entretanto no layout do boleto frxReport, nao esta preparado para imprimir os dados da OrientancaoBanco

 

observei tbem que nas instrucoes os dados de multa e juros está duplicando a cada boleto impresso (ex: seleciono 3 ou 4 titulos para impressão) no ultimo boleto a instrucao juro e mula esta repetido 4 x

 

alguma previsao para esses ajustes...

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

 

Errei nos tipos de cobrança é como vc mencionou mesmo...quanto as alterações que  haviam sido feitas é para o componente de impressão do FortesReport, vc chegou a instalar ele?

 

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Verdade Breno S. peço desculpas por não ter atentado ao caso de Paulo Augusto ter começado outro assunto dentro do post

vou separar e obrigado pelo puxão de orelha

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Membros Pro

Eu tenho um Problema com a Impressão do Boleto da Caixa Econômica: 

 

Vi que para Caixa temos dois tipos de Cobrança: (Não entendi muito bem qual a diferente entre os dois...)
    ACBrBoleto.Banco.TipoCobranca := cobCaixaSicob    ou
    ACBrBoleto.Banco.TipoCobranca := cobCaixaEconomica (mas estou usando este...) 
 
o Gerente me passou o Código do Cedente como o seguinte: 1765.870.00000463.9
 
Dados que passo no Componente do ACBR:
 
ACBrBoleto.Cedente.Agencia          := '01765';
ACBrBoleto.Cedente.AgenciaDigito  := '1';
ACBrBoleto.Cedente.CodigoCedente := '1765870000004639';
ACBrBoleto.Cedente.Conta              := '0000020757';
ACBrBoleto.Cedente.ContaDigito     := '9';
 
Fiz um Boleto de Teste e paguei o mesmo na Caixa... O Valor não foi Creditado na minha conta, diz o gerente que a linha digitável está errada, mas não soube dizer o quê...
 
Alguém consegue me ajudar ?
Se alguém quiser, consigo enviar o Boleto em PV
Link para o comentário
Compartilhar em outros sites

 

Eu tenho um Problema com a Impressão do Boleto da Caixa Econômica: 

 

Vi que para Caixa temos dois tipos de Cobrança: (Não entendi muito bem qual a diferente entre os dois...)
    ACBrBoleto.Banco.TipoCobranca := cobCaixaSicob    ou
    ACBrBoleto.Banco.TipoCobranca := cobCaixaEconomica (mas estou usando este...) 
 
o Gerente me passou o Código do Cedente como o seguinte: 1765.870.00000463.9
 
Dados que passo no Componente do ACBR:
 
ACBrBoleto.Cedente.Agencia          := '01765';
ACBrBoleto.Cedente.AgenciaDigito  := '1';
ACBrBoleto.Cedente.CodigoCedente := '1765870000004639';
ACBrBoleto.Cedente.Conta              := '0000020757';
ACBrBoleto.Cedente.ContaDigito     := '9';
 
Fiz um Boleto de Teste e paguei o mesmo na Caixa... O Valor não foi Creditado na minha conta, diz o gerente que a linha digitável está errada, mas não soube dizer o quê...
 
Alguém consegue me ajudar ?
Se alguém quiser, consigo enviar o Boleto em PV

 

 

Colega,

 

Primeiro voce deve saber com o seu gerente, em que tipo de cobrança o contrato esta feito, a caixa tem uns 3 ou 4 padroes, o que estao homologando agora e o SIGCB, antes era o SICOB11, SICOB16 e SINCO, todos eles tem a mesma finalidade, no entanto estas versoes incluem mudanças evolutivas na questao de respostas para melhor detalhamento da cobrança.

 

O seu codigo de cedente esta enorme, pelo menos no meu, a agencia vai num campo separado, a melhor documentaçao sao os fontes, eu estou fazendo umas adiçoes aqui, nem sei se ja fizeram, vou compartilhar depois, estou trabalhando com arquivo retorno do SIGCB pelo ACBR ja achei algum erro que pode ja ter sido corrigido e acrescentando descricao do motivo de retorno por liquidaçao.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia Roberto.

 

Pelo Código de Cedente que o banco te passou, o tipo de cobrança correta no seu caso é o cobCaixaSicob.

Conforme  o Toninho citou, não informe os 4 primeiros dígitos  do código do cedente, pois são referentes ao número da agência.

 

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Colega,

 

Primeiro voce deve saber com o seu gerente, em que tipo de cobrança o contrato esta feito, a caixa tem uns 3 ou 4 padroes, o que estao homologando agora e o SIGCB, antes era o SICOB11, SICOB16 e SINCO, todos eles tem a mesma finalidade, no entanto estas versoes incluem mudanças evolutivas na questao de respostas para melhor detalhamento da cobrança.

 

O seu codigo de cedente esta enorme, pelo menos no meu, a agencia vai num campo separado, a melhor documentaçao sao os fontes, eu estou fazendo umas adiçoes aqui, nem sei se ja fizeram, vou compartilhar depois, estou trabalhando com arquivo retorno do SIGCB pelo ACBR ja achei algum erro que pode ja ter sido corrigido e acrescentando descricao do motivo de retorno por liquidaçao.

 

Muito obrigado, vou aguardar...

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Colegas,

 

Fiz as alterações em Relação ao Código do Cedente, ficando assim agora a Impressãao: 1765.870.00000463-9

 

Mas agora em relação ao nosso Número: a minha impressão fica assim, 000000036100101-0

me parece que a regra abaixo que tirei do Manual, não está sendo aplicada... mais especificamente aos dois primeiros caracteres (XY)

 

4.2.4.6 – NOSSO NÚMERO*: 

- Número de identificação do título, que permite o Banco e o Beneficiário identificar os dados da cobrança 
que deram origem ao boleto. 
- O Nosso Número no SIGCB é composto de 17 posições, sendo as 02 posições iniciais para identificar a 
Carteira e as 15 posições restantes são para livre utilização pelo Beneficiário. 
- Formato: XYNNNNNNNNNNNNNNN-D, onde: 
X Modalidade/Carteira de Cobrança (1-Registrada/2-Sem Registro) 
Y Emissão do boleto (4-Beneficiário) 
NNNNNNNNNNNNNNN Nosso Número (15 posições livres do Beneficiário) 
D *Dígito Verificador 
* Dígito Verificador do Nosso Número calculado através do Modulo 11, conforme ANEXO IV. 
 Admite 0 (zero), diferentemente do DV Geral do Código de Barras. 
Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

 

A forma que você montou o Código do Cedente aparenta pertencer a cobrança do Tipo Sicob, em qual unit você está efetuando as alterações?

 

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

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...