Quer aprender Delphi for PHP?

Caros amigos delphianos, estão com dificuldades em encontrar um bom material sobre Delphi for PHP? Visite a Comunidade Delphi so PHP e veja algumas notícias sobre as novas tendências desta ferramenta. Lá você vai encontrar dicas, downloads, artigos, videos e muito mais sobre o Delphi for PHP. Para se cadastrar é muito simples, rápido e seguro. Clique aqui e seja o mais novo membro da Comunidade Delphi so PHP e bons estudos.

No mais até a próxima.


sábado, 4 de outubro de 2008

Retornando o abono salarial.

Esta é uma função para calcular de modo progressivo um abono (de uma folha de pagamento, por exemplo) sem cometer injustiça. Digamos que todos os funcionários que ganham até R$ 299,99 recebam um abono de R$ 50,00 e acima deste valor, um abono de R$ 30,00.


Se não aplicarmos a fórmula, poderá acontecer que, quem ganha, por exemplo, R$ 290,00 receberá R$ 340,00 (e o correto seria ganhar R$ 324,00) passando a ganhar mais de que quem ganhava R$ 300,00, pois este terá apenas um abono de R$ 30,00, recebendo R$ 330,00. A função a seguir corrige estas distorções e pode ser aplicada num banco de dados para diversas faixas salariais:


function Abono (S, F, A1, A2: Double) : Double;
begin
If S>=F then
begin
Result:=S+A2
end
else
begin
If S>F-A1 then
Result:=(100-(((F-S)/A1)*100))*A2/100+F
else
Result:=S+A1
end;
end;

Onde S = Salário (No nosso exemplo R$ 290,00 ou R$ 300,00).
F = Faixa do Abono (No nosso exemplo R$ 300,00).
A1 = 1º Abono (Valor mais alto, no nosso exemplo R$ 50,00).
A2 = 2º Abono (Valor mais baixo, no nosso exemplo R$ 30,00).
Result = Retorno da função com o calculo do novo salário.

Para utilizar basta chamar a função passando as variáveis ou campos do banco de dados exatamente como na ordem acima. Como exemplo, veja como ficaria o código do botão "Calcular Novo Salário" na interface abaixo:


procedure TForm1.Button1Click(Sender: TObject);
begin
Edit5.Text := FloatToStr(
Abono( StrToFloat(Edit4.Text), //Salário
StrToFloat(Edit1.Text), //Faixa
StrToFloat(Edit2.Text), //Aumento 1
StrToFloat(Edit3.Text) //Aumento 2
)
); //FloatToStr();
end;

Nenhum comentário:

Parceria