Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Abfrage für externe Weiterverarbeitung, ob Bestellung steuerfrei oder nicht?

    Olinew

    • Gast
    Ne, negativ.

    Mit folgendem Test:

    Code: PHP  [Auswählen]
    if (in_array("ot_tax",$order_total)) {
          $smarty->assign('TAX_Test', '1');
          }else{
          $smarty->assign('TAX_TEST', '0');
        }

    sagt mir die Debug Ausgabe im Template immer TAX_TEST ="0" obgleich ich sowohl Bestellungen mit und ohne Steuer teste ...

    Ich verzweifel bald ...

    Grüße!
    Oli

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Olinew,

    achte bitte auf Groß- und Kleinschreibung!

    Code: PHP  [Auswählen]
    $smarty->assign('TAX_Test', '1');

    sollte wohl heißen:

    Code: PHP  [Auswählen]
    $smarty->assign('TAX_TEST', '1');

    Und Cache auch leeren... nicht das dieses dazwischenfunkt.

    Viele Grüße

    Franky

    Olinew

    • Gast
    Sorry, Tippfehler hier im Thread. Im Snippet stimmt die Schreibweise und auch mit gelöschtem Cache ohne Erfolg.
    Ich verstehe das nicht.

    Grüße!
    Oli

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Olinew,

    dann hilft nur noch die Methode "ausgeben lassen"...

    Dann mach mal nach der "where" Schleife folgendes:

    Code: PHP  [Auswählen]
    echo "<pre>";
    print_r($order_total);
    echo "</pre>";

    und schau Dir an was dort ausgegeben wird...

    Viele Grüße

    Franky

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    mach mal bei dem if auch zwei ==
    [...]

    Das kommt von Copy&Paste. :)

    Sollte mal wer mit Berechtigung auf den Trunk Zugriff haben, dann diesen Bug beheben:

    Code: PHP  [Auswählen]
        if ($order_total_values['class']='ot_total') $total=$order_total_values['value'];

    So, grad mal im Testshop angesehen, durch den o.g. Bug funktioniert das nicht, man muss den also zuerst fixen. Durch den Bug findet eine Zuweisung statt, jeden $order_total_values['class'] ist dann immer 'ot_total', jede nachfolgende Überprüfung auf 'ot_tax' ist folglich "false".

    Code mit Bugfix:

    Code: PHP  [Auswählen]
            $order_total=array();
            while ($order_total_values = xtc_db_fetch_array($order_total_query)) {
            $order_total[]=array(
                  'TITLE' => $order_total_values['title'],
                  'CLASS'=> $order_total_values['class'],
                  'VALUE'=> $order_total_values['value'],
                  'TEXT' => $order_total_values['text']);
        if ($order_total_values['class']=='ot_total') $total=$order_total_values['value'];
        if ($order_total_values['class']=='ot_tax') {
          $smarty->assign('TAX_APPLIED', true);
        }
            }

    Olinew

    • Gast
    Ganz großes Kino Matt! Ich sitze seit gefühlten 10 Tagen an der Sache und sehe den Wald vor lauter Bäumen nicht!  :datz:

    Die Steuerabfrage funzt! Das ist wie Weihnachten!  :-D

    Vielen Dank und Frohes Fest!

    Dickes DANKE und Gruß an alle die mir geholfen haben!

    Oli

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Zusammen,

    warum es jetzt funktioniert, obwohl Matt den gleichen Tipp gibt wie ich ist mir rätselhaft...  :-?

    Das "if" gibt es im Trunk nicht, daher braucht es auch nicht verbessert werden.

    Viele Grüße

    Franky

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    warum es jetzt funktioniert, obwohl Matt den gleichen Tipp gibt wie ich ist mir rätselhaft...  :-?
    [...]

    Du musst den Bug fixen, damit eine Überprüfung danach erfolgreich ist.

    [...]
    Das "if" gibt es im Trunk nicht, daher braucht es auch nicht verbessert werden.
    [...]

    Grad die 1.05 runtergeladen, hat den Bug noch. Wird in keinem der SP gefixt.

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Matt,

    das der erste "if" nicht korrekt funktioniert, hat nichts mit dem 2ten "if" zu tun.
    Wenn Du beim ersten "if" nur ein = machst wird in der Folge immer "true" ausgegeben und das

    Code: PHP  [Auswählen]
    $total=$order_total_values['value'];

    einfach durchgeführt.

    Aber egal ob dieses ausgeführt wird sollte das 2te "if" trotzdem ein Smarty Tag zur Verfügung stellen, denn es wird das Skript ja nicht abgebrochen.

    Naja kann schwerlich ein SP rausbringen um den Fehler zu korrigieren! ;)

    Viele Grüße

    Franky

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    das der erste "if" nicht korrekt funktioniert, hat nichts mit dem 2ten "if" zu tun.
    [...]

    Doch, hat es. Durch das "=" wird eine Zuweisung gemacht und in der Folge wird eine Prüfung auf "ot_tax" nie mehr "true" ergeben, da der Wert immer "ot_total" ist aufgrund des Bugs.

    [...]
    Aber egal ob dieses ausgeführt wird sollte das 2te "if" trotzdem ein Smarty Tag zur Verfügung stellen, denn es wird das Skript ja nicht abgebrochen.
    [...]

    Angebrochen wird es nicht. "true" wird es aber auch nie (s.o.).

    [...]
    Naja kann schwerlich ein SP rausbringen um den Fehler zu korrigieren! ;)
    [...]

    Du meintest der Bug wäre im Trunk nicht, also muss er ja irgendwo in den Downloads behoben sein - ist er aber nicht.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    In r2364:2365 wurde hier ja eine entscheidende Änderung vorgenommen (Benutzung der "order.php" Klasse), wodurch dein Fix ja so gar nicht mehr anwendbar ist.

    Grüße

    Torsten

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Matt,

    [...] Durch das "=" wird eine Zuweisung gemacht und in der Folge wird eine Prüfung auf "ot_tax" nie mehr "true" ergeben, [...]

    Das leuchtet mir dann ein. :)

    Viele Grüße

    Franky

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Muss hier nun noch was im Trunk gefixt werden? :-?

    Grüße

    Torsten

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Torsten,

    nö, da es dieses "if" Konstrukt dort nicht gibt.
    Habe es zumindest in der Datei nicht gefunden und wahrscheinlich wurde es dort bereits anders gelöst.

    Viele Grüße

    Franky

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Naja, wie gesagt:

    In r2364:2365 wurde hier ja eine entscheidende Änderung vorgenommen (Benutzung der "order.php" Klasse), wodurch dein Fix ja so gar nicht mehr anwendbar ist.
    [...]

    Hast du mal in der "/admin/includes/classes/order.php" bzw. "/includes/classes/order.php" geschaut? :-?

    Grüße

    Torsten
    6 Antworten
    1558 Aufrufe
    10. April 2019, 09:12:36 von EhmKah
    4 Antworten
    2613 Aufrufe
    19. November 2012, 20:22:25 von NicoDeluxe
    4 Antworten
    3603 Aufrufe
    23. Juli 2011, 10:57:11 von Phin
    2 Antworten
    1483 Aufrufe
    07. August 2017, 20:06:15 von tele
               
    anything