Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
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: 2089 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 ::: 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: 8423 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 ::: Arrays e Matrix (Vetores e Matrizes)

Como criar vetores em PHP com a construção array() e usando inteiros como chaves

Quantidade de visualizações: 8265 vezes
A linguagem PHP nos permite criar vetores (arrays) e informar os valores inteiros que queremos como chaves, ou seja, não precisamos, obrigatoriamente, iniciar os índices dos elementos em 0.

Veja o código a seguir:

----------------------------------------------------------------------
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
  $linguagens = array(10 => 'Java',
    11 => 'Python', 12 => 'C++');
             
  echo "A linguagem escolhida foi: " . 
    $linguagens[11];
?>
 
</body>
</html>

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

A linguagem escolhida foi: Python


PHP ::: Dicas & Truques ::: Strings e Caracteres

Como transformar uma string em letras minúsculas em PHP usando a função strtolower()

Quantidade de visualizações: 16 vezes
A função strtolower() do PHP pode ser usada quando queremos converter uma palavra, frase ou texto para letras minúsculas.

Veja um exemplo de seu uso:

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

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "PHP? Eu gosto de PHP";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

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

A frase original é: PHP? Eu gosto de PHP
Em letras minúsculas: php? eu gosto de php

Ao executar este código no PHP 8, Windows 10 e codificação do arquivo em ANSI, o resultado da função strtolower() é o esperado, mas somente sem usar acentos e caracteres especiais. Veja:

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

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

Ao executarmos o código novamente nós teremos a seguinte saída:

A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO
Em letras minúsculas: java? nÃo! É de php que eu gosto

Note que as letras acentuadas não foram convertidas para letras minúsculas. Isso aconteceu porque os caracteres acentuados são tratados como caracteres de múltiplos bytes, ou seja, multi-byte chars. A saída, nesse caso, e no PHP 8 (e acredito mais recentes), é usar a função mb_strtolower(). Veja:

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

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = mb_strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

Execute o código novamente e verá que o resultado agora está correto:

A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO
Em letras minúsculas: java? não! é de php que eu gosto

Agora você já sabe o primeiro passo para resolver problemas de acentuação no PHP. Bons estudos.


Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valor = 56.21
print("Valor: %.5d" % valor)

A) Valor: 00056

B) Valor: 21

C) Valor: 00056.21

D) Valor: 56

E) Valor: 6.2100
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Java

Analise o seguinte código Java

public class Estudos {
  public static void main(String[] args) {
    int a = 3;
    System.out.println(++a * 8);
  }
}

Qual é o resultado de sua execução?

A) 24

B) 32

C) 72

D) 25
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Analise o seguinte trecho de código JavaScript

var a = new Array();
a[0] = 12;
a[1] = false;
a[2] = "texto";
a[3] = a;

Qual destas instruções provocará um erro de execução?

A) Linha 3

B) Linha 4

C) Linha 5

D) O código executa sem provocar erros
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

A responsabilidade moral

A ética leva o homem a questionar constantemente suas ações e as atitudes alheias, tentando definir se elas são boas ou más, corretas ou incorretas. Na condição de disciplina, essa ciência se preocupa com a análise das ideias que envolvem a produção do bem e do mal, ou seja, dedica-se aos seus aspectos teóricos. Em tal perspectiva, pode-se afirmar que o conceito de ética se refere a:

A) quando o ser humano não pode falhar.

B) um conjunto de conhecimentos extraídos dos meios de comunicação.

C) um conjunto de conhecimentos extraídos da investigação do comportamento humano.

D) um conjunto de conhecimentos extraídos da investigação da moral.

E) quando o ser humano falha.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética Empresarial e Profissional: Noções Gerais

Com o avanço das tecnologias de comunicação, o acesso às informações foi facilitado, permitindo que as pessoas, onde quer que estejam, acompanhem, praticamente em tempo real, os fatos ao redor do mundo. Assinale a alternativa que contém as ações realizadas pelas empresas diante desse contexto.

A) As empresas estabelecem as convenções coletivas com o objetivo de regulamentar o comportamento dos colaboradores, buscando, dessa forma, evitar problemas que possam afetar sua imagem no mercado.

B) As empresas terceirizam sua mão de obra com o objetivo de que as terceirizadas façam a regulamentação do comportamento dos seus colaboradores.

C) As empresas utilizam a Constituição Federal e as leis vigentes para regulamentar o comportamento dos colaboradores com vistas a evitar problemas que possam afetar sua imagem no mercado.

D) As empresas estabelecem os Códigos de Ética com o objetivo de regulamentar o comportamento dos colaboradores, buscando, dessa forma, evitar problemas que possam afetar sua imagem no mercado.

E) As empresas não se importam com os aspectos comportamentais dos colaboradores fora do ambiente de trabalho.
Verificar Resposta Estudar Cards Todas as Questões

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: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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