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
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: `
-
-
-
-
-
- | Kundennummer |
- Erstellt am |
- Betreff |
- Letztes Update |
- Aktion |
-
-
-
-
- | {{ ticket.customField7 }} |
- {{ formatDate(ticket.createdAt) }} |
- {{ ticket.subject }} |
- {{ formatDate(ticket.updatedAt) }} |
-
-
-
- Ticket anzeigen
-
- |
-
-
-
-
-
- `,
+
+
+ Tickets
+
+
+
+
+ | Kundennummer |
+ Erstellt am |
+ Betreff |
+ Letztes Update |
+ Aktion |
+
+
+
+
+ | {{ ticket.customField7 }} |
+ {{ formatDate(ticket.createdAt) }} |
+ {{ ticket.subject }} |
+ {{ formatDate(ticket.updatedAt) }} |
+ Anzeigen |
+
+
+
+
+
+
+
+ Lieferscheine
+
+
+
+
+ | Art der Arbeit |
+ Lieferadresse |
+ Erstellt von |
+ Erstellt am |
+ Aktion |
+
+
+
+
+ | {{ 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}`;
}
}
});