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 montar o campo livre do código de barras juntamente com o seu dígito verificador (Módulo 11) - Boleto Caixa Econômica

Quantidade de visualizações: 1298 vezes
Em outras dicas dessa seção eu mostrei, passo-a-passo, como calcular o dígito verificador do código do cedente para os boletos da Caixa Econômica Federal (Banco 104). O código do cedente, com o seu dígito verificador, e o nosso número do título são essenciais para a montagem do campo livre, usado tanto no código de barras quanto na linha digitável do boleto. Em caso de dúvidas, revise as demais dicas. Prossiga somente se você estiver bem seguro quanto aos conhecimentos anteriores.

Na Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro), o Campo Livre contém 25 posições dispostas da seguinte forma:

a) Código do Cedente, composto de 6 dígitos;

b) DV do Código do Cedente;

c) Nosso Número ? Seqüência 1: 3ª a 5ª posição do Nosso Número;

d) Constante 1 Posição: 1ª posição do Nosso Numero: Tipo de Cobrança (1-Registrada / 2-Sem Registro);

e) Nosso Número ? Seqüência 2: 6ª a 8ª posição do Nosso Número;

f) Constante 2 Posição: 2ª posição do Nosso Número: Identificador da Emissão do Bloqueto (4-Cedente);

g) Nosso Número ? Seqüência 3: 9ª a 17ª posição do Nosso Número;

h) DV do Campo Livre: Dígito Verificador do Campo Livre, calculado através do Modulo 11, conforme código que mostrarei também nessa dica. Nos boletos e arquivos de remessa da Caixa, o Dígito Verificador do Campo Livre admite 0 (zero), diferentemente do DV Geral do Código de Barras (que também mostro como calcular em dicas dessa seção).

O cálculo que mostrarei a seguir é 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 apresentado.

Dito isso, veja o código PHP completo para uma função que recebe o Código do Cedente e o Nosso Número e retorna o Campo Livre com 24 posições. Em seguida o código chama outra função para calcular o dígito verificador, totalizando as 25 posições:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php
  /*
    A implementação da função dvCodigoCedente() está
    na dica Boleto Bancário PHP - Como calcular o
    Dígito Verificador do Código do Cedente 
    (Módulo 11) - Boleto Caixa Econômica  
  */	
  
  // função que recebe o campo livre
  // e retorna o seu dígito verificador
  function dvCampoLivre($campoLivre){
    // agora vamos definir os índices de múltiplicação
    $indices = "987654329876543298765432";
    // 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($campoLivre); $i++){
     $soma = $soma + ((int)($campoLivre[$i])) * 
       ((int)($indices[$i])); 
    }
    
    // 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;
  }
  
  // monta as 25 posições do campo livre
  function montarCampoLivre($cedente, $dvCedente,
    $nossoNumeroCompleto){
	
    // muita atenção às subtrings. Revise e revise
    $campoLivre = $cedente . $dvCedente . 
      substr($nossoNumeroCompleto, 2, 3) . 
      substr($nossoNumeroCompleto, 0, 1) .
      substr($nossoNumeroCompleto, 5, 3) .
      substr($nossoNumeroCompleto, 1, 1) .
      substr($nossoNumeroCompleto, 8, 9);
	  
    // agora vamos calcular o dígito verificador do
    // campo livre
    $dvCampoLivre = dvCampoLivre($campoLivre);  
	
    return $campoLivre . $dvCampoLivre;  
  }
  
  // ATENÇÃO: Se você ainda não entende os dados abaixo,
  // revise as dicas anteriores antes de continuar
  $carteira = "1"; //  
  $emissao = "4"; // cedente
  $nossoNumero = "222333777777777";
  $nossoNumeroCompleto = $carteira . $emissao . $nossoNumero;
  $cedente = "005507";
  $dvCedente = dvCodigoCedente($cedente);
  
  // agora vamos montar as 24 posições do campo livre
  $campoLivre = montarCampoLivre($cedente, $dvCedente,
    $nossoNumeroCompleto);

  // vamos mostrar o resultado (25 posições)
  echo "O campo livre completo é: " . $campoLivre;
?>

Ao executar este código PHP nós teremos o seguinte resultado:

