Wie komme ich an "date_purchased" einer Orders ....

Thema wurde von Manni_HB, 13. Januar 2015 erstellt.

  1. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    ... die gelöscht werden soll? <Kein Scherz!>

    Wo ist die letzte Möglichkeit die "date_purchased" zu ermitteln, bevor der Button "Delete" sein Werk vollendet hat?
    Ich würde da mit einer Funktion einsteigen, die das Datum weiter verwendet.

    Ein Overlay, das bei GX 2.0 & 2.1 funktioniert, wäre natürlich der Gipfel der Lust.

    Für zielführende Tipps bereits jetzt besten Dank!
     
  2. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Echt keiner eine Idee? :(:(
     
  3. Moritz (Gambio)
    Moritz (Gambio) Administrator
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    Hallo Manfred,

    was hast du so ungefähr vor? Für 2.1 gäbs da vielleicht eine updatesichere Lösung :).
     
  4. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Hallo Moritz,

    eine Eigenentwicklung verwaltet in eigenen Tabellen bestimmte Summen der "orders" pro Tag.
    Änderungen an Bestellungen werden erkannt und nur die Summen des betreffenden Tag aus der "orders" neu gebildet.
    Nur beim Löschen einer Bestellung bleibt (bisher) nix anderes übrig, als vom Tag der 1. Bestellung die Tabelle "orders" komplett durch zu ackern! Das ist ab einer bestimmten Datenmenge undiskutabel!

    Ich brauche also nur "date_purchased" der Orders, die gelöscht wird.
    Die gleiche Funktion, die bei geänderten Bestellungen das Datum des Tages speichert, kann auch hier einsteigen.
     
  5. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Wenn Du das "order"-Objekt bildest mit new order($order_id) dann hast Du doch alle Order-Infos!?
     
  6. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.303
    Danke erhalten:
    6.268
    Danke vergeben:
    1.118
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Wäre es nicht vielleicht einfacher mittels cronjob nachts einfach die Werte neu cachen zu lassen statt bei jeder kleinen änderung?
     
  7. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    #7 Manni_HB, 17. Januar 2015
    Zuletzt bearbeitet: 17. Januar 2015
    Das wäre 1. nicht praktisch, da zusätzlicher Aufwand.
    Da es bei 300 Orders/Tag auf einem AllerweltsServer in ca 0.02Sek erledigt ist - lohnt es sich nicht.

    Und Du möchtest doch jetzt aktuelle Daten und nicht erst morgen - oder? :)

    Anders beim Löschen .... noch! :)
     
  8. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Schon schon ... aber "wann"?
    Gesucht wird der letzte Moment nach Klick auf "Löschen"
     
  9. Moritz (Gambio)
    Moritz (Gambio) Administrator
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    Hallo Manfred,

    hier eine Lösung für 2.1:
    PHP:
    <?php
    /* --------------------------------------------------------------
      BeforeDeleteOrder.inc.php 2015-01-17 mb
      Gambio GmbH
      http://www.gambio.de
      Copyright (c) 2015 Gambio GmbH
      Released under the GNU General Public License (Version 2)
      [http://www.gnu.org/licenses/gpl-2.0.html]
      --------------------------------------------------------------
     */


    class BeforeDeleteOrder extends BeforeDeleteOrder_parent
    {
        public function 
    __construct()
        {
            if(
    is_callable(array(parent'__construct')))
            {
                
    parent::__construct();
            }

            if(
    $_GET['action'] === 'deleteconfirm')
            {
                
    $orderId = (int)$_GET['oID'];

                
    $query 'SELECT date_purchased FROM orders WHERE orders_id = ' $orderId;
                
    $result xtc_db_query($query);
                if(
    xtc_db_num_rows($result))
                {
                    
    $row xtc_db_fetch_array($result);
                    
    $datePurchased $row['date_purchased'];

                    
    // $datePurchased weiter verarbeiten
                
    }
            }
        }
    }
    Die Datei BeforeDeleteOrder.inc.php gehört in den Ordner user_classes/overloads/AdminOrderActionExtenderComponent.
     
  10. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Hallo Moritz,

    erstmal vielen Dank!

    Mein GX 2.1.4.0 meint jedoch bereits beim Aufruf der "orders.php".
    Code:
    [URL="http://kartoffel24.de/admin/orders.php#"][B]FATAL ERROR(1): [/B]"Can not call constructor"[/URL][B]Information:[/B]
     <br /> <b>Fatal error</b>:  Can not call constructor in <b>/www/htdocs/xxxxxx/xxxxxx.de/user_classes/overloads/AdminOrderActionExtenderComponent/BeforeDeleteOrder.inc.php</b> on line <b>19</b><br />
    :confused:
     
  11. Moritz (Gambio)
    Moritz (Gambio) Administrator
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    Ich habe den Code im Beitrag nochmals überarbeitet.
     
  12. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Hallo Moritz,

    sehr sehr schön - und funktioniert einwandfrei => Dickes Dankeschön!