[GELÖST] Ausgabe der Partner-ID in einer Spalte der Bestellungsübersicht

Hallo zusammen,

ich würde mir mit einem kleinen Plugin (Basis soll das Plugin von Kevinschmidt86 bei Github sein) in der Übersicht der Bestellungen gerne die Partner-ID anzeigen lassen.
Filter lässt sich mit der linken Spalte ja bereits.

Vielleicht kann mir hier jemand helfen?

https://github.com/Kevinschmid86/KSchmidExtendBackendOrder/issues/1

getColumns:function () {
    var me = this;
    var columns = me.callParent(arguments);
    columns.splice(9, 0,
        {
            header: 'Partner-ID',
            flex:1,
            renderer: me.partnerColumn
        }
    );
    return columns;
},

partnerColumn: function(value, metaData, record) {...}

VG
Sebastian

Hallo,

 

das wird nicht reichen. Du musst den Record ergänzen und dich auf das Event registrieren, auf die Action, die dem Record zugewiesen ist, damit du den Record um deine Daten anreichern kannst.

 

 

MFG

 

derwunner

1 Like

@derwunner: Danke für deine schnelle Antwort. Leider versehe ich nicht ganz was du meinst. Die Originaldatei aus dem Plugin sieht so aus:

Damit wird die Rechnung sowie die Stornorechnung als Download angeboten in der der Übersicht.
Ich benötige ja nur die Partner-ID in einer Spalte.

 

Ext.override(Shopware.apps.Order.view.list.List, {

    /**
     * Creates the grid columns
     *
     * @return [array] grid columns
     */
    getColumns:function () {
        var me = this;
        var columns = me.callParent(arguments);

        columns.splice(9, 0,
            {
                header: 'Rechnung',
                flex:1,
                renderer: me.invoiceColumn
            },
            {
                header: 'Storno',
                flex:1,
                renderer: me.invoiceCancelColumn
            }
        );

        return columns;
    },

    invoiceColumn: function(value, metaData, record) {

        var invoiceNum = '';

        if (record instanceof Ext.data.Model && record.getReceipt() instanceof Ext.data.Store && record.getReceipt().first() instanceof Ext.data.Model) {
            var helper = new Ext.dom.Helper;
            record.getReceipt().each(function(){
                //Durchlaufe alle Felder und prüfe ob Type-ID auf 1 steht und setzte Rechnungsnummer
                if(this.get('typeId') == 1)
                {
                    invoiceNum = {
                        tag: 'a',
                        html: this.get('documentId'),
                        href: '{url action="openPdf"}?id=' + this.get('hash'),
                        target: '_blank'
                    };

                    invoiceNum = helper.markup(invoiceNum);
                }
            });
        }

        return invoiceNum;
    },

    invoiceCancelColumn: function(value, metaData, record) {

        var invoiceCancelNum = '';

        if (record instanceof Ext.data.Model && record.getReceipt() instanceof Ext.data.Store && record.getReceipt().first() instanceof Ext.data.Model) {
            var helper = new Ext.dom.Helper;
            record.getReceipt().each(function(){
                //Durchlaufe alle Felder und prüfe ob Type-ID auf 4 steht und setzte Stornorechnungsnummer
                if(this.get('typeId') == 4)
                {
                    invoiceCancelNum = {
                        tag: 'a',
                        html: this.get('documentId'),
                        href: '{url action="openPdf"}?id=' + this.get('hash'),
                        target: '_blank'
                    };

                    invoiceCancelNum = helper.markup(invoiceCancelNum);
                }
            });
        }

        return invoiceCancelNum ;
    }
});

 

Ist doch einfacher als ich gedacht habe:

//{block name="backend/order/view/list/list" append}
Ext.override(Shopware.apps.Order.view.list.List, {
    /**
     * Creates the grid columns
     *
     * @return [array] grid columns
     */
    getColumns:function () {
        var me = this;
        var columns = me.callParent(arguments);

        columns.splice(9, 0,
            {
                header: 'Partner-ID',
                flex:1,
                renderer: me.partnerColumn
            }
        );

        return columns;
    },

    partnerColumn: function(value, metaData, record) {

        return record.data.partnerId;
    }
});
//{/block}

 

Hallo,

gibt es auch eine Möglichkeit auf ein Freitextfeld aus der Tabelle s_order_attributes zuzugreifen.