sexta-feira, 4 de abril de 2008

Calculadora de salários

Primeiramente cuidado ao copiar os códigos aqui, essa pqp de blogger acha que é inteligente e fica mudando o que eu escrevo achando que é HTML, como não tem tag code, não tem como eu evitar alguns erros

Um bom profissional é aquele que sempre se atualiza, sabendo disto estou fazendo um curso de PHP, é verdade rsrs! Então já viu né exercicios bobinhos, dai resolvi postar aqui pra galera que quer aprender junto

Bom vamos a um exercício básico de aplicação do PHP que pode ser usada em um sistema de uma empresa, uma calculadora de salários. O exercício proposto no curso era apenas fazer uma calculadora com 3 condições de descontos, no entanto dei uma pequena incrementada, vamos ao que interessa:

Proponho que antes de ler as explicações abaixo leiam o código na imagem e tentem interpretar. Preste atenção pois quem não presta atenção se ferra...

Explicando:

Primeira condicional: formulário

if ($_POST["enviado"] == "sim") {
//conteudo
}

está condicional serve para verificar se o formulario foi enviado ou não, dessa forma podemos fazer com que a área de resultados apenas apareca quando solicitada

Varriavel salario

$salario = $_POST["salario"]; // Pega valor
str_replace(",", ".", $salario); // Substitui . por virgula

No PHP virgula é representada por pontos, logo poderá vir um ponto na string salario se vindo direto do banco de dados, ou mesmo o usuário pode cismar de digitar , invés de virgulas por isso uasamos a função str_replace ou seja "string_replace". A sintaxe é a seguinte

str_replace("[substituto]", "[caractere a ser substituido]", [varriavel ou string onde esta o tal caractere]);

Varriavel personalizado

$personalizado = $_POST["personalizado"]; // Serve para pegar se o desconto é personalzado ou não

Segunda condicional: salários

if ($salario < vtdesconto =" 4;" tkdesconto =" 5;" irdesconto =" 6;"> 401 and $salario <= 600) { // Multiplicadores de descontos dos que recebem até 600 $VtDesconto = 6; $TkDesconto = 7; $IrDesconto = 8; } elseif ($salario > 600) {
// Multiplicadores de descontos dos que recebem mais que 600
$VtDesconto = 8;
$TkDesconto = 9;
$IrDesconto = 11;
}

Essa condicional testa o valor do salário e aplica os mutiplicadores de cada um dos seus descontos:

Vt = Vale Tranporte
Tk - Ticket
Ir = Imposto

Porque os multiplicadores são estes valores? lembra da formula de porcetagem que vc aprendeu lá na quarta serie:

% = valor * porcentagem / 100

os mutiplicadores sao as porcetagens de cada condição

Como não existe salário (legalmente) abaixo de R$ 400,00 se o valor digitado for menor que 399 retorna erro.

Obs: lembra que eu falei pra prestar a atenção? se você leu até aqui é pq está prestando então vou te contar um segredo... tem um erro no código pronto e na imagem a condicional que retorna o erro esta abaixo das outras e assim não funciona, coloque a condicional de erro acima das outras.

Terceira condicional: Personalizado

Verifica se os valores foram personalizados e se sim muda os descontos para os que o usuario digitou:

if ($personalizado == "Calcular") {
// Multiplicadores de descontos personalizados
$VtDesconto = (int)$_POST["vtDesconto"];
$TkDesconto = (int)$_POST["tkDesconto"];
$IrDesconto = (int)$_POST["irDesconto"];
}

O (int) serve pra converter o valor em numero inteiro caso o usuário digite 1,3 o sistema entederá 1.

Condicional quarta: calculo

A condicinal verifica se os valores dos descontos realmente são numeros inteiros e efetua os calculos se nao retorna erro

if (is_integer($VtDesconto) and is_integer($TkDesconto) and is_integer($IrDesconto)) {
$vtDescontoValor = ($salario * $VtDesconto) / 100;
$tkDescontoValor = ($salario * $TkDesconto) / 100;
$irDescontoValor = ($salario * $IrDesconto) / 100;
} else {
print "Valor de desconto em formato inválido!";
}

Total do salário

$totalSalario = $salario - $vtDescontoValor - $tkDescontoValor - $irDescontoValor;

Não precisa explicar isso né?!

Agora é só imprimir

print "

Salário: R$ " . str_replace(".", ",", $salario) . "
";
print "Desconto de vale transporte: R$ " . str_replace(".", ",", $vtDescontoValor) . "
";
print "Desconto de ticket refeição: R$ " . str_replace(".", ",", $tkDescontoValor) . "
";
print "Desconto de Imposto de Renda: R$ " . str_replace(".", ",", $irDescontoValor) . "
";
print "
Total: R$ " . str_replace(".", ",", $totalSalario) . "

";

[ Download do código ]