Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
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: Vorschlag Klassenerweiterung ot_module

    Gulliver72

    • Mitglied
    • Beiträge: 180
    • Geschlecht:
    Vorschlag Klassenerweiterung ot_module
    am: 09. April 2020, 11:56:35
    Hallo zusammen,

    ich hatte beim Modulbau zur Differnzbesteuerung die Idee, die ot_module manipulierbar zu machen.
    Somit können mit Klassenerweiterungsmodulen die Module modifiziert oder auch abgefangen werden.
    Interessant finde ich das auch im Zusammenhang mit der Kleinunternehmerregelung.
    Momentan muß dort das Steuer-Modul und das Modul Netto-Summe deinstalliert werden. Das wäre dann obsolet.

    Ich stelle euch einfach mal das Ganze vor. Vielleicht besteht Interesse

    Die zwei Dateien hab ich noch mit dran gehangen

    ------------------------------------------------------------
        /includes/classes/checkoutModules.class.php
    ------------------------------------------------------------

    Finde:

    Code: PHP  [Auswählen]
        function unallowed_shipping_modules($unallowed_modules)
        {
            $this->function_call = 'unallowed_shipping_modules';
            return $this->call_module_method($unallowed_modules);
        }

    Füge danach ein:

    Code: PHP  [Auswählen]
        function manipulate_output_array($arr_output)
        {
            $this->function_call = 'manipulate_output_array';
            return $this->call_module_method($arr_output);
        }
       
        function manipulate_output($output)
        {
            $this->function_call = 'manipulate_output';
            return $this->call_module_method($output);
        }

    ------------------------------------------------------------
        /includes/classes/order_total.php
    ------------------------------------------------------------

    Finde:

    Code: PHP  [Auswählen]
        function __construct() {
            global $order;

    Füge danach ein:

    Code: PHP  [Auswählen]
        //new module support
        require_once (DIR_FS_CATALOG.'includes/classes/checkoutModules.class.php');
        $this->checkoutModules = new checkoutModules();

    Finde:

    Code: PHP  [Auswählen]
        function process() {
            $order_total_array = array ();
            if (is_array($this->modules)) {
                reset($this->modules);
                foreach ($this->modules as $value) {
                    $class = substr($value, 0, strrpos($value, '.'));
                    if ($GLOBALS[$class]->enabled) {
                        $GLOBALS[$class]->output = array();
                        $GLOBALS[$class]->process();

                        for ($i = 0, $n = sizeof($GLOBALS[$class]->output); $i < $n; $i ++) {
                            if (xtc_not_null($GLOBALS[$class]->output[$i]['title']) && xtc_not_null($GLOBALS[$class]->output[$i]['text'])) {
                                $order_total_array[] = array (
                                    'code' => $GLOBALS[$class]->code,
                                    'title' => $GLOBALS[$class]->output[$i]['title'],
                                    'text' => $GLOBALS[$class]->output[$i]['text'],
                                    'value' => $GLOBALS[$class]->output[$i]['value'],
                                    'sort_order' => ((isset($GLOBALS[$class]->output[$i]['sort_order'])) ? $GLOBALS[$class]->output[$i]['sort_order'] : $GLOBALS[$class]->sort_order)
                                    );
                            }
                        }
                    }
                }
            }

            return $order_total_array;
        }

    Ersetze mit:

    Code: PHP  [Auswählen]
        function process() {
            $order_total_array = array ();
            if (is_array($this->modules)) {
                reset($this->modules);
                foreach ($this->modules as $value) {
                    $class = substr($value, 0, strrpos($value, '.'));
                    if ($GLOBALS[$class]->enabled) {
                        $GLOBALS[$class]->output = array();
                        $GLOBALS[$class]->process();

                        for ($i = 0, $n = sizeof($GLOBALS[$class]->output); $i < $n; $i ++) {
                            if (xtc_not_null($GLOBALS[$class]->output[$i]['title']) && xtc_not_null($GLOBALS[$class]->output[$i]['text'])) {
                                $order_total_array[] = array (
                                    'code' => $GLOBALS[$class]->code,
                                    'title' => $GLOBALS[$class]->output[$i]['title'],
                                    'text' => $GLOBALS[$class]->output[$i]['text'],
                                    'value' => $GLOBALS[$class]->output[$i]['value'],
                                    'sort_order' => ((isset($GLOBALS[$class]->output[$i]['sort_order'])) ? $GLOBALS[$class]->output[$i]['sort_order'] : $GLOBALS[$class]->sort_order)
                                    );
                            }
                        }
                    }
                }
            }

            //new module support
            $order_total_array = $this->checkoutModules->manipulate_output_array($order_total_array);

            return $order_total_array;
        }

    Finde:

    Code: PHP  [Auswählen]
        function output() {
            $output_string = '';
            if (is_array($this->modules)) {
                reset($this->modules);
                foreach ($this->modules as $value) {
                    $class = substr($value, 0, strrpos($value, '.'));
                    if ($GLOBALS[$class]->enabled) {
                        $size = sizeof($GLOBALS[$class]->output);
                        for ($i = 0; $i < $size; $i ++) {
                            $output_string .= '              <tr>'."\n".'                <td align="right" class="main">'.$GLOBALS[$class]->output[$i]['title'].'</td>'."\n".'                <td align="right" class="main">'.$GLOBALS[$class]->output[$i]['text'].'</td>'."\n".'              </tr>';
                        }
                    }
                }
            }

            return $output_string;
        }

    Ersetze mit:

    Code: PHP  [Auswählen]
        function output() {
            $output_string = '';
            if (is_array($this->modules)) {
                reset($this->modules);
                foreach ($this->modules as $value) {
                    $class = substr($value, 0, strrpos($value, '.'));
                    if ($GLOBALS[$class]->enabled) {
                        $size = sizeof($GLOBALS[$class]->output);
                        for ($i = 0; $i < $size; $i ++) {
                            $output_string .= '              <tr>'."\n".'                <td align="right" class="main">'.$GLOBALS[$class]->output[$i]['title'].'</td>'."\n".'                <td align="right" class="main">'.$GLOBALS[$class]->output[$i]['text'].'</td>'."\n".'              </tr>';
                        }
                    }
                }
            }

            //new module support
            $output_string = $this->checkoutModules->manipulate_output($output_string);

            return $output_string;
        }

    VG Bert

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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 44.496
    • Geschlecht:
    Re: Vorschlag Klassenerweiterung ot_module
    Antwort #1 am: 15. Juni 2020, 12:52:05
    Hallo Bert,

    danke dir. :thumbs:
    Ich habe die Idee mal in Ticket #1843 festgehalten.

    Grüße

    Torsten

    snocer

    • Fördermitglied
    • Beiträge: 231
    Re: Vorschlag Klassenerweiterung ot_module
    Antwort #2 am: 15. Juni 2020, 13:16:12
    Hallo Bert,

    nicht das Du Dich vergaloppierst. Kleinunternehmer oder auch §13b dürfen keine Differenzbesteuerung anwenden.
    Nur mal so als Hinweis. Eventuell habe ich Deine vorhergehende Ausführungen auch so nicht verstanden.
    Es muss verhindert werden, das wenn einer nach §13 Kleinunternehmer Regelung berechnet, das er überhaupt Differenzbesteuerung auswählen kann.

    cu snocer

    Gulliver72

    • Mitglied
    • Beiträge: 180
    • Geschlecht:
    Re: Vorschlag Klassenerweiterung ot_module
    Antwort #3 am: 15. Juni 2020, 13:44:39
    @snocer
    was hat dein Beitrag mit der Klassenerweiterung zutun? Zumal ich beides lediglich als Anwendungsbeispiele dieser Erweiterung genannt habe.  :gotta-go:

    VG Bert
    6 Antworten
    1738 Aufrufe
    02. Mai 2017, 21:35:49 von awids
    2 Antworten
    1883 Aufrufe
    08. April 2011, 08:49:05 von Tomcraft
    126 Antworten
    36505 Aufrufe
    07. April 2017, 20:09:33 von mcm
    6 Antworten
    2431 Aufrufe
    09. Januar 2015, 09:54:58 von Bonsai
               
    anything