From a076cf6b9c29f80df17352bde2e7e0e6cee2d4e4 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Fri, 25 Apr 2025 13:16:24 +0200 Subject: [PATCH] added lieferscheine to ticket view in thetool --- Layout/default/Address/View.php | 2 +- application/Address/AddressController.php | 9 +- .../js/pages/AddressTickets/AddressTickets.js | 127 ++++++++++++------ 3 files changed, 92 insertions(+), 46 deletions(-) diff --git a/Layout/default/Address/View.php b/Layout/default/Address/View.php index 2f2ff38ce..d981e117f 100644 --- a/Layout/default/Address/View.php +++ b/Layout/default/Address/View.php @@ -27,7 +27,7 @@ $address->id, 's' => $s, 'f' => "view"])?>" class="btn btn-outline-success"> Adresse bearbeiten
- $address->id])?>" class="btn btn-purple mr-1"> Tickets + $address->id])?>" class="btn btn-purple mr-1"> Tickets und LS $address->id])?>" class="btn btn-purple mr-1"> Rechungsübersicht
diff --git a/application/Address/AddressController.php b/application/Address/AddressController.php index dac4542bb..cfa9bf50a 100644 --- a/application/Address/AddressController.php +++ b/application/Address/AddressController.php @@ -689,7 +689,7 @@ class AddressController extends mfBaseController { } - protected function ticketsAction() { + protected function ticketsAndShippingNoteAction() { $address_id = $this->request->address_id; $address = new Address($address_id); @@ -702,8 +702,13 @@ class AddressController extends mfBaseController { $tickets = $xinon_project->searchSupportTickets('', 0, ['pageSize' => 100, 'filters' => json_encode([['customField6' => ['operator' => '=', 'values' => [$address->customer_number]]]])]); + $shippingNotes = array_map(function ($shippingNote) { + $shippingNote->createByName = (new User($shippingNote->createBy))->getAbbrName(); + return $shippingNote; + }, WarehouseShippingNoteModel::getAll(['billingAddressId' => $address->id])); + Helper::renderVue($this,"AddressTickets", - "Tickets von Kunden: " . $address->getCompanyOrName() . '(' . $address->customer_number . ')', ["TICKETS" => $tickets]); + "Tickets und Lieferscheine von Kunden: " . $address->getCompanyOrName() . '(' . $address->customer_number . ')', ["TICKETS" => $tickets,"SHIPPING_NOTES" => $shippingNotes,"ADDRESS" => $address]); } protected function sendServicePinAction() { diff --git a/public/js/pages/AddressTickets/AddressTickets.js b/public/js/pages/AddressTickets/AddressTickets.js index 8103c0a9d..fafa8f562 100644 --- a/public/js/pages/AddressTickets/AddressTickets.js +++ b/public/js/pages/AddressTickets/AddressTickets.js @@ -1,55 +1,96 @@ Vue.component('AddressTickets', { template: ` - -
- - - - - - - - - - - - - - - - - - - -
KundennummerErstellt amBetreffLetztes UpdateAktion
{{ ticket.customField7 }}{{ formatDate(ticket.createdAt) }}{{ ticket.subject }}{{ formatDate(ticket.updatedAt) }} - - - Ticket anzeigen - -
-
-
- `, +
+ +

Tickets

+
+ + + + + + + + + + + + + + + + + + + +
KundennummerErstellt amBetreffLetztes UpdateAktion
{{ ticket.customField7 }}{{ formatDate(ticket.createdAt) }}{{ ticket.subject }}{{ formatDate(ticket.updatedAt) }}Anzeigen
+
+
+ + +

Lieferscheine

+
+ + + + + + + + + + + + + + + + + + + +
Art der ArbeitLieferadresseErstellt vonErstellt amAktion
{{ note.note }} + {{ note.deliveryAddressName }} ({{ note.deliveryAddressEMail }} + )
+ {{ note.deliveryAddressLine }}
+ {{ note.deliveryAddressPLZ }}, {{ note.deliveryAddressCity }} +
{{ note.createdByName }}{{ formatUnix(note.create) }}Anzeigen
+
+
+
+ `, data() { - return { - window: window, - } + return {window: window}; }, computed: { - parsedTickets() { - return this.window.TT_CONFIG.TICKETS.map(ticket => ({ - id: ticket.id, - customField7: ticket.customField7, - createdAt: ticket.createdAt, - subject: ticket.subject, - updatedAt: ticket.updatedAt, - activitiesHref: ticket._links.activities.href + tickets() { + return (this.window.TT_CONFIG?.TICKETS || []).map(t => ({ + id: t.id, + customField7: t.customField7, + createdAt: t.createdAt, + subject: t.subject, + updatedAt: t.updatedAt, + activitiesHref: t._links?.activities?.href })); + }, + shippingNotes() { + return [...(this.window.TT_CONFIG?.SHIPPING_NOTES || [])].sort((a, b) => a.create - b.create); } }, methods: { - formatDate(dateString) { - return this.window.moment(dateString).format('DD.MM.YYYY HH:mm'); + formatDate(d) { + return this.window.moment(d).format('DD.MM.YYYY HH:mm'); + }, + formatUnix(ts) { + return this.window.moment.unix(ts).format('DD.MM.YYYY HH:mm'); + }, + getTicketUrl(t) { + return `https://project.xinon.at${t.activitiesHref.replace('api/v3', 'projects/storungen-and-support').replace('activities', 'activity')}`; + }, + getShippingNoteUrl(n) { + return `${this.window.TT_CONFIG.BASE_PATH}/WarehouseShippingNote/createPDF?id=${n.id}`; } } });