[Tut/Release] MwSt Rechner

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Tut/Release] MwSt Rechner

      Ohne groß drum rum zu reden.
      Hier (ursprünglich für Bloody) für alle
      zum PhP lernen ein wenig Code.

      Aufgabe des Programms (soweit es funzt,
      konnte es nicht testen ^^) ist den MwSt-
      Satz bzw den Betrag ohne MwSt auszuweisen.

      PHP-Quellcode

      1. <html>
      2. <head>
      3. <title>MwSt Rechner</title>
      4. </head>
      5. <body>
      6. <?
      7. //---------------------\\
      8. // MwSt Calculator \\
      9. // 2009 By Tsakuya \\
      10. //---------------------\\
      11. // Hier MwSt Betrag in 0.xx (für xx%) Eintragen
      12. $fltMwSt = 0.19;
      13. // Wenn's was zu holen gibt, hol's dir.
      14. $dblBetrag = str_replace(",", ".", $_POST['betrag']);
      15. //Check, ob schon etwas eingegeben wurde:
      16. if (is_numeric($dblbetrag) && $dblbetrag > 0)
      17. {
      18. $dblOhneMwSt = $dblBetrag * (1 - $fltMwSt);
      19. $dblMwSt = $dblBetrag - $dblOhneMwSt;
      20. //Dann Ausgabe mit , und € (19,95€)
      21. echo "Betrag ohne MwSt: " . str_replace(".", ",", round($dblOhneMwSt, 2)) . "€<br>";
      22. echo "MwSt Anteil: " . str_replace(".", ",", round($dblMwSt, 2)) . "€<br><br>";
      23. }
      24. //Check ob die Variable einen Numerischen Wert hat:
      25. if(!is_numeric($dblbetrag))
      26. {
      27. echo "Betrag nicht Numerisch! Bitte geben Sie einen positiven, numerischen Betrag an!<br>";
      28. }
      29. //Wenn die Variable leer ist fordere den User auf was einzugeben:
      30. if(empty($dblbetrag))
      31. {
      32. echo "Bitte geben Sie einen Betrag ein und klicken auf Abschicken<br>";
      33. }
      34. ?>
      35. <!-- Erläuterung zum Umgang mit dem Programm: -->
      36. <br>
      37. Beträge nur in Zahlen mit , getrennt,<br>
      38. z.B. 19,95<br><br>
      39. <!-- Formular zur Eingabe des Werts: -->
      40. <form action='mwst.php' method='post'>
      41. <input type='text' name='betrag'>&nbsp;
      42. <input type='submit' value='abschicken'><br><br>
      43. </form>
      44. </body>
      45. </html>
      Alles anzeigen


      Wichtig ist, dass die Datei mwst.php heisst, da sonst das Formular
      nichtmehr zu sich selbst zurückfindet. xD

      Hoffe es funktioniert, wie gesagt bin grad auf der arbeit und habs
      mal eben im notepad runtergeschrieben so wie ich's für richtig halte.

      Falls noch jemand die funktion zum aufrunden der Beträge (2 nachkommastellen)
      kennt möge er doch bitte ergänzen, hab sie grad nicht im kopf
      und jetzt würde unten bei den ergebnissen 15.93419344€ rauskommen xD

      Mfg,
      Tsakuya
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Soo =)
      Hab dann mal was zum kritisieren <.<
      Als erstes das EVA. Wieso mixt du PHP und HTML durcheinander?^^
      Lass doch erstmal PHP ran und tu anschließend das HTML Formular rein.

      Die Problematik mit dem Punkt und Komma würde außerdem garnicht auftreten würde man das Komma durch den Punkt von PHP ersetzen lassen.

      Außerdem gibts die PHP Funktion is_numeric() um zu prüfen ob dass was du ihm gibst wirklich eine Zahl ist. Das erübrigt sich zwar weil PHP sowieso nicht mit Strings rechnen kann ( bzw. kann es schon aber nicht unter diesen umständen) aber des sauberen bzw. logischen Codes wegen sollte man das schon prüfen lassen.
      Vllt sollte man noch überprüfen ob die eingegebene Nummer positiv ist oder nicht und dementsprechend Error Messages ausgeben.
      Du kannst die auf-die-zu-rundenen Nachkommastellen als Parameter der Funktion round mitgeben z.B. round($randominteger,2) schon rundet er dir das auf 2 Nachkommastellen :)

      Wenn ich das Script mal intensiver durchgehen würde, würden mir sicher noch mehr Sachen auffallen. Aber das is halt jetzt das was mir beim einmaligen drüberlesen aufgefallen ist.

      Also da gibts noch einiges zu machen und ich würd mich über eine überarbeitete Version freuen ;-)
      Wenn du es als tut released hast dann würde ich doch evtl. noch mehr Dinge kommentieren :P

      Lg,
      Luna
    • *gg sieht doch schonmal viel besser aus ^.^

      elseif(!is_numeric($dblbetrag))
      {
      echo "Bitte geben Sie einen positiven, numerischen Betrag an!";
      }


      das elseif kannste eigentlich weglassen und am Ende als else dranhängen. Da du ja schon in der eigentlichen If-Abfrage den check auf numeric hast, ist das Teil automatisch false sobald die EIngabe keine numerische ist und er springt sofort zum nächsten else/elseif block. Deshalb einfach ganz am Ende als else dranhängen. Oder noch besser du separierst es. Also entweder machst du aus dieser obigen elseif nur ein else und aus der nächsten elseif:


      elseif(empty($dblbetrag))
      {
      echo "Bitte geben Sie einen Betrag ein und klicken auf Abschicken";
      }


      nur ein if, so werden beide Fehlermeldungen ausgegeben notfalls, wenn aber eine Bedingung True ist dann wird eben nur eine Ausgegeben.

      Hau noch das komplette PHP Script oben hin, also alles was PHP is gnadenlos an den Anfang der Datei, erst danach das HTML. ANsonsten Top umgesetzt wie ich`s gesagt habe :P

      Lg,
      Lunatic
    • Soo hier mal ne "leicht" verbesserte Version des Mwst Rechners ^.^
      Wer will kann sich da ja mal durchschnacken.

      PHP-Quellcode

      1. <?
      2. //Kleine Funktion zur Ersetzung eines Punktes in ein Komma
      3. function replacedot($string){
      4. $return_val = str_replace(".", ",", $string);
      5. return $return_val;
      6. }
      7. //Kleine Funktion um die Nachkommastellen zu überprüfen
      8. function checkfloats($var) {
      9. $parts = explode(".",(string)$var);
      10. if(count($parts)!=2) return 0;
      11. else return strlen($parts[1]);
      12. }
      13. //Kleine Funktion um zu übeprüfen ob überhaupt etwas vor den Nachkomma stellen steht
      14. function checkprefloats($var){
      15. if(preg_match("/[0-9]+\.[0-9]+/",$var) ) return true;
      16. else return false;
      17. }
      18. //Festlegen des MWst Satzes in &
      19. $mwst = 0.19;
      20. if(isset($_POST['php_submit'])){ //Überprüfen ob der Submit button gedrückt wurde
      21. $usr_input = str_replace(",",".",$_POST['betrag']); //Übertragen der Usereingabe in eine PHP Variable
      22. $error = array(); //Erstellen eines Error Arrays
      23. if(!isset($usr_input) || empty($usr_input))
      24. $error[] = "Bitte gib einen Wert an";
      25. if(!is_numeric($usr_input))
      26. $error[] = "Der eingegebene Wert ist keine Zahl";
      27. if(checkfloats($usr_input) > 2)
      28. $error[] = "Der eingegebene Wert hat mehr als zwei Nachkommastellen";
      29. if($usr_input < 0)
      30. $error[] = "Der eingegebene Wert ist negativ";
      31. if(!checkprefloats($usr_input))
      32. $error[] = "Der eingegebene Wert hat keinen Wert vor dem Komma";
      33. if (count($error) != 0){ //Wenn das Array das die Errors zählt nicht 0 ist gebe die Errors aus
      34. foreach($error as $err_val){ //Foreach Schleife zur Ausgabe der Errors
      35. echo "<span style=\"color: red;\">".$err_val."</span> <br/>";
      36. }
      37. }
      38. else //Ansonsten gebe den MWST Satz aus
      39. {
      40. echo "Hallo";
      41. $no_mwst = $usr_input * (1 - $mwst);
      42. $mwst_val = $usr_input - $no_mwst;
      43. //Dann Ausgabe mit , und € (19,95€)
      44. echo "Betrag ohne MwSt: " . replacedot(round($no_mwst, 2)) . "€<br \>";
      45. echo "MwSt Anteil: " . replacedot(round($mwst_val, 2)) . "€<br \><br \>";
      46. }
      47. }
      48. ?>
      49. <html>
      50. <head>
      51. <title>MwSt Rechner</title>
      52. </head>
      53. <body>
      54. <!-- Erläuterung zum Umgang mit dem Programm: -->
      55. <br>
      56. Beträge nur in Zahlen mit , getrennt,<br>
      57. z.B. 19,95<br><br>
      58. <!-- Formular zur Eingabe des Werts: -->
      59. <form action='' method='post'>
      60. <input type='text' name='betrag'>&nbsp;
      61. <input type='submit' value='abschicken' name='php_submit'><br><br>
      62. </form>
      63. </body>
      64. </html>
      Alles anzeigen


      Is btw halbwegs getestet ich das war nur ne 5 min Arbeit deshalb hab ich nich viel dran rumgebastelt

      Lg
      Luna