O campo livre completo é: 0055077222133347777777771

Para não deixar o código desta dica muito longo, eu omiti a função dvCodigoCedente() está na dica Boleto Bancário PHP - Como calcular o Dígito Verificador do Código do Cedente (Módulo 11) - Boleto Caixa Econômica.

Link para compartilhar na Internet ou com seus amigos:

PHP ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHP

Quantidade de visualizações: 8470 vezes
Em algumas situações precisamos fornecer um objeto de uma classe para um método de outra classe ou mesmo uma simples função PHP. Nesta dica eu mostro como isso pode ser feito. Note que, ao receber o objeto da classe no método ou função, todas as alterações feitas no objeto serão refletidas no objeto original, ou seja, objetos de classe são automaticamente passados por referência em PHP. Eis o código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php
  // classe Cliente com duas variáveis privadas e seus
  // correspondentes métodos mutatórios e acessórios
  class Cliente{
    private $nome;
    private $email;

    public function setNome($nome){
      $this->nome = $nome;
    }

    public function getNome(){
      return $this->nome;
    }

    public function setEmail($email){
      $this->email = $email;
    }

    public function getEmail(){
      return $this->email;
    }
  }

  // vamos criar um novo objeto da classe Cliente
  $c = new Cliente;
  $c->setNome("Osmar J. Silva");
  $c->setEmail("osmar@arquivodecodigos.com.br");

  // vamos agora passar este objeto para uma função PHP
  imprimirCliente($c);

  // e aqui está a função que recebe o objeto da classe Cliente
  // e exibe o valor de suas variáveis
  function imprimirCliente($cliente){
    echo "Nome: " . $cliente->getNome() . "<br>
      E-Mail: " . $cliente->getEmail(); 
  }
?>

Ao executar este código teremos o seguinte resultado:

Nome: Osmar J. Silva
E-Mail: osmar@arquivodecodigos.com.br


PHP ::: Dicas & Truques ::: Data e Hora

Datas e horas em PHP - Como adicionar horas a uma data usando a função mktime() do PHP

Quantidade de visualizações: 82 vezes
Nesta dica veremos como é possivel usar a função mktime() da linguagem PHP para adicionarmos uma determinada quantidade de horas a uma data. Veja que obtemos a data e hora atual, acrescentamos 15 horas e então exibimos a nova data e hora.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  echo "Agora é: " . date("d/m/Y - H:i:s") . "<br>";
  $proxima_data = mktime(date("H") + 15, date("i"), 
    date("s"), date("m"), date("d"), date("Y"));
  echo "Daqui a 15 horas será: " . 
    date("d/m/Y - H:i:s", $proxima_data);
?>
 
</body>
</html>

Ao executar este código PHP nós teremos o seguinte resultado:

Agora é: 28/03/2021 - 17:08:44
Daqui a 15 horas será: 29/03/2021 - 08:08:44


PHP ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Como usar funções e variáveis globais em PHP

Quantidade de visualizações: 38567 vezes
Por padrão, variáveis definidas a nível de página, ou seja, variáveis globais, não podem ser acessadas a partir de uma função. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?
  // variável global
  $usuario = "Osmar";
  
  function exibir(){
    echo $usuario; // acessa a variável gloal
  }
  
  // chama a função
  exibir();
?>

Ao executar este exemplo teremos o seguinte resultado:

Notice: Undefined variable: usuario in 
xxx/estudos.php on line 6


Para contornar este problema, temos que empregar a palavra-chave global seguida pelo nome da variável global que queremos acessar. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?
  // variável global
  $usuario = "Osmar";
  
  function exibir(){
    // permite acesso à variável global
    global $usuario;
	
    echo $usuario; // acessa a variável gloal
  }
  
  // chama a função
  exibir();
?>

Ao executarmos o código novamente, percebemos que o resultado é o esperado. Outra forma de acessar variáveis globais a partir de uma função é usando $GLOBALS. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?
  // variável global
  $usuario = "Osmar";
  
  function exibir(){
    echo $GLOBALS['usuario']; // acessa a variável global
  }
  
  // chama a função
  exibir();
?>



Desafios, Exercícios e Algoritmos Resolvidos de PHP

Veja mais Dicas e truques de PHP

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.