From 27df509505cb6d52da0d4955bb1e87517dbd7241 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Mon, 22 Dec 2025 10:51:10 +0100 Subject: [PATCH] fixed addresstickets view --- application/Address/AddressController.php | 16 +++++++++---- lib/XinonProject/XinonProject.php | 6 +++-- .../js/pages/AddressTickets/AddressTickets.js | 23 +++++++++++++------ 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/application/Address/AddressController.php b/application/Address/AddressController.php index 655c708e1..d514a785d 100644 --- a/application/Address/AddressController.php +++ b/application/Address/AddressController.php @@ -726,16 +726,24 @@ class AddressController extends mfBaseController { } $xinon_project = new XinonProject(); - $tickets = $xinon_project->searchSupportTickets('', 0, ['pageSize' => 100, - 'filters' => json_encode([['customField6' => ['operator' => '=', 'values' => [$address->customer_number]]]])]); + $filterParams = ['pageSize' => 100, + 'filters' => json_encode([['customField6' => ['operator' => '=', 'values' => [(string)$address->customer_number]]]])]; + + $tickets = $xinon_project->searchSupportTickets('', 0, $filterParams) ?? []; $shippingNotes = array_map(function ($shippingNote) { $shippingNote->createByName = (new User($shippingNote->createBy))->getAbbrName(); return $shippingNote; }, WarehouseShippingNoteModel::getAll(['billingAddressId' => $address->id])); - Helper::renderVue($this,"AddressTickets", - "Tickets und Lieferscheine von Kunden: " . $address->getCompanyOrName() . '(' . $address->customer_number . ')', ["TICKETS" => $tickets,"SHIPPING_NOTES" => $shippingNotes,"ADDRESS" => $address]); + $customerName = str_replace(["\r", "\n"], ' ', $address->getCompanyOrName()); + Helper::renderVue($this,"AddressTickets", "Tickets und Lieferscheine", [ + "TICKETS" => $tickets, + "SHIPPING_NOTES" => $shippingNotes, + "CUSTOMER_NAME" => $customerName, + "CUSTOMER_NUMBER" => $address->customer_number, + "HIDE_PAGE_TITLE" => true + ]); } protected function sendServicePinAction() { diff --git a/lib/XinonProject/XinonProject.php b/lib/XinonProject/XinonProject.php index f32895350..5d4c93936 100644 --- a/lib/XinonProject/XinonProject.php +++ b/lib/XinonProject/XinonProject.php @@ -66,8 +66,10 @@ class XinonProject { if (!is_null($overrideQueryParams)) $queryParams = $overrideQueryParams; + $url = $baseUrl . '?' . http_build_query($queryParams); + curl_setopt_array($curl, array( - CURLOPT_URL => $baseUrl . '?' . http_build_query($queryParams), + CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, @@ -84,7 +86,7 @@ class XinonProject { $json = json_decode($response, true); - return $json['_embedded']['elements']; + return $json['_embedded']['elements'] ?? []; } } ?> diff --git a/public/js/pages/AddressTickets/AddressTickets.js b/public/js/pages/AddressTickets/AddressTickets.js index fafa8f562..983931ac1 100644 --- a/public/js/pages/AddressTickets/AddressTickets.js +++ b/public/js/pages/AddressTickets/AddressTickets.js @@ -1,13 +1,15 @@ Vue.component('AddressTickets', { template: `
- -

Tickets

-
+ +

Tickets - {{ customerName }} ({{ customerNumber }})

+
+ Keine Tickets gefunden. +
+
- @@ -16,7 +18,6 @@ Vue.component('AddressTickets', { - @@ -30,7 +31,10 @@ Vue.component('AddressTickets', {

Lieferscheine

-
+
+ Keine Lieferscheine gefunden. +
+
Kundennummer Erstellt am Betreff Letztes Update
{{ ticket.customField7 }} {{ formatDate(ticket.createdAt) }} {{ ticket.subject }} {{ formatDate(ticket.updatedAt) }}
@@ -65,10 +69,15 @@ Vue.component('AddressTickets', { return {window: window}; }, computed: { + customerName() { + return this.window.TT_CONFIG?.CUSTOMER_NAME || ''; + }, + customerNumber() { + return this.window.TT_CONFIG?.CUSTOMER_NUMBER || ''; + }, tickets() { return (this.window.TT_CONFIG?.TICKETS || []).map(t => ({ id: t.id, - customField7: t.customField7, createdAt: t.createdAt, subject: t.subject, updatedAt: t.updatedAt,