Alberto Mota Postado Abril 8, 2012 Denunciar Share Postado Abril 8, 2012 Prezados colegas, essa semana atravessei uma luta de homologação de boletos do Santander.Foi homologado, mas num dos boletos há algo errado quanto ao calculo do resto.Segui fielmente o manual e graças a uma função do fulvio tudo estava normal.A sequencia é o nosso numero 400000192433 , 12 digitos onde o dv será o 13ºusando pesos de 2 a 9 a soma é 122.Sendo que o resto de 122 dividido por 11 é 1, sem sombra de duvidas.Porem o Banco Santander alega que é 0 e a palavra final é deles.Em qualquer linguagem: access, sql server, excel, vai dar sempre 1.Como eles conseguiram encontrar esse dv = 0 ?Ou existe mesmo um erro de calculo no sistema do banco?A divisão não é exata. 122/11 vai dar 11,09090909trabalhando com o inteiro 11 multiplico por 11 = 121portanto 122 - 121 = 1Existe uma solução para esse problema no sql server?Desde já, obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Abril 9, 2012 Denunciar Share Postado Abril 9, 2012 Boa tarde Alberto, Como estão as coisas, tudo bem? Realmente os cálculos estão corretos... mas o que me chamou a atenção foram os pesos de 2 a 9: - Se utilizar desta forma, o resultado será 122 mesmo. - Mas se utilizar sem os pesos, a soma dará 154. Aí o DV será 0 (zero). O ultimo peso será 13. Mas ai... qual está correto? :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alberto Mota Postado Abril 9, 2012 Autor Denunciar Share Postado Abril 9, 2012 (editado) Fulvio, tudo tranquilo.Obrigado por responder.Vou colocar aqui o que está no manual, na íntegra:-------------------------------------------------------------------Nosso NúmeroPara o cálculo, utilizar módulo 11, peso 2 a 9Composição do Nosso Número: NNNNNNNNNNNN D onde:N = Faixa seqüencial de 000000000001 a 999999999999D = Dígito de controle.Exemplo de cálculo do dígito:Supondo-se que: Nosso Número = 566612457800Inverter da direita para a esquerda na vertical.0 X 2 = 0 0 X 3 = 0 8 X 4 = 32 7 X 5 = 35 5 X 6 = 30 4 X 7 = 28 2 X 8 = 16 1 X 9 = 9 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 5 X 5 = 25 Total 229 / 11 = 20 resto = 9 11-9 = 2 Nosso numero final: 56612457800-2 Utilizar o módulo 11 – peso de 2 a 9 - para o cálculo deste DV. Multiplicar da direita para a esquerda, de 2 até 9, até o final do número, reiniciando em 2 se necessário. Somar os resultados obtidos, multiplicar o total da soma por 10 (dez) e dividi-lo por 11 (onze). O resto desta divisão será o digito do controle. Se o resto for igual a 0 (zero), 1 (um) ou 10 (dez) o digito será = 1 (um). -----------------------------------------------------------------------De onde saiu esse 0(zero) ?Segui ao pé da letra e de 20 boletos enviados esse deu problema, o de numero 400000192433 Um abraço. Editado Abril 9, 2012 por Alberto Mota Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Abril 10, 2012 Denunciar Share Postado Abril 10, 2012 Bom dia Alberto, O manual está um pouco complicado mesmo... Estava entendendo tudo, até o momento em que o exemplo é dado: - Soma dos valores, pega o resto da divisão e subtrair de 11. Logo abaixo, a explicação do manual: Somar os resultados obtidos, multiplicar o total da soma por 10 (dez) e dividi-lo por 11 (onze). - No exemplo não foi feito desta forma. Não houve a multiplicação do valor encontrado. Outra explicação: Se o resto for igual a 0 (zero), 1 (um) ou 10 (dez) o digito será = 1 (um). - Isto significa que em nenhum momento haverá dv=0, pois quando houver, será necessário substituí-lo por 1.Parece que as 2 formas de implementação, retornam o mesmo resultado (se for isto, deveriam explicar no manual). Segue script abaixo:SELECT 11-(122 %11) SELECT ((122 *10)%11) Tem como você passar pela crítica algum outro número que tenha o resultado do dv=10? Pode ser isso. Os restos igual a 10 ter o dv igual a 0... Dê uma olhada neste link. O cpf e o titulo eleitor tem esta implementação (O resto=10, o dv=0) http://ghiorzi.org/cgcancpf.htm (para faciliar, procure na página por "O resto 10 será"). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alberto Mota Postado Abril 10, 2012 Autor Denunciar Share Postado Abril 10, 2012 Boa tarde, Fulvio.Bastante confuso esse manual.Houve um boleto que nem enviei, pois iriam dizer que estava errado:O numero é 000000038920A soma dos pesos será 100. No sqlserver o dv encontrado foi 1, 100 / 11 = 9,090909resto = 1 , logo pelo manual 11- 1 = 10e depois se tornará 1 pelo enunciado finalImagino que retornaria por causa das decimais , 090909Mas o mistério continua. Pedi que informassem como foi encontrado o dv = 0 e não tinham como fazer isso.Fulvio, muito obrigado.Vou ver com calma o link que indicou. Qualquer novidade informarei.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Abril 11, 2012 Denunciar Share Postado Abril 11, 2012 De nada Alberto... precisando estamos ai. :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Rocha B. Postado Outubro 18, 2012 Denunciar Share Postado Outubro 18, 2012 (editado) Olá pessoal,Alguns anos depois e aqui estou eu com dificuldades na geração de boletos para o Santander. A documentação que encontrei sobre a geração do Nosso Número e DV foi nesse site: http://boletophp.com.br/Porém, não sei se está atualizada, já procurei bastante algum tipo de manuel fornecido pelo Santander e não encontro.No manual que baixei do site acima tem a seguinte afirmação: FÓRMULA PARA CÁLCULO DO DÍGITO VERIFICADOR NO NÚMERO BANCÁRIO (NOSSO NÚMERO)Exemplo 01O NÚMERO BANCÁRIO é composto por 3 partes;3 (três) dígitos para o número da Agência (constante);7 (sete) dígitos para a numeração sequencial; e1 (um) dígito verificador;Beleza, mas a agência aqui da empresa tem 4 dígitos. E essa parte dos 7 dígitos, tem que ser obrigatoriamente 7 digitos?Estou meio perdido, já pesquisei bastante e não encontro uma solução.OBS: Existe outro sistema que também gera boletos pra mesma empresa, será que isso pode causar algum problema? Pois existe a possibilidade do meu sistema que é novo gerar um 'nosso número' que já tenha sido gerado anteriormente por esse outro sistema.Desde já grato pela atenção, Editado Outubro 18, 2012 por Rafael Rocha B. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Outubro 18, 2012 Denunciar Share Postado Outubro 18, 2012 Boa tarde Rafael, Toda agência bancária possui 4 dígitos. Os 7 dígitos para a numeração sequencial devem ser 7 digitos mesmo. Pode ser: 0000001. A numeração sequencial é importante para a empresa, para seu controle interno. Se quiser 2 sistemas ao mesmo tempo gerando boletos, e não ter dor de cabeça com duplicidades, poderá utilizar a numeração sequencial como identificador. Por exemplo, poderá colocar uma chave única interna do sistema, onde cada transação terá a sua, independente de qual sistema gerar. Se gerar 2 boletas, será do mesmo registro. Caso não queira, coloque um controlador quando a boleta for gerada. Assim não conseguirá gerá-la novamente. Olhe no site do Santander. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Rocha B. Postado Outubro 19, 2012 Denunciar Share Postado Outubro 19, 2012 Em primeiro lugar, obrigado pela atenção fulvio.Consegui entender mais ou menos o que você disse. Bem, um dos sistemas que gera boleto aqui na empresa não me da acesso algum ao código por ser de uma grande empresa, então não sei como eles fazem para gerar o nosso número. Enfim, vou dar um exemplo do nosso número do boleto que os sistemas geram:Sistema 1 (ao qual não tenho acesso ao código)12000070767-8 (pelo o que entendi esse 120 é fixo)Sistema 2 (o que estou desenvolvendo)000000000001-9 Se eu colocar uma numeração fixa no início, por exemplo: 140000000001-9 já elimina totalmente a possibilidade de duplicidade, certo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Outubro 19, 2012 Denunciar Share Postado Outubro 19, 2012 Boa tarde Rafael, No primeiro número: 12000070767-8 Os 4 primeiros números se refere a agência: 1200 Os 7 posteriores números é a empresa que coloca. Você pode colocar o que quiser, pois será um controle seu: 0070767. O ultimo dígito, se chama dígito verificador. Ele é calculado de acordo com os demais números. Ele serve para verificar se a sequência dos 11 primeiros números foram digitados corretamente: 8 Se colocar um número fixo no começo (como no exmeplo o 1400), você estará informando outra agência. Se não tiver controle sobre as numerações geradas, pode começar a sequência dos 7 digitos do fim para o começo. Ao invés de começar com: 0000001, 0000002, ... Começe com: 9999999, 9999998, ... OBS.: vai chegar um momento em que os número passarão a coincidir. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alberto Mota Postado Outubro 22, 2012 Autor Denunciar Share Postado Outubro 22, 2012 Rafael, informe um email para que eu possa enviar o manual do Santander que possuo.Tentarei tambem ajuda-lo na solução do seu problema. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alberto Mota Postado Outubro 23, 2012 Autor Denunciar Share Postado Outubro 23, 2012 102 é cobrança sem registros, ou seja, você não envia um arquivo texto chamado Remessa,receberá apenas do Santander o arquivo retorno, onde o mais importante para vcna quitação é o nosso numero.No Nosso numero não estara contido a agencia e conta corrente.Deverá ter um campo sequencial, a chave primária de sua tabela.São 13 digitos do nosso numero que você pode concatenar com campos que julgar importantes.exemplo: '5' + CAST(dbo.zeros(dbo.TblMovimentacao.seq, 12) AS Varchar) AS NNA função zeros coloca 12 zeros a frente.Se o campo for 150 então será 5000000000150Eu coloco 12 para a chave da tabela que é autonumeração e um numero de identificaçãofixo por se tratar de varias filiais, para que esse numero nunca se repita ao longo do tempo. Espero ter ajudado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 oburegio Postado Fevereiro 20, 2013 Denunciar Share Postado Fevereiro 20, 2013 PEssoal,tambem estou mexendo com o boleto do santander e usei o do phpboleto onde o nosso numero tem 8 digitos.Preciso da versão que tem 12 digitos igual voces comentaram aqui.Voces teriam esse boleto ou teriam como indicar onde consigo pegar?Obrigado pessoal. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Alberto Mota
Prezados colegas, essa semana atravessei uma luta de homologação de boletos do Santander.
Foi homologado, mas num dos boletos há algo errado quanto ao calculo do resto.
Segui fielmente o manual e graças a uma função do fulvio tudo estava normal.
A sequencia é o nosso numero 400000192433 , 12 digitos onde o dv será o 13º
usando pesos de 2 a 9 a soma é 122.
Sendo que o resto de 122 dividido por 11 é 1, sem sombra de duvidas.
Porem o Banco Santander alega que é 0 e a palavra final é deles.
Em qualquer linguagem: access, sql server, excel, vai dar sempre 1.
Como eles conseguiram encontrar esse dv = 0 ?
Ou existe mesmo um erro de calculo no sistema do banco?
A divisão não é exata. 122/11 vai dar 11,09090909
trabalhando com o inteiro 11 multiplico por 11 = 121
portanto 122 - 121 = 1
Existe uma solução para esse problema no sql server?
Desde já, obrigado.
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.