Boleto bancário ( Fácil e Simples ) - Parte 1
      Vamos utilizar as novas funções refazendo o Campo1
Bem olhando nosso script no geral:
    
  
    
    
  // Campo1 // Variáveis usadas no Campo1: // $CodBanco = 001 // $CodMoeda = 9 // $NossoNum ( Apenas os 5 primeiros numeros '88888') $NossoNumCampo1 = substr($NossoNum, 0,5); // Pegando os 5 primeiros $Partes = $CodBanco.$CodMoeda.$NossoNumCampo1; // Chamando as funções $Soma = Soma($Partes); $Dv = Modulo($Soma); $Campo1 = ComporCampo($Partes,$Dv);
Bem olhando nosso script no geral:
$CodBanco = '001';
$CodMoeda = '9';
$Carteira = '18';
$Agencia = '6666';
$NumConta = '77777';
$Convenio = '888888';
$DataVenc = '09/06/2005';
$ValorDoc = '53.26';
$SeuNum = '22222'; 
$NossoNum = $Convenio.$SeuNum;
function ComporCampo($Partes,$Dv)
{
    $Parte1 = substr($Partes, 0,5);
    $Parte2 = substr($Partes, 5);
    $Campo = $Parte1.'.'.$Parte2.$Dv;
    return $Campo;
}
function Modulo($Soma)
{
    $Resultado = floor($Soma/10);
    $Resto = $Soma - ($Resultado * 10);
    $Dv = 10-$Resto;
    if ($Dv == '10') {
        $Dv = '0'; 
    }
        
    return $Dv;
}
function Soma ($Partes)
{
    $Quant = strlen($Partes);
    $Mod10 = '21212121212'; // - Sentindo daqui para lá começando por 2 
    for( $i = $Quant; $i >= 1; $i--){
    	$X = $Partes[$Quant-$i]*$Mod10[$i];
    	if($X > 9) { 
            $X = $X-9; 
        }
    	$Soma += $X;
    }
    return  $Soma;
}
// Campo1
// Variáveis usadas no Campo1:
// $CodBanco = 001
// $CodMoeda = 9
// $NossoNum ( Apenas os 5 primeiros numeros '88888')
$NossoNumCampo1 = substr($NossoNum, 0,5);
$Partes = $CodBanco.$CodMoeda.$NossoNumCampo1;
$Soma = Soma($Partes);
$Dv = Modulo($Soma);
$Campo1 = ComporCampo($Partes,$Dv);
                  Para os que estão com problema no DV de cada campo.
Esta parte está incorreta.
if($X > 9){ $X = $X-9; } <-- esta parte aqui está incorreta
Não se deve diminuir 9 caso o numero for maior que 9, e sim, somar os digitos.
por exemplo, se for 14, soma-se 1+4 =5
Espero ter ajudado.
Um abraço.
              
      Esta parte está incorreta.
if($X > 9){ $X = $X-9; } <-- esta parte aqui está incorreta
Não se deve diminuir 9 caso o numero for maior que 9, e sim, somar os digitos.
por exemplo, se for 14, soma-se 1+4 =5
Espero ter ajudado.
Um abraço.
        16/10/2006 10:36am
        (~19 anos atrás)
      
    
                  Consegui adaptar para a CEF mudando apenas a geração do campo <nosso número> no resto ficou ótimo.
              
      
        27/05/2006 6:45pm
        (~19 anos atrás)
      
    
                  Olá pessoal preciso urgente, alguém já conseguiu fazer funcionar ...
Grato ...
      Grato ...
        18/05/2006 6:00am
        (~19 anos atrás)
      
    
                  Olá Maykson e o resto do pessoal,
Estou a procura do script para convênios de 7 dígitos. Procurei em diversos lugares, em vão. Se alguém tiver, gostaria que por favor me fornecesse.
Agradeço
      Estou a procura do script para convênios de 7 dígitos. Procurei em diversos lugares, em vão. Se alguém tiver, gostaria que por favor me fornecesse.
Agradeço
        02/05/2006 5:03am
        (~19 anos atrás)
      
    
                  Gostaria de usar o phpBoleto, mas não consigo fazer funcionar com a Caixa Economica, a linha digitável e o código de barras são recusados, alguém poderia me enviar já o script pronto para a CEF.
pacheco@apeknet.com.br
(e-mail com espaço ilimitado para receber arquivos e é também o MSN)
      pacheco@apeknet.com.br
(e-mail com espaço ilimitado para receber arquivos e é também o MSN)
        18/04/2006 7:41pm
        (~19 anos atrás)
      
    
                  Alguem tem esse script:
