Ir para conteúdo
  • Cadastre-se

dev botao

Erro Na Formação Do Nosso Numero Caixa Econômica Federal Sr Sicob


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

Recommended Posts

ACBrBancoCaixaSICOB.pasBom dia Juliana, 

 

Em resposta a sua sugestão estou criando esse tópico e tbem dizer que a falta de clareza no que escrevi foi por conta do corretor ortográfico que zuou todo o texto.

Vamos lá:

Ao atualizar o componente ACBr (e já tinha notado isso em outras versões) notei que o nosso numero gerado pelo componente da caixa SICOB - carteira SR - antes correto no padrão 82NNNNNNNN-D, foi alterado e estava saindo NNNNNNNNNN-D (sem o 82 no inicio do nosso numero).

Ao notar essa mudança na formação do nosso numero eu entrei no fonte ACBrBancoCaixaSICOB, no procedimento: FormataNossoNumero (Linha 363) e subistitui: "if (wTamNossoNum = 10) ou (wTamNossoNum = 15) then" por: "if (wTamNossoNum = 15) then".

Desta forma o nosso numero gerado começou a sair novamente com o 82NNNNNNNN-D - que é o correto pois obtive a homologação da caixa - só não sei dizer se isso vai ter algum outro efeito colateral em outras carteiras pois atualmente não trabalho com elas.

Vou anexar o fonte para que possa ver a alteração.

Se precisar de algo mais, estamos ae...

 

Abraços.

 

HGS Sistemas

ACBrBancoCaixaSICOB.pas

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Olá,

 

Boa noite. Bom, eu utilizo aqui de boa. Não sei se o manual que uso é atualizado, mas com certeza a formatação que você apresentou é bastante encontrada na internet. Mas faz o seguinte, porque você não configura utilizando o manual do COBCAIXA (produto em questão) ? Vais notar que as carteiras no cobcaixa, quando rápida (começa com 9) ou simples (começa com 3) tem os 10 benditos dígitos, já na SR começa apenas com 8 e já tem 15 dígitos (16 com o DV).

 

Segue anexo, espero que ajude.

 

Até mais,

 

 

 

 

 

 

 

 

 

 

 

 

 

COBCAIXA_Manual_de_Instalacao_v112013.pdf

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

 

Por favor fornecer o manual utilizado como base para implementar 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

  • Membros Pro

Olá,

 

Outro detalhe que esqueci de mencionar é que, 10 dígitos com o 82, que é fixo, portanto, eu configuraria o componente dessa maneira:

              ACBrBoleto.Banco.TipoCobranca := cobCaixaSicob;
              ACBrBoleto.Banco.Numero          := 104;
              ACBrBoleto.Banco.Digito          := 0;
              ACBrBoleto.Banco.Nome            := 'Caixa Economica Federal';
              if(StrToInt(txtTamanhoNNum.Text) > 0) then
                 ACBrBoleto.Banco.TamanhoMaximoNossoNum := StrToInt(txtTamanhoNNum.Text)
              else
                 ACBrBoleto.Banco.TamanhoMaximoNossoNum := 15;
 
Então, defini em txtTamanhoNNum.Text que o tamanho do nosso número é 8 (82NNNNNNNN-D, tiro o 82 que é fixo e o Dv) e usando 8 posições de zeros formato o nosso número e dai forma o nosso número do jeito que você quer.
 
Até mais,

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Administradores

Bom dia Helbert.

 

Não foi feita nenhum alteração ainda, se desejar você pode fazer, porém lembrando sempre de manter a compatibilidade para todas as situaçõ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

  • Membros Pro

ganef,

 

Boa tarde. No meu sistema, eu utilizo com as configurações que estão e tudo funciona perfeitamente, basta você formatar como passei anteriormente. Tenho vários clientes CAIXASICOB, CAIXA ECONOMICA, várias carteiras e todos funcionando bem. Tudo depende das configurações do componente. Na hora de configurar o componente eu passo o seguinte, carteira SR, caixasicob, 11 posições com o DV.

// configurando para caixasicob, sem reg, nosso número de 11 posições com DV
// na realidade o nosso número tem 8 posições mas o prefixo 82 e o DV totaliza 11 pos 
ACBrBoleto.Banco.TipoCobranca := cobCaixaSicob;
ACBrBoleto.Banco.Numero          := 104;
ACBrBoleto.Banco.Digito          := 0;
ACBrBoleto.Banco.Nome            := 'Caixa Economica Federal';
ACBrBoleto.Banco.TamanhoMaximoNossoNum := 8;

