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 Nosso Número (Módulo 11) - Boleto Caixa Econômica

Quantidade de visualizações: 2689 vezes
Nesta dica mostrarei, passo-a-passo, como calcular o Dígito Verificador do Nosso Número para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104).

O Nosso Número é o número de identificação do título no Banco. Este número deve ser único nos seus sistemas, pois, sua combinação com o código do cedente o torno único também no sistema bancário. Além disso, é o Nosso Número que permite ao Banco e a empresa identificar os dados da
cobrança que deram origem ao bloqueto.

Na Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro), o Nosso Número é composto de 17 posições, sendo as 02 posições iniciais para identificar a Carteira e as 15 posições restantes são para livre utilização pelo Cedente.
Seu formato é XYNNNNNNNNNNNNNNN-D, onde:
a) X = Modalidade/Carteira de Cobrança (1-Registrada/2-Sem Registro);
b) Y = Emissão do bloqueto (4-Cedente);
c) NNNNNNNNNNNNNNN = Nosso Número (15 posições livres do Cedente);
d) D = Dígito Verificador do Nosso Número calculado através do Modulo 11, conforme código que mostrarei a seguir. Nos boletos e arquivos de remessa da Caixa, o Dígito Verificador do Nosso Número 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 Nosso Número e retorna 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 nosso número
  // e retorna o seu dígito verificador
  function dvNossoNumero($nossoNumero){
    // o nosso número possui mais que 17 dígitos?
    if(strlen($nossoNumero) > 17){
      die("O Nosso Número não pode ter mais que 17 dígitos.");	
    }
	
    // agora vamos definir os índices de multiplicação
    $indices = "29876543298765432";
    // 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($nossoNumero); $i++){
      $soma = $soma + ((int)($nossoNumero[$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;
  }
  
  // vamos calcular o Dígito Verificador do 
  // Nosso Número
  $carteira = "1"; //  
  $emissao = "4"; // cedente
  $nossoNumero = "19";
  // preenche com zeros até completar 15 posições
  $nossoNumero = sprintf("%015d", $nossoNumero);
  $nossoNumeroCompleto = $carteira . $emissao . $nossoNumero;
  $digito = dvNossoNumero($nossoNumeroCompleto);
  echo "O dígito verificador para o nosso número " . 
    $nossoNumeroCompleto . " é: " . $digito;
?>

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

O dígito verificador para o nosso número 14000000000028288 é: 5

Link para compartilhar na Internet ou com seus amigos:

PHP ::: Sistemas Completos com Código Fonte ::: Controle de Estoque

Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades

Quantidade de visualizações: 22953 vezes
Como escrever um Controle de Estoque em PHP e MySQL do zero?

Promoção Relâmpago: Este código fonte está disponível gratuitamente para os apoiadores do site. Chama no WhatsApp +55 (062) 98553-6711 para mais detalhes

Sim, é isso mesmo. Você já imaginou o trabalho que dá criar um sistema de Controle de Estoque do zero? Você já pensou na quantidade de horas de trabalho que isso envolve? Não seria bom já ter boa parte do sistema já desenvolvido e você implementar apenas mais algumas poucas funcionalidades? A resposta está no código fonte que desenvolvemos para você nessa seção.

Comece analisando a imagem a seguir:



Nesta tela inicial podemos ver que o sistema é composto de cadastro de usuários, de categorias de produtos, um cadastro de fornecedores e um cadastro de produtos. Tanto o cadastro de produtos quanto o cadastro de fornecedores permitem inserir imagens, incluindo o recorte de imagens, para deixar todas as imagens com o mesmo tamanho e mesma resolução. Isso é importante, pois permite que qualquer usuário com conhecimento básico de informática consiga escolher uma imagem no computador, fazer o upload, recortar e salvar no diretório de imagens do programa.

Na tela inicial podemos ver também a quantidade de produtos e itens cadastrados no estoque, a quantidade de produtos com estoque zero e estoque mínimo, assim como o investimento feito no estoque, o retorno e a margem de lucro.

O sistema é responsivo?

Sim, por ter sido escrito em Bootstrap, todas as páginas do sistema são responsíveis, ou seja, se adaptam à tela do computador e também do celular. Veja:



Neste código fonte nós usamos o Bootstrap 5, mas você conseguirá, com pouca ou nenhuma modificação, rodá-lo nas versões anteriores. No entanto, como estamos o tempo todo melhorando este código para nossos clientes, é bem provável que teremos versões compatíveis com as novas versões do Bootstrap. Ah, e não se preocupe, todo o código Bootstrap, jQuery, Choise.js, Datatable, e outros scripts necessários estão devidamente colocados nos diretórios do sistema, não havendo a necessidade de baixar nada, nem mesmo usar CDNs.

As telas do sistema obedecem um padrão de design?

Sim, o design das telas é bem consistente, exibindo uma combinação de cores muito agradáveis aos olhos. Veja:



Aqui nós o temos o Cadastro de Usuários do Sistema. Como se pode ver, é possível adicionar uma foto para cada usuário, com a opção de recortar a imagem antes de efetuar o download da mesma. Além disso, os usuários possuem níveis de acesso. O usuário admin possui os maiores privilégios. Os demais usuários podem ter permissões para cadastrar, alterar, excluir, ou somente cadastrar, ou somente visualizar, etc.

O sistema mantém um registro de log para cada ação efetuada. Dessa forma, o admin saberá, com apenas um clique, quem cadastrou, alterou ou excluiu dados do sistema.

Como o sistema controla a entrada e saída de produtos no estoque?

Veja a seguinte imagem:



Aqui nós temos o cadastro dos produtos, assim como suas fotos, as quais o usuário poderá recortar antes de fazer o upload. Note que a entrada no estoque solicita um fornecedor e a lista de produtos que farão parte da entrada. Assim que a entrada no estoque é confirmada, o valor de compra de cada produto é atualizado, assim como seu estoque. Na saída de estoque o sistema verifica se há estoque suficiente para as retiradas.

O sistema é fácil de instalar?

Sim, junto com o código fonte nós adicionamos instruções detalhadas de como criar a base de dados e as tabelas do MySQL. Em seguida você só precisa ajustar o servidor, usuário e senha do banco de dados no arquivo config.php, definir o caminho para os uploads das fotos dos usuários, fornecedores e produtos e executar o index.php. E o melhor de tudo: como apenas alguns "copiar-colar" você adiciona mais funcionalidades ao sistema, tornando-o ainda mais útil.

Como posso obter este código fonte?

Para adquirir este código fonte, me chama no WhatsApp +55 (062) 9 8553-6711 ou no e-mail osmar@arquivodecodigos.com.br. Se necessário podemos combinar e faço a instalação na sua máquina ou no seu domínio. Podemos também combinar as alterações ou a adição de novas funcionalidades.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto PHP do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.

Para quem deseja ver o sistema funcionando antes de fazer o download, colocamos uma demonstração no link abaixo (Usuário "admin" e senha "admin"):

Clique aqui para visualizar a demonstração (Live Demo) desse sistema


PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Arquivos e diretórios em PHP - Como ler o conteúdo de um arquivo uma linha de cada vez usando a função fgets() do PHP

Quantidade de visualizações: 13567 vezes
Este exemplo mostra como ler o conteúdo de um arquivo uma linha de cada vez usando a função fgets() da linguagem PHP. Observe como usamos a função rtrim() para retirar a quebra de linha do final da linha lida.

Eis o código PHP completo para a dica:

----------------------------------------------------------------------
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
  $arquivo = fopen('dados.txt', 'r');
  if(!$arquivo){
    echo 'Não foi possível abrir o arquivo';
  }
  else{
    while(!feof($arquivo)){
      $linha = fgets($arquivo);
      echo rtrim($linha) . "<br>";
    }
  
    fclose($arquivo);
  }
?>

</body>
</html>

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

Esta é a primeira linha do arquivo
Esta é a segunda linha do arquivo
Esta é a terceira linha do arquivo
Esta é a quarta linha do arquivo


PHP ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em PHP - Como calcular Bhaskara em PHP

Quantidade de visualizações: 1031 vezes
Como resolver uma equação do 2º grau usando PHP

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem PHP.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso código PHP vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código PHP. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

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

<?php
  // para executar abra uma janela de comando
  // cmd e dispare o comando abaixo:
  // C:\xampp\php>php c:\estudos_php\estudos.php
   
  // para ler a entrada do usuário
  $entrada = fopen("php://stdin","r");
  
  // vamos pedir para o usuário informar os valores dos coeficientes
  echo "Valor do coeficiente a: ";
  $a = trim(fgets($entrada));
  echo "Valor do coeficiente b: ";
  $b = trim(fgets($entrada));
  echo "Valor do coeficiente c: ";
  $c = trim(fgets($entrada));
  
  // vamos calcular o discriminante
  $discriminante = ($b * $b) - (4 * $a * $c);
    
  // a equação possui duas soluções reais?
  if($discriminante > 0){
    $raiz1 = (-$b + sqrt($discriminante)) / (2 * $a);
    $raiz2 = (-$b - sqrt($discriminante)) / (2 * $a);
    echo "Existem duas raizes: x1 = " . $raiz1 . 
      " e x2 = " . $raiz2;
  }
  // a equação possui uma única solução real?
  else if($discriminante == 0){
    $raiz1 = $raiz2 = -$b / (2 * $a);
    echo "Existem duas raizes iguais: x1 = " . $raiz1 .
      " e x2 = " . $raiz2;
  }  	
  // a equação não possui solução real?
  else if($discriminante < 0){
    $raiz1 = $raiz2 = -$b / (2 * $a);
    $imaginaria = sqrt(-$discriminante) / (2 * $a);
    echo "Existem duas raízes complexas: x1 = " . $raiz1 .
      " + " . $imaginaria . " e x2 = " . $raiz2 . " - " . $imaginaria;
  }  
?> 

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1 e x2 = -3


Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

O aço no edifício

A estrutura de estabilização da moldura estrutural da edificação da figura abaixo, que se caracteriza pelo fato de não possuir amarrações diagonais nem paredes de cisalhamento para assegurar a estabilidade lateral, pode ser chamada de:



A) Estrutura contraventada.

B) Moldura amarrada excentricamente.

C) Moldura resistente a momentos.

