Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z obliczeniami
Forum PHP.pl > Forum > PHP
Czesław
Witam!!

Mam problem z wygenerowaniem w locie wartości, które mają byc obliczeniem opartym na innej znanej liczbie. Otóż z bazy danych pobierany jest rekord wynagrodzenie_brutto i na jego podstawie muszę obliczyc wynagrodzenie netto przechodząc przez wszystkie realne księgowe etapy. Na wyświetlonej stronie ma byc widac wszystko: składki zdrowotne, podatek itp. Jak się za to zabrac??

Jeżeli chodzi o pobieranie z bazy czy też wyświetlanie jakiś rekordów to nie mam z tym problemu ale nie wiem jak w php powstawiac obliczenia matematyczne...

Załóżmy że mam taki kod:

  1. $link = mysql_connect("localhost", "root", "")
  2. or die("Could not connect");
  3.  
  4. $login= $_SESSION['login'];
  5.  
  6. or die("Could not select database");
  7.  
  8.  
  9. $zapytanie = mysql_query("SELECT Pracownik_Nick, Pracownik_Wynagrodzenie, Wynagrodzenie_Brutto
  10. WHERE Pracownik_Wynagrodzenie = ID_Wynagrodzenie
  11. AND Pracownik_Nick = '$login' ; ");
  12.  
  13. while ($row = mysql_fetch_array($zapytanie))
  14.  
  15.  
  16.  
  17. {
  18. echo "<b>Wynagrodzenie brutto: </b>". $row["Wynagrodzenie_Brutto"]." zł"."<br>;
  19.  
  20. I teraz jak tutaj wstawic obliczenia żebym mógł wyświetlic np. że składka zdrowotna to 0,06 * wynagrodznie_brutto
  21. }
  22.  
  23.  
  24.  
  25. mysql_close($link);
JohnnyB
a
  1. echo 0.06*$row["Wynagrodzenie_Brutto"];
nie działa ?

a swoją drogą to straszne zdzierstwo ... całe 6% smile.gif
Czesław
ahhh mój błąd bo miałem inną składnie zapytania niż ta co wkleiłem i mi tam nie pasowały znaki ".", pomyślałem że to zbyt proste żeby mogło byc prawdziwe biggrin.gif

DZIĘKI BARDZO!!


To może przy okazji zapytam o inną rzecz również związaną z tym tematem. Będzie tam jeszcze taki dodatek jak wynagrodzenie_stażowe i mam odgórne polecenie że to ma byc zmienna która automatycznie aktualizuje się w czasie. Czyli np co rok dodaje 1% dodatku stażowego. Domyślam się że to trzeba wklepac już na poziomie tworzenia tabeli ale jak?? Jeżeli możecie jakoś pokierowac gdzie tego szukac to będę wdzięczny smile.gif
JohnnyB
  1. SELECT timestampdiff(year,data_zatrudnienia,now()) AS staz;


zwróci aktualny staż pracy w latach ... jeśli masz date_zatrudnienia ... i dobrze ustawiony zegar smile.gif
Czesław
Przepraszam że odświeżam stary temat, ale nadal walczę z tym projektem i musiałem wrócic do tego stażowego.

Chce aby data zatrudnienia była wyciągana dla konkretnego użytkownika który właśnie ma otwartą sesję, dlatego zrobiłem tak:

$temp = $row["Zatrudnienie_Data"];

$zap = mysql_query("SELECT timestampdiff(year,'$temp',now()) AS staz;");


Może mi ktoś powiedziec co tutaj jest nie tak?? Bo walczę już z tym kilka godzin i nic nie wychodzi... Nie mam pojęcia co zrobic dalej żeby to wyświetlic normalnie jako cyfra na stronie internetowej ;/

Naprawdę nikt nie potrafi mi pomóc??

Poniżej daję kod w którym próbuję coś wykombinowac na dwóch wpisanych "na sztywno" datach, też nie wiem jak to zrobic... Chodzi mi o to, że różnica między datami to 2 lata i w takiej postaci liczbę chciałbym wyświetlic na ekranie. Decelowo tam mają byc inne daty ale najpierw chciałbym dowiedziec się jak to zrobic.

  1. while ($row = mysql_fetch_array($zapytanie))
  2.  
  3.  
  4. {
  5.  
  6.  
  7. [u]$roznica = mysql_query("SELETC TIMESTAMPDIFF(year, '2008-02-11' , '2010-02-22') As staz ;");[/u]
  8.  
  9. echo "<b>Wynagrodzenie brutto: </b>". $row["Wynagrodzenie_Brutto"]." zł";
  10. echo "<br><b>ZUS: </b>";
  11. $ZUS= 0.1952*$row["Wynagrodzenie_Brutto"] + 0.06*$row["Wynagrodzenie_Brutto"] + 0.0245*$row["Wynagrodzenie_Brutto"];
  12. echo number_format($ZUS,2)." zl";
  13. echo "<br><b>Podstawa do opodatkowania: </b>";
  14. $podstawa= $row["Wynagrodzenie_Brutto"] - $ZUS;
  15. echo number_format($podstawa,2)." zl";
  16. echo "<br><b>Skladka zdrowotna: </b>";
  17. $skladka= 0.0775*$podstawa + 0.0125*$podstawowa;
  18. echo number_format($skladka,2)." zl";
  19. echo "<br><b>Zaliczka na podatek: </b>";
  20. $zaliczka= 0.18*$podstawa - 0.0775*$podstawa;
  21. echo number_format($zaliczka,2)." zl";
  22. echo "<br><b>Fundusz pracy: </b>";
  23. $fundusz= $podstawa*0.0245;
  24. echo number_format($fundusz,2)." zl";
  25. echo "<br><b>Wynagrodzenie netto: <u>";
  26. $netto=$podstawa- $zaliczka- $skladka- $fundusz;
  27. echo number_format($netto,2)." zl</u></b>";
  28.  
  29.  
  30.  
  31. }
  32.  
  33.  
  34.  
  35. mysql_close($link);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.