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: "inkl. MwSt." unter Versandkosten (v2.0.2.1)

    hhtech

    • Frisch an Board
    • Beiträge: 71
    "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    am: 16. März 2018, 14:38:29
    Hi Leute, ist es irgendwie möglich, sich die Mehrwertsteuer unter den Versandkosten anzeigen zu lassen, mit der Steuer der Versandkosten auch hineingerechnet?

    Habe in der Modulzusammenfassung die Sortierreihenfolge für MwSt. bereits auf den höchsten Wert gesetzt, es erscheint auch unter allem, außer eben den Versandkosten (Deutsche Post). So sieht es gerade aus:

    Zwischensumme:                          6,75 €
    Rabattcode TESTMINUSFIVE:         -5,00 €
    Summe:                                  1,75 €
    inkl. MwSt. 19%:                  0,28 €
    Versandkosten - Versand nach
    DE: (1 x 1.3 kg) (Germany):          6,90 €
    Gesamtsumme:                          8,65 €

    So soll es aussehen:

    Zwischensumme:                          6,75 €
    Rabattcode TESTMINUSFIVE:         -5,00 €
    Summe:                                  1,75 €
    Versandkosten - Versand nach
    DE: (1 x 1.3 kg) (Germany):          6,90 €
    Gesamtsumme:                          8,65 €
    inkl. MwSt. 19%:                  1,38 €

    Kann es von Hand mithilfe der Gesamtsumme berechnen, aber gibt es da nicht einen automatischen Weg, den ich übersehen habe?

    Die Steuer ist in den Versandkosten schon drin (5.80 + Steuer, ist im Modul so eingestellt), wird da nur aus irgendeinem Grund noch nicht ausgewiesen.

    Für Hilfe bin ich dankbar :)

    Liebe Grüße
    Nadine

    Linkback: https://www.modified-shop.org/forum/index.php?topic=38715.0
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #1 am: 16. März 2018, 15:02:20
    Setze das Steuermodul bitte wieder an die richtige Stelle, denn nur somit ist die korrekte Berechnung sicher gestellt.

    Wenn du es nur für die Ausgabe in einer anderen Reihenfolge haben möchtest, müsstest du das Ausgabe-Array neu sortieren.

    hhtech

    • Frisch an Board
    • Beiträge: 71
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #2 am: 16. März 2018, 15:47:55
    Hi Modulfux,

    Oh, danke, hab die Standardeinstellungen vom Demoshop abgeschrieben.

    Also handelt es sich bei der "Anzeigereihenfolge" eigentlich um eine "Berechnungsreihenfolge", was das Steuermodul betrifft? Oder auch was die andern Module betrifft? Verstehe ich nicht.

    Die heißt ja in den Einstellungen

    "Sortierreihenfolge
    Anzeigereihenfolge."

    Liebe Grüße
    Nadine

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #3 am: 16. März 2018, 16:21:01
    Sortierreihenfolge und Anzeigereihenfolge sind hier gleichbedeutend. Und ja, du hast Recht, dass diese Reihenfolge für die Berechnungen der einzelnen Preise eingehalten werden muss.

    hhtech

    • Frisch an Board
    • Beiträge: 71
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #4 am: 18. März 2018, 00:12:25
    Hab jetzt in der includes/modules/order_details_cart.php

    unter

    Code: PHP  [Auswählen]
    include (DIR_WS_INCLUDES.'shipping_estimate.php');

    folgendes hinzugefügt:

    Code: PHP  [Auswählen]
    //at this point shipping is in it - calculate total tax by hand:
    $total_tax_notrounded = (($total / 119) * 19);
    $total_tax = number_format($total_tax_notrounded, 2, ',', '');

    $module_smarty->assign('total_tax', $total_tax);

    und dann {$total_tax} € im Template.

    Das Steuermodul habe ich deaktiviert.

    Jetzt funktioniert es zumindest im Warenkorb. :-)

    hhtech

    • Frisch an Board
    • Beiträge: 71
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #5 am: 29. März 2018, 09:36:13
    Hab es überall anders (checkout_confirmation/Rechnungen/Bestellbestätigungsmail) auch per Hand reingefummelt. Das ist dann wohl die Lösung. :/

    kulli

    • Fördermitglied
    • Beiträge: 249
    • Geschlecht:
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #6 am: 17. Mai 2020, 17:51:44
    Gibt es da immer noch keine andere Lösung für 2.0.5.# , oder habe ich nur keine gefunden ?

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #7 am: 17. Mai 2020, 22:04:17
    Hallo Kulli,

    du kannst z.B. das hier https://www.modified-shop.org/forum/index.php?topic=40975.msg372800#msg372800 nutzen und dir eine Klassenerweiterung schreiben, welche die ot_module umsortiert.
    Die Steuer muß dann nicht mehr nachgerechnet werden.

    Nach dem du die Klasse order_total erweitert hast, erstelle eine Datei orderTotalSortEnd.php im Ordner shoproot/includes/modules/checkout/ mit folgendem Inhalt

    Code: PHP  [Auswählen]

    class orderTotalSortEnd {  //Important same name as filename
     
        //--- BEGIN DEFAULT CLASS METHODS ---//
        function __construct()
        {
            $this->code = 'orderTotalSortEnd'; //Important same name as class name
            $this->name = 'MODULE_CHECKOUT_'.strtoupper($this->code);
            $this->title = defined($this->name.'_TITLE') ? constant($this->name.'_TITLE') : '';        
            $this->description = defined($this->name.'_DESCRIPTION') ? constant($this->name.'_DESCRIPTION') : '';        
            $this->enabled = defined($this->name.'_STATUS') && constant($this->name.'_STATUS') == 'true' ? true : false;
            $this->sort_order = defined($this->name.'_SORT_ORDER') ? constant($this->name.'_SORT_ORDER') : '';        
        }
       
        function check() {
            if (!isset($this->_check)) {
              $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = '".$this->name."_STATUS'");
              $this->_check = xtc_db_num_rows($check_query);
            }
            return $this->_check;
        }
       
        function keys() {
            defined($this->name.'_STATUS_TITLE') OR define($this->name.'_STATUS_TITLE', TEXT_DEFAULT_STATUS_TITLE);
            defined($this->name.'_STATUS_DESC') OR define($this->name.'_STATUS_DESC', TEXT_DEFAULT_STATUS_DESC);
            defined($this->name.'_SORT_ORDER_TITLE') OR define($this->name.'_SORT_ORDER_TITLE', TEXT_DEFAULT_SORT_ORDER_TITLE);
            defined($this->name.'_SORT_ORDER_DESC') OR define($this->name.'_SORT_ORDER_DESC', TEXT_DEFAULT_SORT_ORDER_DESC);
           
            return array(
                $this->name.'_STATUS',
                $this->name.'_SORT_ORDER'
            );
        }

        function install() {
            xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('".$this->name."_STATUS', 'true','6', '1','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 ('".$this->name."_SORT_ORDER', '10','6', '2', now())");
        }

        function remove() {
            xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key LIKE '".$this->name."_%'");
        }
       
       
        //--- BEGIN CUSTOM  CLASS METHODS ---//

        public function manipulate_output_array(array $arr_output): array {

                // Array mit Steuersätzen (tax_description) holen
                $tax_desc_array = $this->get_tax_desc();
               
                $sec_array = array();
                foreach ($arr_output as $key => $value) {
                    for ($k = 0; $k < count($tax_desc_array); $k++) {

                        if ($pos = strpos($value['title'], $tax_desc_array[$k]) !== false) {
                            // Werte der Steuer in einem Array sichern
                            $sec_array[] = array($value['title'] => $value['text']);                        
                            // Steuersatz im Original-Array löschen
                            unset($arr_output[$key]);
                        }
                    }
                }

                    // fehlende Schlüssel bereinigen
                $arr_output = array_values($arr_output);
           
                // Steuersätze am Ende des Original-Arrays wieder einfügen
                for ($i=0; $i<count($sec_array); $i++) {
                    $arr_output = array_merge($arr_output, $sec_array[$i]);    
                }        

                return $arr_output;
            }

        public function manipulate_output(string $output): string {

                // Array mit Steuersätzen (tax_description) holen
                $tax_desc_array = $this->get_tax_desc();

                $sec_array = array();
                $array = explode('<tr>', $output);
                foreach ($array as $key => $value) {
                    for ($k = 0; $k < count($tax_desc_array); $k++) {
                        if ($pos = strpos($value, $tax_desc_array[$k]) !== false) {
                            // Werte der Steuer in einem Array sichern
                            $sec_array[] = array($value['title'] => $value['text']);                        
                            // Steuersatz im Original-Array löschen
                            unset($array[$key]);
                        }
                    }
                }
               
                            // fehlende Schlüssel bereinigen
                $array = array_values($array);
                                   
                // Steuersätze am Ende des Original-Arrays wieder einfügen
                for ($i=0; $i<count($sec_array); $i++) {
                    $array = array_merge($array, $sec_array[$i]);    
                }        
                   
                $output = implode('<tr>', $array);

                return $output;
            }
       
        private function get_tax_desc(): array {
       
            $tax_desc_array = array();
            $tax_rates_desc_query = "SELECT tax_description FROM ".TABLE_TAX_RATES;
            $tax_rates_desc_query = xtDBquery($tax_rates_desc_query);
            while($tax_rates_desc = xtc_db_fetch_array($tax_rates_desc_query)) {
                $tax_desc_array[] = $tax_rates_desc['tax_description'];
            }
           
            return $tax_desc_array;
           
        }

    }

    Dann noch die Sprachdatei orderTotalSortEnd.php im jeweiligen Sprach-Ordner z.B. shoproot/lang/german/modules/checkout/ mit folgendem Inhalt

    Code: PHP  [Auswählen]
      define('MODULE_CHECKOUT_ORDERTOTALSORTEND_TITLE', 'tax_total ans Ende sortieren');
      define('MODULE_CHECKOUT_ORDERTOTALSORTEND_DESCRIPTION', 'Die ot_module f&uuml;r die MwSt. werden im Array nach hinten sortiert');
     

    Dann die Klasse im Shop unter Module/Klassenerweiterungen Module/checkout aktivieren

    Mache vorher Sicherungen deiner Datenbank und Dateien.

    VG Bert

    kulli

    • Fördermitglied
    • Beiträge: 249
    • Geschlecht:
    Re: "inkl. MwSt." unter Versandkosten (v2.0.2.1)
    Antwort #8 am: 18. Mai 2020, 06:35:26
    Vielen, vielen Dank, das werde ich mal ausprobieren.

    Ist halt schade dass es nur "Bastellösungen" gibt für die "Auskenner" .
    Mal sehen wie man ein Admin-Modul draus generiert - wenn ich mal vieeeel Bastel-Zeit habe......