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
    Hallo @all!

    Mein Threadtitel ist sicher nicht wirklich treffend, ich habe aber keine Ahnung wie ich das Kind hier nennen soll. Also bitte Torsten, ggf. den Titel editieren. Danke!

    Ich möchte eine Abfrage erstellen, Dir mir folgendes Ergebnis liefert.
    Ich möchte im Backend abfragen:

    1. Erfolgt Lieferung außerhalb der EU? (Steuerfrei)
    2. Erfolgt Lieferung innerhalb der EU? (Nicht steuerfrei)
    3. Erfolgt Lieferung innerhalb der EU? (Steuerfrei weil ...)
    Ich möchte also nur aus den Bestellungen auslesen, ob die Lieferung außerhalb der EU geht und damit prinzipiell steuerfrei ist. Das macht ja der Shop, ich will nur die Infos haben um das weiter zu verarbeiten ...
    Es soll aber unterschieden werden, wenn die Lieferung innerhalb der EU zum Beispiel steuerfrei ist ...

    Ich hoffe man(n) versteht mich?
    Ich möchte keinen Code, ich möchte lediglich einen Ansatz, welche Variable oder was weiß ich aus dem Shop nutzen kann, die eh im Backend verfügbar wäre.

    Ich hoffe Ihr könnt mir helfen ... (und meinen Kauderwelch verstehen ...) :-D

    DANKE!

    Gruß
    Oli

    Linkback: https://www.modified-shop.org/forum/index.php?topic=17475.0

    Matt

    • Experte
    • Beiträge: 4.241
    "delivery_country_iso_code_2" in der Tabelle "orders" liefert dir die gewünschte Information, ob EU oder nicht. Und wenn ein Eintrag mit der class 'ot_tax' in "orders_total" dazu vorhanden ist, dann war's mit Steuer, ansonsten nicht.

    Olinew

    • Gast
    Danke Matt! *Daumenhoch*

    Grüße!
    Oli

    Olinew

    • Gast
    Gibt es manchmal eine fertige Variable (config), in der die EU Staaten mit "ISO_CODE 2" gespeichert sind und die ich im Rahmen der Verarbeitung gleich verwenden könnte?
    Um die "ISO_CODES" einer aktuellen Bestellung mit einer Vorgabe vergleichen zu können, würde ich gern ein array haben was schon in der DB oder dem System vorhanden ist. Beispiel Steuerzone EU oder so. Da müssten ja alle Länder mit "ISO_CODE"? drin sein oder? Ich möchte nämlich nicht das array selbst füllen, sondern irgendwie immer direkt aus der Konfig des Shops laden. Ändere ich dort z.b. ein Land (NEU in der EU z.b. ...) dann vergißt man schnell das hart codierte array in seinem Snippet und dann ...

    Vielleicht kann mir ja mal noch einer unter die Arme greifen ...  :mhhh:

    Danke schon mal vorab!

    Grüße!
    Oli

    Matt

    • Experte
    • Beiträge: 4.241
    Alle Einträge mit "geo_zone_id" 5 in "zones_to_geo_zones" sind in der EU. ISO-Code bekommst du über einen "JOIN" mit "countries".

    Olinew

    • Gast
    Danke für Deine Hilfe Matt. Ich muß aber leider zugeben, dass ich bisher keinen Erfolg hatte, mir in der "/admin/print_order.php" die Abfrage zur Steuer zu erstellen um diese dann im Template zu benutzen.
    Ich kann machen was ich will, ich bekomme es nicht hin. Meine Abfragen funktionieren nicht. Die Sache mit der "delivery_country_iso_code_2" funktionierte auf Anhieb. An die "geo_zone_id" Sache mit einem "JOIN" über "countries" zu "zones_to_geo_zones" wird mich dann wohl endgültig in den Wahnsinn treiben.

    Ich geb's auf ... hab mir da wohl zu viel vorgenommen ...

    Grüße!
    Oli

    Matt

    • Experte
    • Beiträge: 4.241
    Auch wenn du keine fertigen Lösungen wolltest:

    Code: SQL  [Auswählen]
    SELECT c.countries_iso_code_2 FROM countries c, zones_to_geo_zones ztgz WHERE ztgz.geo_zone_id=5 && ztgz.zone_country_id = c.countries_id

    Olinew

    • Gast
    Was bedeutet das "ztgz"?  :nixweiss:

    Platzhalter für "zones_to_geo_zones"?

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    Platzhalter für "zones_to_geo_zones"?

    Ja. Die Angabe hinter den eigentlichen Tabellennamen (c, ztgz) sind Aliase, die man dann benutzen kann, sonst müsste man jedes Mal die kompletten Tabellennamen vorne weg schreiben, wenn man in mehreren Tabellen gleiche Spaltennamen anspricht (ist im konkreten Fall nicht der Fall, aber Gewohnheit).

    Olinew

    • Gast
    Nochmal zur Abfrage der Steuer ...

    In der "/admin/print_order.php" wird ja mit:

    Code: PHP  [Auswählen]
    $order_total_query=xtc_db_query("SELECT
                          title,
                          text,
                          class,
                          value,
                          sort_order
                                            FROM "
    .TABLE_ORDERS_TOTAL."
                                            WHERE orders_id='"
    .$_GET['oID']."'
                                            ORDER BY sort_order ASC"
    );                             

            $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'];
            }

    bereits eine Abfrage der "ot_tax" in der Tabelle "orders_total" gemacht.

    Kannst Du mir aus der kalten sagen, wie ich mir ein Smarty mit dem Ergebnis füllen kann, ob in dieser Bestellung Steuer enthalten ist oder nicht?
    Ich habe die kuriosesten Versuche gestartet, leider immer ohne Erfolg.

    Matt

    • Experte
    • Beiträge: 4.241
    Code: PHP  [Auswählen]
    $order_total_query=xtc_db_query("SELECT
        title,
        text,
        class,
        value,
        sort_order
      FROM "
    .TABLE_ORDERS_TOTAL."
      WHERE orders_id='"
    .$_GET['oID']."'
      ORDER BY sort_order ASC"
    );                              
     
      $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);
        }
      }

    Möglicherweise musst du die Bezeichnung der Variablen ändern, mit der Smarty instanziert wurde. Keine Ahnung, wie die in der Datei heißt.

    Olinew

    • Gast
    Hallo Matt,

    DANKE für Deine Hilfe. Leider funktioniert das ganze auch nicht. Ich hatte dies bereits auch so an der Stelle wie Du versucht:

    Code: PHP  [Auswählen]
    if ($order_total_values['class']='ot_tax') $smarty->assign('TAX_YES', 'yes');

    Im Template wollte ich außerhalb der "foreach" Schleife dann abfragen:

    Code: PHP  [Auswählen]
    {if $TAX_YES !='yes'}keine Steuer{/if}

    Habe ich was übersehen? Vergessen? Hat jemand einen Tipp?

    Grüße!
    Oli

    franky_n

    • Experte
    • Beiträge: 4.950
    Hi olinew,

    mach mal bei dem if auch zwei ==

    Code: PHP  [Auswählen]
    if ($order_total_values['class'] == 'ot_tax')

    Viele Grüße

    Franky

    Olinew

    • Gast
    Hallo Franky,

    leider auch hier kein Erfolg.
    Ich war eigentlich der Meinung, dass $order_total_values['class'] ein array ist und wollte daher abfragen:

    Code: PHP  [Auswählen]
    if (in_array("ot_tax",$order_total_values['class']))

    Aber auch das bringt kein Ergebnis.

    Gruß!
    Oli

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo olinew,

    dann würde ich das aber hinter der "while" Schleife machen mit:

    Code: PHP  [Auswählen]
        if (in_array("ot_tax",$order_total)) {
          $smarty->assign('TAX_YES', 'yes');
        }

    Viele Grüße

    Franky
    Managed Server
    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