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

Quantidade de visualizações: 2152 vezes
Em outras dicas dessa seção eu mostrei, passo-a-passo, como calcular o dígito verificador do código do cedente e também o campo livre, juntamente com o seu dígito verificador, para os boletos da Caixa Econômica Federal (Banco 104). Mostrei também nessa seção como calcular o fator de vencimento do boleto. Todos esses dados são essenciais para a montagem do código de barras e da 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 código de barras para a cobrança contém 44 posições dispostas da seguinte forma:

a) Identificação do banco: Será sempre o valor 104, que é o número do banco para a Caixa Econômica;

b) Código da moeda: Será sempre o valor 9 (Real);

c) DV Geral do Código de Barras: Dígito verificador do código de barras que mostro como calcular mais abaixo;

d) Fator de Vencimento: Que já mostrei em dicas anteriores;

e) Valor do Documento: Composto por 10 dígitos, sem pontos nem vírgula;

f) Campo livre e seu dígito verificador: Composto por 25 posições, conforme já calculamos em dicas anteriores.

O cálculo que mostrarei a seguir 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 banco, o código da moeda, o fator de vencimento, o valor do boleto, o campo livre completo e retorna o código de barras, juntamente com o seu dígito verificador, já na posição correta:

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

<?php
  /*
    ATENÇÃO: As função complementares e já vistas em outras
   dicas dessa seção foram omitidas deste código
  */
  
  // função que monta o código de barras
  function montarCodigoBarras($banco, $moeda, $fator,
    $valor, $campoLivre){
	
    // precisamos tratar o valor do título
    $valor = str_replace(".", "", $valor);
    $valor = str_replace(",", "", $valor);
    $valor = sprintf("%010d", $valor);
	
    // código de barras provisório
    $codigoBarras = $banco . $moeda . $fator . 
      $valor . $campoLivre;
	
    echo 'O código de barras provisório é: ' . 
      $codigoBarras . "<br>";
	
    // vamos calcular o dígito verificador
    $dvCodigoBarras = dvCodigoBarras($codigoBarras);
	
    // código de barras completo
    $codigoBarras = $banco . $moeda . $dvCodigoBarras .
    $fator . $valor . $campoLivre;
	
    return $codigoBarras;	
  }
  
  // função que monta o dígito verificador do código
  // de barras
  function dvCodigoBarras($codigoBarras){
    // vamos definir os índices de múltiplicação
    $indices = "4329876543298765432987654329876543298765432";
    // 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($codigoBarras); $i++){
     $soma = $soma + ((int)($codigoBarras[$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) ou igual a 0, o dígito será 1 (um)
    if(($digito > 9) || ($digito == 0)){
      $digito = 1;    
    }
     
    echo 'O DV Geral do Código de Barras é: ' . $digito . '<br>'; 
	 
    return $digito;
  }
  
  // ATENÇÃO: Se você ainda não entende os dados abaixo.
  // revise as dicas anteriores antes de continuar
  $banco = "104";
  $moeda = "9";
  $carteira = "1"; //  
  $emissao = "4"; // cedente
  $nossoNumero = "222333777777777";
  $valor = "321.12"; // sempre duas casas decimais
  $vencimento = "23/08/2006";
  $fator = fatorVencimento($vencimento);
  $nossoNumeroCompleto = $carteira . $emissao . $nossoNumero;
  $cedente = "005507";
  $dvCedente = dvCodigoCedente($cedente);
  $campoLivre = montarCampoLivre($cedente, $dvCedente,
    $nossoNumeroCompleto);
  $codigoBarras = montarCodigoBarras($banco, $moeda, $fator,
    $valor, $campoLivre);

  // vamos mostrar o resultado
  echo "O código de barras oompleto é: " . $codigoBarras;
?>

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

O código de barras provisório é: 1049324200000321120055077222133347777777771
O DV Geral do Código de Barras é: 4
O código de barras completo é: 10494324200000321120055077222133347777777771

Para não deixar o código desta dica muito longo, eu omiti algumas funções, que podem ser facilmente encontradas nas dicas anteriores.

Link para compartilhar na Internet ou com seus amigos:

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

Datas e horas em PHP - Como obter o último dia útil para um determinado mês e ano

Quantidade de visualizações: 92 vezes
Nesta dica veremos como é possível combinar as funções cal_days_in_month(), mktime() e date() para obter o último dia útil de um determinado mês e ano. Se você tiver uma base de dados de feriados municipais, estaduais e federais, você poderá implementar esta funcionalidade facilmente.

Veja o código PHP 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
  $mes = 1; // mês começa em 1
  $ano = 2021;
  // vamos obter a quantidade de dias no mês
  $dias = cal_days_in_month(CAL_GREGORIAN, $mes, $ano);
  $ultimo = mktime(0, 0, 0, $mes, $dias, $ano); 
  $dia = date("j", $ultimo);
  $dia_semana = date("w", $ultimo);
   
  // domingo = 0;
  // sábado = 6;
  // verifica sábado e domingo
  if($dia_semana == 0){
    $dia = $dia - 2; // voltamos para sexta-feira
  }
  
  if($dia_semana == 6){
    $dia--; // voltamos para sexta-feira
  }  

  $ultimo = mktime(0, 0, 0, $mes, $dia, $ano);
  echo "O último dia útil para o mês informado é: " . 
    date("d/m/Y", $ultimo);
?>
  
</body>
</html>

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

O último dia útil para o mês informado é: 29/01/2021


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

Apostila de PHP - Como criar suas próprias funções em PHP

Quantidade de visualizações: 31043 vezes
Uma função é um bloco de código que executa uma determinada tarefa, possivelmente baseado em um conjuntos de valores fornecidos, ou parâmetros, e possivelmente retornando um único valor. Funções permitem a melhora na leitura do código e correção de bugs, visto que blocos de códigos bem testados podem ser reutilizados inúmeras vezes em seus programas.

Antes de continuarmos é bom estar ciente dos diferentes nomes que as linguagens de programação adotam quando o assunto é função. Em Java, funções são chamadas de métodos. Em Delphi, temos funções (function) e procedimentos (procedure). Se uma função em Delphi retorna um valor, ela é chamada de function. Se nenhum valor é retornado, ela é chamada de procedure. Em PHP o nome é função (function) mesmo, não importando se valores são retornados ou não.

Veja um exemplo onde criamos uma função que apenas escreve na página:

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

<?
  // define a função
  function escrever(){
    echo "Observe este texto";
  }
  
  // chama a função
  escrever();
?>

Podemos estender este exemplo e fornecer à função o texto que deverá ser escrito. Veja:

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

<?
  // define a função
  function escrever($texto){
    echo $texto;
  }
  
  // chama a função
  escrever("Observe este texto");
?>

Veja que agora a função possui parâmetros, neste caso a variável local $texto. Assim, ao efetuarmos a chamada nós podemos fornecer um valor (um argumento) a esta função. Vamos progredir escrevendo uma função que soma dois valores:

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

<?
  // define a função
  function somar($valor1, $valor2){
    echo "A soma é: " . ($valor1 + $valor2);
  }
  
  // chama a função
  somar(3, 5);
?>

Para finalizar, vamos escrever uma função que retorna um valor. Veja:

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

<?
  // define a função
  function somar($valor1, $valor2){
    return ($valor1 + $valor2);
  }
  
  // chama a função
  $soma = somar(3, 5);
  echo "O resultado é: " . $soma;
?>

Observe o uso da palavra-chave return para definirmos o valor que será retornado pela função.


PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli)

Como estabelecer uma conexão PHP + MySQL no modo procedimental - Como se conectar ao banco MySQL usando PHP (modo procedural) usando mysqli_connect - Revisado)

Quantidade de visualizações: 7164 vezes
Nesta dica mostrarei como usar a função mysqli_connect da extensão mysqli para efetuar uma conexão PHP + MySQL usando o modo precedimental, ou seja, nada de programação orientada aqui, mas em outras dicas dessa seção você encontrará a forma de conexão orientada a objetos.

Veja um trecho de código completo no qual nos conectamos ao banco de dados MySQL e exibimos uma mensagem indicando o sucesso da operação:

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

<?
  // vamos efetuar a conexão com o banco
  $conexao = mysqli_connect("localhost", "root",
    "osmar1234", "estudos");  

  // conexão efetuada com sucesso?
  if(mysqli_connect_errno()) {
    echo "Não foi possível efetuar a conexão com o MySQL: "
      . mysqli_connect_error();
    // vamos sair daqui
    exit();
  }
  else{
    echo "Conexão efetuada com sucesso.";
    // fecha a conexão
    mysqli_close($conexao);
  }
?>

Este trecho de código foi revisado e testado no PHP 8.


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á 67 usuários muito felizes estudando em nosso site.