Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde a todos.

Percebi que a váriavel NossoNumero está ficando zerada após a procedure LerRetorno240 da Caixa Sicob.

Isso acontece na linha 1218:

NossoNumero := Copy(Copy(Linha,47,10), // sem o DV
                                Length(Copy(Linha,47,10))-TamanhoMaximoNossoNum ,
                                TamanhoMaximoNossoNum);

Nesse segundo Copy, ele está começando da posição 10, numa string que tem 10 caracteres. Pra mim no caso o tamnhoMaximoNossoNum é zero, então a variável fica zerada.

O que eu fiz foi apenas ajustar o lugar dos parâmetros, para o meu caso. Não sei se vai funcionar para todos.:

NossoNumero := Copy(Copy(Linha,47,10), // sem o DV
                                1,
                                Length(Copy(Linha,47,10))-TamanhoMaximoNossoNum);

Isso é viável? Está errado fazer desta forma? Me ajudem a resolver.

Obrigado desde já!

  • Administradores
Postado

Boa noite.

O correto seria verificar o motivo do TamanhoMaximoNossoNum estar ficando zerado.

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

  • Administradores
Postado

Boa tarde.

Seus fontes estão atualizados? Observe que na linha 2179 na unit ACBrBancoCaixaSICOB.pas é feita a atribuição da propriedade fpTamanhoMaximoNossoNum.

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

  • 3 semanas depois ...
  • Membros Pro
Postado

Bom dia Juliana, estou com o mesmo problema, 

na Unit em questão não exite a linha 2179, maximo de linhas nessa unit são 1380.

 

localizei na linha 95 o seguinte:
 fpTamanhoMaximoNossoNum := 0;

