# CustomerQuickView: getListQuery() um Umsatz und Anzahl Bestellungen erweitern

**URL:** <https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757>\
**Category:** Programmierung\
**Tags:** customelements\
**Created:** [28. November 2018 um 16:52 UTC](https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757 "2018-11-28T16:52:38Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![bbihl](https://avatars.discourse-cdn.com/v4/letter/b/57b2e6/32.png) [@bbihl](https://forum.shopware.com/u/bbihl)\
**Post date:** [28. November 2018 um 16:52 UTC](https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757/1 "2018-11-28T16:52:38Z")

</div>

Hallo Zusammen,

ich stehe vor einem Problem und hoffe, mir kann hier jemand helfen.

Ich habe der Kundenübersicht im Backend zwei Tabs hinzugefügt, die Umsatz und Bestellungen darstellen sollen. Um die entsprechenden Daten&nbsp;zu bekommen, hooke ich in der getListQuery() function des CustomerQuickView Controllers.&nbsp;Hier möchte ich die Query erweitern und da liegt auch das Problem. Die Query scheint Probleme mit count() bzw SUM zu haben und schmeißt mir im Frontend nur noch den ersten Kunden raus (allerdings mit korrekter Angabe der Seitenzahlen).

```
public function extendListData ( \Enlight_Hook_HookArgs $args)
	{

        $query = $args->getReturn();
        $query->addSelect(
            array(
                $query->expr()->count('doneOrders.id') . ' as orderCount',
                'SUM(doneOrders.invoiceAmount) as amount'
            ));
        $query->LeftJoin('customer.orders', 'doneOrders', \Doctrine\ORM\Query\Expr\Join::WITH, 'doneOrders.status <> -1 AND doneOrders.status <> 4');
        $args->setReturn($query);
}

```

Entferne ich count() und SUM, bekomme ich im Frontend zwar die falschen Ergebnisse, aber immerhin werden alle Kunden angezeigt. Bspw. so:

```
 public function extendListData ( \Enlight_Hook_HookArgs $args)
	{

        $query = $args->getReturn();
        $query->addSelect(
            array(
                'doneOrders.invoiceAmount as amount'
            ));
        $query->LeftJoin('customer.orders', 'doneOrders', \Doctrine\ORM\Query\Expr\Join::WITH, 'doneOrders.status <> -1 AND doneOrders.status <> 4');
        $args->setReturn($query);

```

Die Query stammt aus dem Customer Model Repository (getCustomerDetailQueryBuilder).Weiß hier jemand, wie ich hier drum herum arbeiten kann?

Beste Grüße

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [28. November 2018 um 17:32 UTC](https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757/2 "2018-11-28T17:32:36Z")

</div>

Hallo @bbihl‍,

du hast das ’ groupBy’ statement vergessen.

schau mal hier:

> <https://github.com/shopware/shopware/blob/5.5/engine/Shopware/Models/Customer/Repository.php#L96>

&nbsp;

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

---

<div class="post-metadata">

**Author:** ![bbihl](https://avatars.discourse-cdn.com/v4/letter/b/57b2e6/32.png) [@bbihl](https://forum.shopware.com/u/bbihl)\
**Post date:** [28. November 2018 um 18:11 UTC](https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757/3 "2018-11-28T18:11:57Z")

</div>

Hallo @ahmadsaad‍,

vielen Dank für die schnelle Antwort, daran lag es! Ich hatte gehofft, dass ich mich um die Sortier Funktion nicht manuell kümmern muss, scheint aber leider der Fall zu sein, denn sie funktioniert nicht, wie sie soll. Ich bin einfach mal so frei und frage dich direkt, ob du einen Ansatz für mich hast, wie ich diese am besten für meine zwei Custom Tabs implementieren kann?

Grüße

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [28. November 2018 um 20:29 UTC](https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757/4 "2018-11-28T20:29:10Z")

</div>

Hallo @bbihl‍,

ich verstehe&nbsp;nicht genau was ist das Problem mit Sortier.

ob du meinst sortieren nach ‚orderCount‘ und ‚amount‘ ,&nbsp; dann du hast Zwei&nbsp;situation:

1- [Elasticsearch backend&nbsp;](https://developers.shopware.com/developers-guide/shopware-5-upgrade-guide-for-developers/#elasticsearch-backend) ist disabled, dann das code benutzen das ‚getListQuery‘ builder um die Daten zu sortieren, dann du kannst einfach beim deine Funktion ‚extendListData‘, das Post Request ‚sort‘ param überprüfen ob es ist bei&nbsp;‚orderCount‘ or ‚amount‘ und :

$query-\>addOrderBy($sort)

2- [Elasticsearch backend&nbsp;](https://developers.shopware.com/developers-guide/shopware-5-upgrade-guide-for-developers/#elasticsearch-backend) ist enable dann es ist komplexiert (ich glaube), oder nicht ![Angry-Face](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/angry-face.png "Angry-Face")&nbsp; ich weiß nicht genau ( ich habe nur ein mal auf kleine Aufgabe mit&nbsp;Elasticsearch gearbeitet, vielleicht jemand andere hat ein einfach Lösung).

hier das Code würde das ‚[loadFromRepository](https://github.com/shopware/shopware/blob/5.5/engine/Shopware/Controllers/Backend/CustomerQuickView.php#L175)‘ Funktion ausführen, und benutzen die Elasticsearch um die Datein zu sortiern und die ‚getListQuery‘ builder sortieren zu überschreiben exact in diese [Line](https://github.com/shopware/shopware/blob/5.5/engine/Shopware/Controllers/Backend/CustomerQuickView.php#L296) .

um diese zu behoben ich glaube du muss diese Doc lessen:

[https://developers.shopware.com/developers-guide/elasticsearch/](https://developers.shopware.com/developers-guide/elasticsearch/)

ich hofe diese werde dir hilfen.

&nbsp;

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

---

<div class="post-metadata">

**Author:** ![bbihl](https://avatars.discourse-cdn.com/v4/letter/b/57b2e6/32.png) [@bbihl](https://forum.shopware.com/u/bbihl)\
**Post date:** [30. November 2018 um 09:08 UTC](https://forum.shopware.com/t/customerquickview-getlistquery-um-umsatz-und-anzahl-bestellungen-erweitern/56757/5 "2018-11-30T09:08:47Z")

</div>

Hallo @ahmadsaad‍,

ich wollte nur (für die Nachwelt) Bescheid geben, dass es daran lag, dass ich vergessen habe, in getModelFields() zu hooken und die Felder entsprechend um meine hinzugefügten zu erweitern, damit das sortieren für diese überhaupt funktionieren kann. Danke für deine Hilfe!

&nbsp;

```
    //Hook into CustomerQuickView->getModelFields in order to make the added fields sortable
    public function extendModelFields( \Enlight_Hook_HookArgs $args)
    {
        $fields = $args->getReturn();

        $fields = array_merge($fields, [
            'orderCount' => ['alias' => 'orderCount', 'type' => 'int'],
            'amount' => ['alias' => 'amount', 'type' => 'float']
        ]);

        $args->setReturn($fields);
        
    }

```

&nbsp;

&nbsp;

&nbsp;