D) Paredes de cisalhamento.

E) Nenhuma das alternativas anteriores.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Topografia

Azimute e Rumo

FGV-2015 - No lançamento do projeto geométrico de uma estrada, o topógrafo levantou que o azimute do ponto 10 para o 11 foi de 254º 22' 26''. Nesse caso, o rumo foi de:

A) 54º 22' 26'' S

B) 54º 22' 26'' NW

C) 74º 22' 26'' SW

D) 74º 22' 26'' N

E) 105º 3' 3'' SW
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Água Fria: Reservatórios

Um reservatório é dimensionado com diversos componentes que auxiliam na manutenção e limpeza do mesmo. Sobre os componentes acessórios de um reservatório é correto afirmar:

A) A tubulação extravasora deve ter o mesmo diâmetro da tubulação de alimentação do reservatório.

B) A tubulação de limpeza deve estar posicionada acima da saída da distribuição predial.

C) Em pequenas edificações, com reservatórios de 500 litros, não é necessária a instalação de tubulação de limpeza.

D) A tubulação extravasora deve jogar a água em local visível para alertar sobre o extravasamento do reservatório.

E) É obrigatória a instalação de registro na saída da tubulação extravasora.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

A linguagem JavaScript diferencia letras maiúsculas de letras minúsculas (case-sensitive)?

A) Sim

B) Não
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em AutoCAD Civil 3D

Survey Points e COGO Points

Em relação aos Survey Points e COGO Points, qual das afirmações abaixo é VERDADEIRA?

A) Survey points podem ser editados na janela Properties.

B) Cogo points são exibidos na aba Settings.

C) Survey points são exibidos tanto na aba Prospector quanto na aba Survey.

D) Survey points são exibidos somente na aba Prospector.

E) Cogo points são exibidos apenas na aba Survey.
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á 45 usuários muito felizes estudando em nosso site.