Ir para conteúdo
  • Cadastre-se

VEXCOM Sistemas - Valtair

Membros Pro
  • Total de ítens

    22
  • Registro em

  • Última visita

Sobre VEXCOM Sistemas - Valtair

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

VEXCOM Sistemas - Valtair's Achievements

  1. Consegui entender a situação do nosso amigo Leonardo e faz muito sentido a implementação dele Realmente, está correto o que o banco Sicoob informou, que nada muda (em partes) Partimos do principio que nos fontes atuais, o acbrBoleto sempre calcula o digito verificado do nosso numero. O que acontece é que quando é gerado CNAB 240, nós geramos o nosso numero, e o AcbrBoleto calcula o digito verificador do nosso numero, e enviamos para o sicoob através do arquivo CNAB, registra no banco e o processo está correto. Quando é por API, sobre o nosso numero há duas possibilidades 1) Nós informar o nosso numero + digito verificador, igualmente é feito no CNAB240, e que o boleto é registrado no Sicoob exatamente como é enviado. 2) Nós informar '' no campo nosso numero, neste cenário, após o registro no banco, o mesmo retorna o nosso numero, este é o cenário que eles implementaram, não há digito verificador para este caso, apenas o nosso numero, e neste caso não deve calcular o digito verificador, porque se calcular estará errado Fiz uma implementação, e fiz essa validação com boletos de alguns clientes (API e CNAB240) e agora ficou correto. criei a property fpGerarDV no TACBrBancoClass e essa modificação ao gerar o digito verificador function TACBrBancoSicoob.CalcularDigitoVerificador(const ACBrTitulo: TACBrTitulo ): String; var Num, Res :String; i, base, digito : Integer; const indice = '319731973197319731973'; begin Result := ''; if (not GerarDV) then Exit; Result := '0'; Num := PadLeft(ACBrTitulo.ACBrBoleto.Cedente.Agencia, 4, '0') + PadLeft(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente, 10, '0') + PadLeft(trim(ACBrTitulo.NossoNumero), 7, '0'); base := 0; for i := 1 to Length(Num) do base := base + ( StrToInt(copy(Num,i,1)) * StrToInt(copy(indice,i,1)) ); digito := 11-(( base )-( trunc(base/11) * 11)); //(Se o Resto for igual a 0 ou 1 então o DV é igual a 0) if (digito > 9) then digito := 0; Res := IntToStr(digito); Result := Res; { Para o cálculo do dígito verificador do nosso número, deverá ser utilizada a fórmula abaixo: Número da Cooperativa 9(4) – 3009 Código do Cliente 9(10) – cedente Nosso Número 9(7) – Iniciado contagem em 1 Constante para cálculo = 3197 a) Concatenar na seqüência completando com zero à esquerda. Ex.: Número da Cooperativa = 0001 Número do Cliente(cedente) = 1-9 Nosso Número = 21 000100000000190000021 b) Alinhar a constante com a seqüência repetindo de traz para frente. Ex.: 000100000000190000021 319731973197319731973 c) Multiplicar cada componente da seqüência com o seu correspondente da constante e somar os resultados. Ex.: 1*7 + 1*3 + 9*1 + 2*7 + 1*3 = 36 d) Calcular o Resto através do Módulo 11. Ex.: 36/11 = 3, resto = 3 e) O resto da divisão deverá ser subtraído de 11 achando assim o DV (Se o Resto for igual a 0 ou 1 então o DV é igual a 0). Ex.: 11 – 3 = 8, então Nosso Número + DV = 21-8 Memória de Cálculo Coop.(4)|Cliente(10) |Nosso Número(7) 3 0 0 9 0 0 0 0 1 3 6 3 5 2 5 9 3 1 1 5 1 3 1 9 7 3 1 9 7 3 1 9 7 3 1 9 7 3 1 9 7 3 9 0 0 63 0 0 0 0 3 3 54 21 15 2 45 63 9 1 9 35 3 = soma = 335 digito = 11-(( soma )-( resto inteiro (trunc) da divisao da soma por 11 * 11)) digito = 11-(( 335 )-(30*11)) digito = 6 } end; no meu caso isso resolveu para todos os cenários, controlo conforme a property no momento da geração, se é CNAB240 ou API ACBrBoleto.pas ACBrBancoSicoob.pas
  2. Estamos com o mesmo problema Por sorte, estou gravando o boleto PDF que o banco retorna em base 64, ai consegui reimprimir este. Mas para clientes que usam CNAB também está acontecendo, e ai ficou mais difícil resolver, alguém teve alguma solução, ou sabem se já foi submetido alguma solução pelo ACBr ?
  3. Olá a todos, Na impressão do DANFE da NFe e gostaria de saber se é possível ajustar o layout de impressão para que, ao final da lista de itens, sejam impressas as informações adicionais (dados complementares), sem a necessidade de preencher o espaço em branco até o final da página. Alguém poderia me orientar sobre como fazer essa personalização ou se há algum recurso nativo no ACBR que permita essa configuração? Agradeço desde já pela ajuda!
×
×
  • 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...
The popup will be closed in 10 segundos...