ACBrBoleto.Cedente.Agencia          := '0000';
ACBrBoleto.Cedente.AgenciaDigito    := '0';
ACBrBoleto.Cedente.CaracTitulo      := tcSimples;
ACBrBoleto.Cedente.CNPJCPF          := '67.734.078/0001-00'; // cnpj de teste gerado: http://highportal.no.sapo.pt/geradorcpf.html
ACBrBoleto.Cedente.CodigoCedente    := 000000000000000; // 0000 000 00000000  (agencia,operacao,codigo cedente)
ACBrBoleto.Cedente.Conta            := '000000';
ACBrBoleto.Cedente.ContaDigito      := '0';

ACBrBoleto.Cedente.Convenio         := '';
ACBrBoleto.Cedente.Modalidade       := '';
ACBrBoleto.Cedente.Nome             := 'CEDENTE DE TESTE';
ACBrBoleto.Cedente.Logradouro       := 'ENDERECO DO CEDENTE DE TESTE' ;
ACBrBoleto.Cedente.NumeroRes        := '1000';
ACBrBoleto.Cedente.Complemento      := '';
ACBrBoleto.Cedente.Bairro           := 'BAIRRO';
ACBrBoleto.Cedente.CEP              := '00000000';
ACBrBoleto.Cedente.Cidade           := 'CIDADE';
ACBrBoleto.Cedente.Telefone         := '999999999';
ACBrBoleto.Cedente.UF               := 'SP';

ACBrBoleto.Cedente.ResponEmissao    := tbCliEmite;
ACBrBoleto.Cedente.TipoInscricao    := pJuridica;

ACBrBoleto.Cedente.TipoCarteira     := tctSimples;
ACBrBoleto.DataArquivo              := Date;
ACBrBoleto.NomeArqRemessa           := FormatDateTime('DDMMYYYYHHMMSS',Now)+'.TXT';
ACBrBoleto.DirArqRemessa            := 'c:\caixa\remessa\';
ACBrBoleto.DirArqRetorno            := 'c:\caixa\retorno\';
ACBrBoleto.ImprimirMensagemPadrao   := False;
ACBrBoleto.LayoutRemessa            := c240;
ACBrBoleto.LeCedenteRetorno         := false;

// Na hora de imprimir os boletos
// ...

nNossoNum := 1;
iVencto := 0;
ACBrBoleto.ListadeBoletos.Clear;
AStringList := TStringList.Create;

