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: DPD Versandmodul

    MarcoJ1980

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    DPD Versandmodul
    am: 18. November 2013, 17:48:49
    Guten Tag,

    wir haben ein Problem mit den Mehrwertsteuern des DPD Versandmodul.

    Wir hatten damals das Versandmodul Table als DPD Versandmodul umgeändert und die Funktionen angepasst.
    Es funktioniert alles wirklich klasse so wie man es braucht. Leider wenn man im Admin die Steuerklasse auf Standardsatz stellt, rechnet er den Netto Preis nicht in Brutto um. Hier der Code:

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: table.php 1002 2005-07-10 16:11:37Z mz $

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(table.php,v 1.27 2003/02/05); www.oscommerce.com
       (c) 2003         nextcommerce (table.php,v 1.8 2003/08/24); www.nextcommerce.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/



      class table {
        var $code, $title, $description, $icon, $enabled;


        function table() {
          global $order;


          $this->code = 'table';
          $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS;
          $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);

          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_ZONE > 0) ) {
            $check_flag = false;
            $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
            while ($check = xtc_db_fetch_array($check_query)) {
              if ($check['zone_id'] < 1) {
                $check_flag = true;
                break;
              } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
                $check_flag = true;
                break;
              }
            }

            if ($check_flag == false) {
              $this->enabled = false;
            }

          }
        }


        function quote($method = '') {
          global $order, $shipping_weight, $shipping_num_boxes,$xtPrice;

          if (MODULE_SHIPPING_TABLE_MODE == 'price') {
            $order_total = $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total());
          } else {
            $order_total = $shipping_weight;
          }

          $table_cost = preg_split("/[:,]/" , MODULE_SHIPPING_TABLE_COST); // Hetfield - 2009-08-18 - replaced deprecated function split with preg_split to be ready for PHP >= 5.3
          $size = sizeof($table_cost);
          for ($i=0, $n=$size; $i<$n; $i+=2) {
            if ($order_total <= $table_cost[$i]) {
              $shipping = $table_cost[$i+1];
              break;
            }
          }

          if (MODULE_SHIPPING_TABLE_MODE == 'weight') {
            $shipping = $shipping * $shipping_num_boxes;
          }
     // BOF Inselzuschlag
        if (substr_count(MODULE_SHIPPING_TABLE_ISLAND_POSTCODES,",") != 0) {
            $inseln = explode(",",MODULE_SHIPPING_TABLE_ISLAND_POSTCODES);
            if (in_array($order->delivery['postcode'], $inseln) ){
              $title = MODULE_SHIPPING_TABLE_TEXT_WAY . '<br />zzgl. '.MODULE_SHIPPING_TABLE_ISLAND_COST.' EUR Inselzuschlag';
              $cost = $shipping + MODULE_SHIPPING_TABLE_ISLAND_COST;
            } else {
              $title = MODULE_SHIPPING_TABLE_TEXT_WAY;
              $cost = $shipping;
            }
          } else {
            $title = MODULE_SHIPPING_TABLE_TEXT_WAY;
            $cost = $shipping;
          }
              //EOF Inselzuschlag
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => $title,
                                                         'cost' => $cost)));

          if ($this->tax_class > 0) {
            $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
          }

          if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

          return $this->quotes;
        }

        function check() {
          if (!isset($this->_check)) {
            $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_STATUS'");
            $this->_check = xtc_db_num_rows($check_query);
          }
          return $this->_check;
        }

        function install() {
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_TABLE_STATUS', 'True', '6', '0', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ALLOWED', '', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_COST', '25:8.50,50:5.50,10000:0.00', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_TABLE_MODE', 'weight', '6', '0', 'xtc_cfg_select_option(array(\'weight\', \'price\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_HANDLING', '0', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_SORT_ORDER', '0', '6', '0', now())");
               xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ISLAND_POSTCODES', '18565,25859,25845,25846,25847,25849,25863,25869,25938,25929,25930,25931,25932,25933,25939,25940,25941,25942,25946,25952,25953,25954,25955,25961,25962,25963,25964,25965,25966,25967,25968,25969,25970,25980,25981,25982,25983,25984,25985,25986,25992,25993,25994,25996,25997,25998,25999,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25997,25845,26465,26474,26486,26548,26571,26579,26757,27498,83209,83256', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ISLAND_COST', '14.00', '6', '0', now())");

        }

        function remove() {
          xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }

        function keys() {
          return array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_ISLAND_POSTCODES', 'MODULE_SHIPPING_TABLE_ISLAND_COST','MODULE_SHIPPING_TABLE_COST', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING','MODULE_SHIPPING_TABLE_ALLOWED', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER');
        }
      }
    ?>

    Die Frage ist wo wird die Steuer berechnet ?? hier im Versandmodul oder woanders ??
    Ich finde den Fehler leider nicht.

    Gruß Marco

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

    MarcoJ1980

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    Re: DPD Versandmodul
    Antwort #1 am: 19. November 2013, 11:43:00
    Hab die Ursache gefunden, warum das Versandmodul die Mehrwertsteuer nicht in Brutto umgerechnet hat.
    Wenn ich im Backend unter Land/Steuern in Steuersätze gehe, muss ich in der Kategorie    Steuerzone EU-Ausland die 19% eingeben.
    Ich lasse das erstmal so obwohl ich gerne das unter Steuerzone EU habe möchte.

    Das Versandmodul Table was ich in DPD umgeändert habe funktioniert somit ohne Probleme. Selbst die Inselzuschläge und die Staffelung mit den Gewichten funktioniert.

    Gruß Marco

    MarcoJ1980

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    Re: DPD Versandmodul
    Antwort #2 am: 19. November 2013, 17:37:20
    Es gab doch noch ein Fehler beim Inselzuschlag. Denn er hat ein Inselzuschlag für alle Pakete berechnet.
    Jetzt habe ich die Formel angepasst und nun berechnet er für jedes Paket ein Inselzuschlag.

    Ich Teile euch meine Lösung einfach mal mit.

    Denkt bitte daran das ich für DPD die table.php dafür verwendet habe.

    modified_shop/includes/modules/shipping/table.php
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: table.php 1002 2005-07-10 16:11:37Z mz $

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(table.php,v 1.27 2003/02/05); www.oscommerce.com
       (c) 2003         nextcommerce (table.php,v 1.8 2003/08/24); www.nextcommerce.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/



      class table {
        var $code, $title, $description, $icon, $enabled;


        function table() {
          global $order;


          $this->code = 'table';
          $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS;
          $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);

          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_ZONE > 0) ) {
            $check_flag = false;
            $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
            while ($check = xtc_db_fetch_array($check_query)) {
              if ($check['zone_id'] < 1) {
                $check_flag = true;
                break;
              } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
                $check_flag = true;
                break;
              }
            }

            if ($check_flag == false) {
              $this->enabled = false;
            }

          }
        }


        function quote($method = '') {
          global $order, $shipping_weight, $shipping_num_boxes,$xtPrice;

          if (MODULE_SHIPPING_TABLE_MODE == 'price') {
            $order_total = $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total());
          } else {
            $order_total = $shipping_weight;
          }

          $table_cost = preg_split("/[:,]/" , MODULE_SHIPPING_TABLE_COST); // Hetfield - 2009-08-18 - replaced deprecated function split with preg_split to be ready for PHP >= 5.3
          $size = sizeof($table_cost);
          for ($i=0, $n=$size; $i<$n; $i+=2) {
            if ($order_total <= $table_cost[$i]) {
              $shipping = $table_cost[$i+1];
              break;
            }
          }

          if (MODULE_SHIPPING_TABLE_MODE == 'weight') {
            $shipping = $shipping * $shipping_num_boxes;
          }
     // BOF Inselzuschlag
        if (substr_count(MODULE_SHIPPING_TABLE_ISLAND_POSTCODES,",") != 0) {
            $inseln = explode(",",MODULE_SHIPPING_TABLE_ISLAND_POSTCODES);
            if (in_array($order->delivery['postcode'], $inseln) ){
              $title = MODULE_SHIPPING_TABLE_TEXT_WAY . '<br />zzgl. '.MODULE_SHIPPING_TABLE_ISLAND_COST.' EUR Inselzuschlag';
              $cost = $shipping + (MODULE_SHIPPING_TABLE_ISLAND_COST * $shipping_num_boxes) ;
            } else {
              $title = MODULE_SHIPPING_TABLE_TEXT_WAY;
              $cost = $shipping;
            }
          } else {
            $title = MODULE_SHIPPING_TABLE_TEXT_WAY;
            $cost = $shipping;
          }
              //EOF Inselzuschlag
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => $title,
                                                         'cost' => $cost)));

          if ($this->tax_class > 0) {
            $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
          }

          if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

          return $this->quotes;
        }

        function check() {
          if (!isset($this->_check)) {
            $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_STATUS'");
            $this->_check = xtc_db_num_rows($check_query);
          }
          return $this->_check;
        }

        function install() {
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_TABLE_STATUS', 'True', '6', '0', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ALLOWED', '', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_COST', '25:8.50,50:5.50,10000:0.00', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_TABLE_MODE', 'weight', '6', '0', 'xtc_cfg_select_option(array(\'weight\', \'price\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_HANDLING', '0', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_SORT_ORDER', '0', '6', '0', now())");
               xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ISLAND_POSTCODES', '18565,25859,25845,25846,25847,25849,25863,25869,25938,25929,25930,25931,25932,25933,25939,25940,25941,25942,25946,25952,25953,25954,25955,25961,25962,25963,25964,25965,25966,25967,25968,25969,25970,25980,25981,25982,25983,25984,25985,25986,25992,25993,25994,25996,25997,25998,25999,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25997,25845,26465,26474,26486,26548,26571,26579,26757,27498,83209,83256', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ISLAND_COST', '11.76', '6', '0', now())");

        }

        function remove() {
          xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }

        function keys() {
          return array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_ISLAND_POSTCODES', 'MODULE_SHIPPING_TABLE_ISLAND_COST','MODULE_SHIPPING_TABLE_COST', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING','MODULE_SHIPPING_TABLE_ALLOWED', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER');
        }
      }
    ?>

    Gruß Marco
    8 Antworten
    5416 Aufrufe
    08. April 2010, 11:22:44 von supercat1510
    2 Antworten
    3270 Aufrufe
    10. März 2012, 20:08:32 von Z3PP
    5 Antworten
    3049 Aufrufe
    03. November 2014, 17:33:12 von paisley
    11 Antworten
    5490 Aufrufe
    22. Juni 2016, 22:02:08 von harrygrey
               
    anything