Menu

Preiseingabe mit Komma

Help 2.02
Anonymous
2003-01-28
2003-02-04
  • Anonymous

    Anonymous - 2003-01-28

    Hallo Andreas,

    was muss ich ndern damit ich in der Artikelverwaltung automatisch die Preise mit Kommas eingeben kann.

    Im Vorraus besten Dank
    Jrgen

     
    • Andreas Kansok

      Andreas Kansok - 2003-01-28

      Du wrdest die Frage nicht stellen, wenn das funktionierte ... :-(
      Ich bin schockiert, denn eigentlich soll es ...

      Was geht schief, wenn Du die Angaben mit Komma machst?

      Wahrscheinlich wird der Fehler durch ein fehlendes settype($npreis[$i],"double") ausgelst. Diese Variablentyp-nderung gehrt nach den Austausch von Komma durch Punkt mit ereg_replace. Was nichts wird sind, sind Tausenderpunkte.

      Gru,
      Andreas.

       
    • Anonymous

      Anonymous - 2003-01-28

      Aus Brutto 39,90 werden netto 33.6206896551
      in die wiederum nachdem man den Artikel neu auftruft ergeben 39,00 Euro Brutto.

      Wenn PHPAY gleich die Finanzamtsteuer abzieht das wre nicht so schn.

      Gruss Jrgen
      (Bist du gerade fleissig (in 10 Minuten 3 Fragen beantwortet)

       
    • Andreas Kansok

      Andreas Kansok - 2003-01-28

      :-) Ja offenbar ist es der Typenfehler... Wenn PHP einen numerischen Wert verarbeiten soll, nimmt es, was es 'versteht'. In diesem Falle die 39.

      Irgendwo in der admin/item.php fehlt der Aufruf von settype().

      Stichwort Flei: Im Allgemeinen geht es schneller Fragen im Forum zu beantworten und Ratschlge zu geben als selbst zum Texteditor zu greifen und gleichmal ein gebugfixte Datei upzuloaden ... ;-)

      Gru,
      Andreas.

       
    • Peter Lehr

      Peter Lehr - 2003-01-30

      Bei mir funktioniert das mit folgendem Schema:
      (Komma bei Preiseingabe und nderung verwenden)

      Beim Speichern eines neuen Artikels   ($mode=="new")
          $npreis[$i] = ereg_replace(",",".",$npreis[$i]);
          if ($vatvalue=="1") { $npreis[$i] = $npreis[$i]/$vat ; }
          settype($npreis[$i], "double");

      Anzeigen des Nettopreises beim ndern des Artikels  ($chg=="edit)
          $nettopreis_gespeichtert=number_format((round(($price_row[0]),2)),2,",",".");

      Speichern des genderten Preises bei ndern des Artikels ($mode=="edit")
              $npreis[$i] = ereg_replace(",",".",$npreis[$i]);
              settype($npreis[$i], "double");

       
    • Heinz Schuh

      Heinz Schuh - 2003-01-31

      hallo peter,

      knntest du mir die umgeschriebene datei freundlicherweise zusenden? ich bekomme das irgendwie nicht geregelt. vielen dank im voraus.

      gruss, heinz

       
    • Peter Lehr

      Peter Lehr - 2003-02-02

      Hallo Heinz,
      mit meiner item.php kannst du leider nichts anfangen, da sie stark vendert ist und daher mit deiner version nicht laufen wrde.
      Ich zeig dir nochmal die ndereungen, die du per suchen und ersetzen ndern kannst.

      # item.php
      #ndern innerhalb von -----elseif ($mode=="edit") {
      #original:-------------------------------
          while ($ncurID[$i]) {
          if ($vatvalue=="1") { $npreis[$i] = $npreis[$i]/$vat ; }
          $npreis[$i] = ereg_replace(",",".",$npreis[$i]);
          settype($npreis[$i], "double");
          $upd_res = db_query("insert into price values('%','$art', '$langID', '$ncurID[$i]', '1', '$npreis[$i]')"); $i++;
        }
      #gendert:--------------------------------------
          while ($ncurID[$i]) {
          $npreis[$i] = ereg_replace(",",".",$npreis[$i]);
          settype($npreis[$i], "double");
          if ($vatvalue=="1") { $npreis[$i] = $npreis[$i]/$vat ; }
          $upd_res = db_query("insert into price values('%','$art','$langID','$ncurID[$i]','1','$npreis[$i]')"); $i++;
      #------------------------------------------------------------------
      #neu innerhalb von -----if ($mode=="new") {-------
      #original:-------------------
         while ($ncurID[$i]) {
          if ($vatvalue=="1") { $npreis[$i] = $npreis[$i]/$vat ; }
          $upd_res = db_query("insert into price values('%','$new_row[0]', '$langID', '$ncurID[$i]', '1', '$npreis[$i]')") or db_die();

      #gendert-------------------
        while ($ncurID[$i]) {
          $npreis[$i] = ereg_replace(",",".",$npreis[$i]);
          if ($vatvalue=="1") { $npreis[$i] = $npreis[$i]/$vat ; }
          settype($npreis[$i], "double");
          $upd_res = db_query("insert into price values('%','$new_row[0]', '$langID', '$ncurID[$i]', '1', '$npreis[$i]')") or db_die();

       
    • Heinz Schuh

      Heinz Schuh - 2003-02-02

      vielen dank peter,

      hat wunderbar funktionert, ich habe nur noch eine frage: beim anlegen eines neuen artikels wird ja automatisch ein punkt hinter die tausender stelle gesetzt. wenn ich jetzt den artikel ndern will, z.b. nur die menge, wird der preis mit dem punkt hinter der tausender stelle bernommen und setzt sich dann auf  1,38 zurck. weisst du da eine lsung? das wre mein letzter bug, den ich zu beseitigen htte. evtl. knnte ich auf den punkt verzichten

      gruss, heinz

       
      • Andreas Kansok

        Andreas Kansok - 2003-02-02

        Ich mu mich hier mal einmischen: Die Ausgabe fr das Formularfeld wird ja mit number_format() fomatiert. Als letztes Argument wird der Punkt als Tausendertrenner angegeben. Nimm den dort einfach weg, dann sollte es funktionieren.

        Gru,
        Andreas.

        PS: Aus dem langen Thread entnehme ich, da mein Update nicht funktioniert hat - mal abgesehen vom Tausenderpunkt?

         
    • Heinz Schuh

      Heinz Schuh - 2003-02-02

      hallo andreas,

      dein update hat sicher prinzipiell funktioniert, ich hatte nur probleme bei der umsetzung (:-

      aber dafr hat dein letzter tipp einwandfrei geklappt, jetzt funktioniert das perfekt. vielen dank noch mal.

      gruss, heinz

       
    • der Fiede

      der Fiede - 2003-02-04

      Kann mich nur anschlieen, funktioniert wunderbar!

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.