summaryrefslogtreecommitdiff
path: root/views/mods/mod_ticket/order_view.phtml
diff options
context:
space:
mode:
Diffstat (limited to 'views/mods/mod_ticket/order_view.phtml')
-rw-r--r--views/mods/mod_ticket/order_view.phtml125
1 files changed, 125 insertions, 0 deletions
diff --git a/views/mods/mod_ticket/order_view.phtml b/views/mods/mod_ticket/order_view.phtml
new file mode 100644
index 0000000..06a16aa
--- /dev/null
+++ b/views/mods/mod_ticket/order_view.phtml
@@ -0,0 +1,125 @@
+<?php
+
+ declare(strict_types=1);
+
+ /**
+ * @author: Daniel Schmitzer (daniel@maennchen1.de)
+ * @date: 03.12.23
+ * @time: 15:14
+ */
+
+ namespace wpsgTicket;
+
+ /** @var \wpsg_order $oOrder */
+ $oOrder = \wpsg_order::getInstance(intval($this->view['data']['id']));
+
+ $data = [];
+
+ foreach ($oOrder->getOrderProducts() as $oOrderProduct) {
+
+ if (intval($oOrderProduct->getMeta('ticket_id', false, 0)) > 0) {
+
+ for ($amount_index = 0; $amount_index < $oOrderProduct->getAmount(); $amount_index++) {
+
+ $oTicketBooking = TicketBooking::getInstanceByBookingKey(TicketBooking::encodeBookingKey($oOrderProduct->getId(), $amount_index));
+
+ $data[] = $oTicketBooking->toJSON();
+
+ }
+
+ }
+
+ }
+
+?>
+
+<?php echo wpsg_drawForm_AdminboxStart(__('Ticketbuchungen', 'wpsg')); ?>
+ <div id="order_view_app">
+
+ <table>
+ <thead>
+ <tr>
+ <th class="col_ticket"><?php echo __('Ticket', 'wpsg'); ?></th>
+ <th class="col_product"><?php echo __('Ticket Produkt', 'wpsg'); ?></th>
+ <th class="col_date"><?php echo __('Datum / Zeitraum', 'wpsg'); ?></th>
+ <th class="col_state"><?php echo __('Status', 'wpsg'); ?></th>
+ </tr>
+ </thead>
+ <tbody v-for="(row, i) in data">
+ <tr>
+ <td class="col_ticket">
+ <a :href="row.urls.pdf" target="_blank">{{row.label}}</a>
+ </td>
+ <td class="col_product">
+ <a :href="row.urls.product_edit">{{row.ticket_product_label}}</a>
+ </td>
+ <td class="col_date">{{row.ticket_data.label}}</td>
+ <td class="col_state">
+ <span :class="{'text-red': row.state_code === <?php echo TicketBooking::STATUS_UNAVAILABLE; ?>, 'text-green': row.state_code === <?php echo TicketBooking::STATUS_AVAILABLE; ?>}">{{row.state_label}}</span>
+ <span v-if="row.is_send" :title="row.is_send_tooltip" class="ml-4 glyphicon glyphicon-send text-green"></span>
+ </td>
+ </tr>
+ <template v-if="row.arProductVars.length > 0">
+ <template v-for="(pv_data, pv_id) of row.arProductVars">
+ <tr>
+ <td colspan="2">
+ {{pv_data['name']}}:
+ </td>
+ <td colspan="2">
+ {{pv_data['value']}}
+ </td>
+ </tr>
+ </template>
+ </template>
+ </tbody>
+ </table>
+
+ <br />
+
+ <div class="flex items-center gap-2">
+
+ <a href="<?php echo \add_query_arg([
+ 'action' => 'wpsg_ticket',
+ 'ticket_action' => 'export',
+ 'order_id' => $oOrder->getId()
+ ], \admin_url('admin-ajax.php')); ?>" target="_blank" class="button"><?php echo __('Terminübersicht exportieren', 'wpsg'); ?></a>
+
+ <a href="<?php echo \add_query_arg([
+ 'action' => 'wpsg_ticket',
+ 'ticket_action' => 'resend',
+ 'order_id' => $oOrder->getId()
+ ], \admin_url('admin-ajax.php')); ?>" class="button"><?php echo __('Tickets per E-Mail an Kunden versenden', 'wpsg'); ?></a>
+
+ </div>
+
+ </div>
+ <style>
+
+ #order_view_app table { width:100%; }
+ #order_view_app table tr td { padding:0.25rem 0.5rem 0.25rem 0; border-bottom:1px solid #DEDEDE; }
+ #order_view_app table tr th { border-bottom:1px solid black; }
+ #order_view_app .text-red { color:red; }
+ #order_view_app .text-green { color:green; }
+ #order_view_app .flex { display:flex; }
+ #order_view_app .items-center { align-items:center; }
+ #order_view_app .ml-4 { margin-left:1rem; }
+ #order_view_app .gap-2 { gap:0.5rem; }
+
+ </style>
+<?php echo wpsg_drawForm_AdminboxEnd(); ?>
+
+<script type="module">
+
+ const wpsgSettings = {
+ baseUrl: '<?php echo WPSG_URL; ?>'
+ };
+
+ import { order_view } from '<?php echo WPSG_URL; ?>mods/mod_ticket/assets/js/wpsg_order_view.js';
+
+ order_view(wpsgSettings, <?php echo json_encode([
+ 'order_id' => $oOrder->getId(),
+ 'data' => $data,
+ 'ajax_url' => \admin_url('admin-ajax.php')
+ ]); ?>);
+
+</script>