gelöst Admin-Bestellübersicht - zusätzliche Spalte (Kundennummer)

Thema wurde von Guyonthecouch, 28. Dezember 2017 erstellt.

  1. Guyonthecouch

    Guyonthecouch Erfahrener Benutzer

    Registriert seit:
    17. September 2016
    Beiträge:
    210
    Danke erhalten:
    24
    Danke vergeben:
    93
    Guten Morgen Devil,

    einmal zusammengefasst:

    Ich habe mich nach diesem Tutorial gerichtet: https://developers.gambio.de/tutorials.html?v=3.7.1.0&p=erweitern-der-bestellübersicht-(tabelle)
    1. Dateien erstellen und hochladen
      Basisverzeichnis: /GXUserComponents/
      1. /overloads//OrdersOverviewController/CustomColumnOrdersOverviewController.inc.php
      2. /overloads//OrdersOverviewColumns/CustomColumnOrdersOverviewColumns.inc.php
      3. /overloads//OrdersOverviewAjaxController/CustomColumnOrdersOverviewAjaxController.inc.php
      4. /overloads//OrderListGenerator/CustomersIdOrderListGenerator.inc.php
      5. /modules/add_custom_column.js
    2. Seiten- und Modulcache leeren
    3. Spaltenanzeige aktivieren
    Der Code für die einzelnen Dateien sieht folgendermaßen aus:

    GXUserComponents/overloads/OrdersOverviewController/CustomColumnOrdersOverviewController.inc.php
    PHP:
    <?php
    class CustomColumnOrdersOverviewController extends CustomColumnOrdersOverviewController_parent
    {
        protected function 
    _getAssetsArray()
        {
            
    $assetsArray parent::_getAssetsArray();
            
    $assetsArray[] = MainFactory::create('Asset'DIR_WS_CATALOG.'GXUserComponents/modules/add_custom_column.js');
            return 
    $assetsArray;
        }
    }
    GXUserComponents/overloads/OrdersOverviewColumns/CustomColumnOrdersOverviewColumns.inc.php
    PHP:
    <?php
    class CustomColumnOrdersOverviewColumns extends CustomColumnOrdersOverviewColumns_parent
    {
        public function 
    __construct()
        {
            
    parent::__construct();
            
    // Custom
            
    $this->columns[] = MainFactory::create('DataTableColumn')
                                          ->
    setTitle(new StringType('KdNr'))
                                          ->
    setName(new StringType('KdNr'))
                                          ->
    setType(new DataTableColumnType(DataTableColumnType::NUMBER));
        }
    }
    GXUserComponents/overloads/OrdersOverviewAjaxController/CustomColumnOrdersOverviewAjaxController.inc.php
    PHP:
    <?php
    class CustomColumnOrdersOverviewAjaxController extends CustomColumnOrdersOverviewAjaxController_parent
    {
        protected function 
    _getTableData()
        {
            
    $tableData parent::_getTableData();
       
            foreach(
    $tableData as $row=>$values)
            {
                
    $tableData[$row]['KdNr'] = $values['DT_RowData']['customerId'];
            }
       
            return 
    $tableData;
        }
    }
    GXUserComponents/overloads/OrderListGenerator/CustomersIdOrderListGenerator.inc.php
    PHP:
    <?php

    class CustomersIdOrderListGenerator extends CustomersIdOrderListGenerator_parent
    {
        protected function 
    _setFilterArguments(array $filterParameters,
                                               
    IntType $startIndex null,
                                               
    IntType $maxCount null,
                                               
    StringType $orderBy null)
        {
            
    parent::_setFilterArguments($filterParameters,$startIndex,$maxCount,$orderBy);
       
            
    // Filter by customer.
            
    if(!empty($filterParameters['KdNr']))
            {
                
    $this->db->group_start();
                if(
    strpos($filterParameters['KdNr'], '#') === 0)
                {
                    
    $this->db->where('orders.customers_id'substr($filterParameters['KdNr'], 1))
                        ->
    or_where('orders.customers_cid'substr($filterParameters['KdNr'], 1));
                }
                else
                {
                    
    $this->db->where('orders.customers_id'$filterParameters['KdNr'])
                        ->
    or_like('orders.customers_cid'$filterParameters['KdNr'])
                        ->
    or_like('orders.customers_id'$filterParameters['KdNr']);
                }
                
    $this->db->group_end();
            }
       
            return 
    $this;
        }
    }
    GXUserComponents/modules/add_custom_column.js
    Code:
    $(function() {
        'use strict';
    
        // Be careful to not overwrite existing object definitions.
        jse.libs.orders_overview_columns = jse.libs.orders_overview_columns || {};
    
        // Custom column definition.
        jse.libs.orders_overview_columns.KdNr = {
            data: 'KdNr',
            minWidth: '75px',
            widthFactor: 0.9
        };
    });

    Viele Grüße
    Cedric
     
  2. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    26. Oktober 2011
    Beiträge:
    967
    Danke erhalten:
    149
    Danke vergeben:
    130
    Geht das auch für die Kundenübersicht mit dem Overload ?!?!
     
  3. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    hat dieses ding schon jemand und 4.x am besten 4.3.3.0 zum laufen bekommen? alles verschoben nach \GXModules\ff-webdesigner\AMZ_order_ID\Admin\overloads\ etc... die neue spalte wird noch im header angezeigt, aber keinerlei daten mehr geladen. js wirft auch keinen alert...