e na linha 1377.

   fpTamanhoMaximoNossoNum := 10;(dentro da procedure TACBrCaixaEconomicaSICOB.LerRetorno400(ARetorno: TStringList);

 

alterei o valor da linha 95 de 0 para 10 e funcionou corretamente.

PS: Estou utilizando Truk2, e fiz a atualização dos fontes hoje ;

Att

Souza

 

  • Administradores
Postado

Boa tarde.

Observe que na linha 1284 temos uma atribuição do tamanho para "20", neste caso a alteração que você comentou não seria necessária...

Seria possível nos fornecer esse arquivo para testes?

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

Pois Juliana, estou sendo obrigado a fazer outra alteração para pegar o numero do documento, assim que finalizar, envio para analise.

 

ATt

Souza

  • Curtir 1
  • Membros Pro
Postado

Boa tarde.

 

Juliana, fiz algumas alterações na Unit ACBrBancoCaixaSICOB ,e banco homologou a remessa , e consegui ler o retorno normal.

 

segue unit e alterações

************************************************************************************************************************************

function TACBrCaixaEconomicaSICOB.CalcularTamMaximoNossoNumero(
  const Carteira: String; NossoNumero: String): Integer;
var
  wTamNossoNumero: Integer;
begin
   Result:= 9;//Valor era 10, alterei para 9 funcionou

   wTamNossoNumero:= length(NossoNumero);

   if ((wTamNossoNumero >= 8)  and (wTamNossoNumero <= 10)) or
      ((wTamNossoNumero >= 14) and (wTamNossoNumero <= 15)) then
      Result := wTamNossoNumero;
end;

//***********************************************************************************************************************************

constructor TACBrCaixaEconomicaSICOB.create(AOwner: TACBrBanco);
begin
   inherited create(AOwner);
   fpDigito := 0;
   fpNome   := 'Caixa Economica Federal';
   fpNumero:= 104;
   fpTamanhoMaximoNossoNum := 9; //Valor era 10, alterei para 9 funcionou
   fpTamanhoAgencia := 5;
   fpTamanhoConta   := 8;

   fpOrientacoesBanco.Clear;
   fpOrientacoesBanco.Add(ACBrStr('SAC CAIXA: 0800 726 0101 (informações,reclamações e elogios) ' + sLineBreak+
                          'Para pessoas com deficiência auditiva ou de fala: 0800 726 2492 ' + sLineBreak +
                          'Ouvidoria: 0800 725 7474 (reclamações não solucionadas e denúncias)') + sLineBreak+
                          '     caixa.gov.br      ');
end;

//***************************************************************************************************************************************
Linha 1224

procedure TACBrCaixaEconomicaSICOB.LerRetorno240(ARetorno: TStringList);
            NumeroDocumento  := copy(Linha,62,73);//número Documento Retorno antes era 106,25   - Retorno Vilmar

 

ACBrBancoCaixaSICOB.pas

  • Curtir 1
  • Administradores
Postado

Boa tarde.

Em relação as alterações notei a necessidade das seguintes mudanças:

Em 08/04/2016 at 14:04, Souza disse:

 Result:= 9;//Valor era 10, alterei para 9 funcionou

Conforme pode ser observado nos manuais disponíveis no svn o tamanho do nosso número vária de acordo  com a carteira utilizada, portando o correto seria aplicar um tratamento semelhante ao existente no Banco do Brasil por exemplo.

- Para a Carteira 11 (SIMPLES): O Nosso Número é gerado pelo sistema da CAIXA para controle interno, e será composto da seguinte forma: NNNNNNNNNND, onde NNNNNNNNNN = Número Seqüencial D = Dígito Verificador (módulo 11)
Obs.: Para clientes que possuem sistema próprio, preencher o campo com zeros.

- Para a Carteira 12 (Rápida): Nosso Número informado pelo cliente à partir do que foi impresso nos bloquetos, é composto da seguinte forma:
9NNNNNNNNND, onde 9 = Fixo NNNNNNNNN = Número seqüencial D = Dígito Verificador (módulo 11)

4.1.4.6 – NOSSO NÚMERO*:
- Número de identificação do título no Banco. Permite ao Banco e a empresa identificar os dados da cobrança que deram origem ao bloqueto.
- No caso de Cobrança Sem Registro informar 82NNNNNNNN-DV.
- No caso de Cobrança Rápida informar 9NNNNNNNNN-DV.
- Calculo do DV do “Nosso Número” no ANEXO IV.

Em 08/04/2016 at 14:04, Souza disse:

NumeroDocumento  := copy(Linha,62,73);

Não identifiquei no manual o local onde indique que o campo NumeroDocumento possui 73 caracteres.

 

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

Boa tarde Juliana, não entendi sua observação.

Nosso numero possui 11 caracteres

da posição 62 a 73.

estou sem o manual no momento.

Att

Souza

Em 15/04/2016 at 16:52, Juliana Tamizou disse:

Boa tarde.

Em relação as alterações notei a necessidade das seguintes mudanças:

Conforme pode ser observado nos manuais disponíveis no svn o tamanho do nosso número vária de acordo  com a carteira utilizada, portando o correto seria aplicar um tratamento semelhante ao existente no Banco do Brasil por exemplo.

- Para a Carteira 11 (SIMPLES): O Nosso Número é gerado pelo sistema da CAIXA para controle interno, e será composto da seguinte forma: NNNNNNNNNND, onde NNNNNNNNNN = Número Seqüencial D = Dígito Verificador (módulo 11)
Obs.: Para clientes que possuem sistema próprio, preencher o campo com zeros.

- Para a Carteira 12 (Rápida): Nosso Número informado pelo cliente à partir do que foi impresso nos bloquetos, é composto da seguinte forma:
9NNNNNNNNND, onde 9 = Fixo NNNNNNNNN = Número seqüencial D = Dígito Verificador (módulo 11)

4.1.4.6 – NOSSO NÚMERO*:
- Número de identificação do título no Banco. Permite ao Banco e a empresa identificar os dados da cobrança que deram origem ao bloqueto.
- No caso de Cobrança Sem Registro informar 82NNNNNNNN-DV.
- No caso de Cobrança Rápida informar 9NNNNNNNNN-DV.
- Calculo do DV do “Nosso Número” no ANEXO IV.

Não identifiquei no manual o local onde indique que o campo NumeroDocumento possui 73 caracteres.

 

Att.

 

  • 2 semanas depois ...
  • Administradores
Postado

Boa tarde.

Em 08/04/2016 at 14:04, Souza disse:

  NumeroDocumento  := copy(Linha,62,73);//número Documento Retorno antes era 106,25   - Retorno Vilmar

 

Observe que aqui você copia da posição 62, pelos próximos 63 caracteres.

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

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