| Você está aqui: PHP ::: Boletos Bancários, Arquivos de Remessa e Retornos do Banco ::: Caixa Econômica Federal - Banco 104 | 
| Boleto Bancário PHP - Como calcular o Dígito Verificador do Código do Cedente (Módulo 11) - Boleto Caixa EconômicaQuantidade de visualizações: 1438 vezes | 
| Nesta dica mostrarei, passo-a-passo, como calcular o Dígito Verificador do Código do Cedente para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104). No momento que escrevo essa dica, o Código do Cedente é um número composto por seis dígitos, que identifica a empresa no banco. Em geral esse número é fornecido pelo gerente da conta mediante a assinatura de um contrato ou convênio. Recentemente a Caixa introduziu o código de cedente com 7 dígitos. No entanto, não tive a oportunidade de encontrar um cliente com tal código. Se for o seu caso, verifique com a equipe de suporte da sua agência sobre o procedimento adotado. As informações que obtive são de que o cálculo continua sendo apenas com os seis dígitos, mas não descobri se são as seis primeiras posições ou as últimas. Se algum leitor do site souber mais a respeito, pode me enviar mensagens que atualizo essa dica. O cálculo que mostrarei é baseado no Módulo 11 e está de acordo com as instruções do Manual de Leiaute de Arquivo Eletrônico Padrão CNAB 240 - Cobrança Bancária Caixa - SIGCB - Versão 67.118 v024 micro e Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro). Tenha certeza de verificar sua versão do manual antes de usar o código abaixo. O Dígito Verificador do Código do Cedente não é usado nos cálculos da linha digitável nem do código de barras. Ele é usado somente no campo "Agência/Código cedente" do boleto bancário. Porém, é importante saber efetuar o seu cálculo corretamente, pois a homologação dos boletos e arquivos de remessa dependem dessa verificação. Dito isso, veja o código PHP completo para uma função que recebe o código do cedente e retorna o seu dígito verificador: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<?php
  // função que recebe o código do cedente
  // e retorna o seu dígito verificador
  function dvCodigoCedente($cedente){
    // o código do cedente possui mais que 6 dígitos?
    if(strlen($cedente) > 6){
     die("O código do cedente não pode ter mais que 6 dígitos.");	
    }
	
    // primeiro vamos remover os espaços do número do cedente
    $cedente = trim($cedente);
    // agora precisamos adicionar os zeros necessários
    // para completar 6 posições
    $cedente = sprintf("%06d", $cedente);
    // agora vamos definir os índices de múltiplicação
    $indices = "765432";
    // e aqui a soma da multiplicação coluna por coluna
    $soma = 0;
     
    // fazemos a multiplicação coluna por coluna agora
    for($i = 0; $i < strlen($cedente); $i++){
     $soma = $soma + ((int)($cedente[$i])) * 
       ((int)($indices[$i])); 
    }
    
    // Obs.: Quando o Total da Soma for MENOR que o quociente (no
    // caso 11), pular o 3º PASSO, ou seja, o Total da Soma deverá ser
    // diminuído diretamente do quociente, obtendo-se o DV como
    // resultado. 
    if($soma < 11){
      $digito = 11 - $soma;	
    }
    else{
      // obtemos o resto da divisão da soma por onze
      $resto = $soma % 11;
     
      // subtraímos onze pelo resto da divisão
      $digito = 11 - $resto;  	
    }
     
    // atenção: Se o resultado da subtração for
    // maior que 9 (nove), o dígito será 0 (zero)
    if($digito > 9){
      $digito = 0;    
    }
     
    return $digito;
  }
  
  // vamos calcular o dígito verificador do código do
  // cedente
  $codigoCedente = "005507";
  $digito = dvCodigoCedente($codigoCedente);
  echo "O dígito verificador para o código do cedente " . 
    $codigoCedente . " é: " . $digito;
?>
Ao executarmos este código PHP nós teremos o seguinte resultado: O dígito verificador para o código do cedente 005507 é: 7 | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Desafios, Exercícios e Algoritmos Resolvidos de PHP | 
| Veja mais Dicas e truques de PHP | 
| Dicas e truques de outras linguagens | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 