for i := 1 to 1 do
begin
    TituloACBr := ACBrBoleto.CriarTituloNaLista;
    AStringList.Clear;

    // dias de protestos e carteira de envio
    TituloACBr.TipoDiasProtesto := diCorridos;
    TituloACBr.CarteiraEnvio    := tceCedente;

    with TituloACBr do
    begin
        Sacado.Avalista       := '';
        Sacado.NomeSacado     := 'Fulano de Tal ' + IntToStr(i);
        Sacado.CNPJCPF        := '111.111.111-1' + IntToStr(i);

        if(length(trim(Sacado.CNPJCPF)) > 11) then
            Sacado.Pessoa     := pJuridica
        else
            Sacado.Pessoa     := pFisica;

        Sacado.Logradouro     := 'Rua do Sacado ' + IntToStr(i);
        Sacado.Numero         := IntToStr(i) + ' 123';
        Sacado.Complemento    := IntToStr(i) + ' complemento';
        Sacado.Bairro         := 'Bairro do Sacado ' + IntToStr(i);
        Sacado.Cidade         := 'Cidade do Sacado' + IntToStr(i);
        Sacado.UF             := 'SP';
        Sacado.CEP            := '01001-001';
        Sacado.Email          := '[email protected]';
        Sacado.Fone           := '11 1111 1111';

        Vencimento            := StrToDate(FormatDateTime('dd/mm/yyyy', txtDataVencto.Date+iVencto));
        DataDocumento         := StrToDate(FormatDateTime('dd/mm/yyyy', txtDataDocto.Date));
        DataProcessamento     := StrToDate(FormatDateTime('dd/mm/yyyy', txtDataProc.Date));
        NumeroDocumento       := IntToStr(i);
        EspecieDoc            := cmbEspecieDocto.Text;
        NossoNumero           := FormatFloat(txtMascaraNNum.Text,nNossoNum); // aqui, minha máscara está 00000000 com oito posicoes, sem o 82, o acbr já coloca o 82, como o cobrebemx
        Carteira              := txtCarteira.Text;
        LocalPagamento        := txtLocalPagto.Text;

        if cmbAceite.ItemIndex = 0 then
           Aceite := atSim
        else
           Aceite := atNao;

        ValorDocumento        := 1.90;

        ValorDesconto         := 0;
        DataDesconto          := 0;

        ValorAbatimento       := 0;
        DataAbatimento        := 0;

        ValorDescontoAntDia   := 0;

        if txtJuroMensal.Value>0 then
            PercentualMulta   := txtJuroMensal.Value;

        CodigoMora            := '1';
        ValorMoraJuros        := 0;
        DataMoraJuros         := 0;

        if txtMoraDiaria.Value>0 then
        begin
           nValorMora:=(ValorDocumento*(txtMoraDiaria.Value/30))/100;
           if(nValorMora >= 0.01) then
           begin
               ValorMoraJuros := nValorMora;
               DataMoraJuros  := Vencimento+1;
           end;
        end;

        if(txtDiasProtesto.AsInteger = 0) then
            DataProtesto      := 0
        else
            DataProtesto      := StrToDate(FormatDateTime('dd/mm/yyyy', Vencimento+txtDiasProtesto.AsInteger) );

        // mensagens padrão
        if DataProtesto <> 0 then
        begin
           if TipoDiasProtesto = diCorridos then
              AStringList.Add(ACBrStr('Protestar em ' + IntToStr(DaysBetween(Vencimento, DataProtesto))+ ' dias corridos após o vencimento'))
           else
              AStringList.Add(ACBrStr('Protestar no ' + IntToStr(DaysBetween(Vencimento, DataProtesto))+ ' dia útil após o vencimento'));
        end;

        if ValorMoraJuros <> 0 then
        begin
           if DataMoraJuros <> 0 then
              AStringList.Add(ACBrStr('Cobrar Juros de '                        +
                              ifthen(CodigoMora = '2', FloatToStr(ValorMoraJuros) + '%',
                                     FormatCurr('R$ #,##0.00',ValorMoraJuros))         +
                               ' por dia de atraso para pagamento a partir de ' +
                               FormatDateTime('dd/mm/yyyy',ifthen(Vencimento = DataMoraJuros,
                                                                  IncDay(DataMoraJuros,1),DataMoraJuros))))
           else
              AStringList.Add(ACBrStr('Cobrar Juros de '                +
                                      ifthen(CodigoMora = '2', FloatToStr(ValorMoraJuros) + '%',
                                             FormatCurr('R$ #,##0.00',ValorMoraJuros))         +
                               ' por dia de atraso'));
        end;

        if PercentualMulta <> 0 then
           AStringList.Add(ACBrStr('Cobrar Multa de ' +
                           FormatCurr('R$ #,##0.00',ValorDocumento*( 1+ PercentualMulta/100)-ValorDocumento) +
                           ' após o vencimento.'));

        Mensagem.Text         := AStringList.Text + txtInstrucaoCob1.Text + #13+#10 + txtInstrucaoCob2.Text;
        OcorrenciaOriginal.Tipo:= toRemessaRegistrar;
        Instrucao1            := trim(txtCodInstr1.Text);
        Instrucao2            := trim(txtCodInstr2.Text);
        Parcela               := i;
    end;
    nNossoNum := nNossoNum + 1;
    iVencto := iVencto + 30;
end;

ACBrBoleto.Imprimir;

O resultado está no anexo no PDF. Verifique as configurações do componente, não é necessário mexer no fonte do ACBr, na minha opinião.

 

Até mais,

teste boleto caixasicob sem reg nosso numero 11 posicoes.pdf

Editado por aocampioni

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Juliomar,

 

Bom dia! Alguns dados (bem poucos) como agência, nome correto do cedente endereço, número e tals saiu no boleto por engano. Na hora de colar o código eu revisei e coloquei dados aleatórios (mas no formato correto) mas o trecho do código reflete exatamente a formatação que eu fiz pra gerar o boleto desse jeito. O boleto tem um recibo do pagador compacto porque eu desenvolvi um modelo pro fortes e não foi aprovado para subir no svn porque existe um semelhante no repositório (padraoentrega). Mas todos os meus clientes usavam cobrebemx e tinha esse modelo lá porque ele permite sair dois boletos em uma única folha, só isso, mas tá ok, eu vou gerar novamente o boleto baseado no trecho anexado e posto assim que possível.

 

Até mais,

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Pessoal,

Boa tarde. Segue anexo boleto relativo aos dados do trecho do código postado.

 

Até mais,

teste boleto caixasicob sem reg nosso numero 11 posicoes.pdf

teste boleto caixasicob sem reg nosso numero 11 posicoes.pdf

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Link para o comentário
Compartilhar em outros sites

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