Convenio de 7 Digitos com Nosso Numero 10 DIGITOS
que nem o:
http://www.geraboleto.com/geraboleto/demo/bb-teste.php
Sera que alguem pode me ajudar com pelo menos o manual de como o boleto com 7 digitos deve ser?
São so algumas mudanças no script!!!
Abraços
Cesar
msn: cdw@brturbo.com
      Convenio de 7 Digitos com Nosso Numero 10 DIGITOS
que nem o:
http://www.geraboleto.com/geraboleto/demo/bb-teste.php
Sera que alguem pode me ajudar com pelo menos o manual de como o boleto com 7 digitos deve ser?
São so algumas mudanças no script!!!
Abraços
Cesar
msn: cdw@brturbo.com
        20/03/2006 11:07am
        (~19 anos atrás)
      
    
                  ainda nao consegui o principal!... fazer funcionar! ele gera tudo ok! mas quando vou fazer o pagamento do boleto, ele diz no sistema que o codigo do numero não é valido!
comparei o boleto deste sistema com o do proprio sistema do banco do brasil e verifiquei q ele ta gerando no campo 2 (4 e 7 digitos) quanto no boleto so tem q ter 4 e 6 no campo 2! alguem pode me ajudar?
contato@paulochinelate.com.br
      comparei o boleto deste sistema com o do proprio sistema do banco do brasil e verifiquei q ele ta gerando no campo 2 (4 e 7 digitos) quanto no boleto so tem q ter 4 e 6 no campo 2! alguem pode me ajudar?
contato@paulochinelate.com.br
        10/02/2006 10:04am
        (~20 anos atrás)
      
    
                  Olá pessoal.
Achei excelente este artigo e com certeza me será muito útil.
Gostaria de dar uma pequena colaboração mostrando a função que fiz para obter o fator de vencimento usando os cálculos já presentes no script:
function FatorVenc($DataVenc)
{
$DataVenc = explode('/',$DataVenc);
$DiaVenc = $DataVenc[0];
$MesVenc = $DataVenc[1];
$AnoVenc = $DataVenc[2];
$DataInic = explode('/','07/10/1997');
$DiaInic = $DataInic[0];
$MesInic = $DataInic[1];
$AnoInic = $DataInic[2];
$DataInic = mktime(0,0,0,$MesInic,$DiaInic,$AnoInic);
$DataVenc = mktime(0,0,0,$MesVenc,$DiaVenc,$AnoVenc);
$FatorVenc = $DataVenc - $DataInic; //Fator de vencto. em seg.
$FatorVenc = ceil($FatorVenc/86400); //Fator de vencto. em dias
return $FatorVenc;
}
Para chamar a função:
$FatorVenc = FatorVenc($DataVenc);
Abraços.
      Achei excelente este artigo e com certeza me será muito útil.
Gostaria de dar uma pequena colaboração mostrando a função que fiz para obter o fator de vencimento usando os cálculos já presentes no script:
function FatorVenc($DataVenc)
{
$DataVenc = explode('/',$DataVenc);
$DiaVenc = $DataVenc[0];
$MesVenc = $DataVenc[1];
$AnoVenc = $DataVenc[2];
$DataInic = explode('/','07/10/1997');
$DiaInic = $DataInic[0];
$MesInic = $DataInic[1];
$AnoInic = $DataInic[2];
$DataInic = mktime(0,0,0,$MesInic,$DiaInic,$AnoInic);
$DataVenc = mktime(0,0,0,$MesVenc,$DiaVenc,$AnoVenc);
$FatorVenc = $DataVenc - $DataInic; //Fator de vencto. em seg.
$FatorVenc = ceil($FatorVenc/86400); //Fator de vencto. em dias
return $FatorVenc;
}
Para chamar a função:
$FatorVenc = FatorVenc($DataVenc);
Abraços.
        31/10/2005 7:38am
        (~20 anos atrás)
      
    
                  Ela pega o $Partes do começo pro fim...
tva com o emsmo problema da raquel borto...
              
      tva com o emsmo problema da raquel borto...
        21/07/2005 4:21pm
        (~20 anos atrás)
      
    


'=================================
Function CalculaDigitoVerifCodBarras(ByVal linhaCalculavel As String)
Dim multiplicador As New Multiplicador ' decartavel
Dim I As Integer = 1
Dim total As Integer = 0
Dim atual As Integer
While I <= 43
atual = CInt(linhaCalculavel.Substring(I - 1, 1))
atual = atual * multiplicador()
total = total + atual
I = I + 1
End While
Dim sobra, digito As Integer
sobra = Math.Ceiling(total Mod 11)
digito = 11 - sobra
Select Case digito
Case Is = 0
digito = 1
Case Is = 10
digito = 1
Case Is = 11
digito = 1
End Select
Return digito
End Function
'====================================
Function multiplicador() As Integer
If multi = 2 Then
multi = 9
Return 9
Else
multi = multi - 1
Return multi
End If
End Function
'====================================
Depois eu tento traduzir para PHP. Abraço