128 lines
6.0 KiB
JavaScript
128 lines
6.0 KiB
JavaScript
window.localStorage.setItem('tt-table-WarehouseOrderRequest', JSON.stringify({
|
|
filters: {
|
|
takeOverBy: null,
|
|
canceled: 0
|
|
}
|
|
}));
|
|
|
|
window.TT_CONFIG["CRUD_CONFIG"]["additionalActions"] = [
|
|
...window.TT_CONFIG["CRUD_CONFIG"]["additionalActions"],
|
|
{
|
|
"key": "cancel",
|
|
"title": "Bestellwunsch stornieren",
|
|
"class": "fas fa-times text-danger",
|
|
"condition": (row) => window.TT_CONFIG['WAREHOUSE_ADMIN'] === '1' && row.canceled === 0,
|
|
},
|
|
{
|
|
"key": "uncancel",
|
|
"title": "Bestellwunsch wiederherstellen",
|
|
"class": "fas fa-check text-success",
|
|
"condition": (row) => window.TT_CONFIG['WAREHOUSE_ADMIN'] === '1' && row.canceled === 1,
|
|
},
|
|
]
|
|
|
|
Vue.component('warehouse-order-request', {
|
|
//language=Vue
|
|
template: `
|
|
<tt-card>
|
|
<tt-table-crud @openHistory="historyModal = true; historyModalId = $event.id"
|
|
@cancel="cancelOrderRequest($event, '1')"
|
|
@uncancel="cancelOrderRequest($event, '0')"
|
|
ref="crud">
|
|
<!-- <slot name="table-top-buttons"></slot> add checkbox "Ausgeblendete Bestellungen anzeigen-->
|
|
|
|
<template v-slot:table-top-buttons>
|
|
<div class="d-flex">
|
|
<tt-button
|
|
class="mr-2"
|
|
@click="showHiddenRequests = !showHiddenRequests"
|
|
:text="showHiddenRequests ? 'Erledigte Bestellungen ausblenden' : 'Erledigte Bestellungen anzeigen'"
|
|
:additional-class="showHiddenRequests ? 'btn-danger' : 'btn-primary'"/>
|
|
<tt-button @click="showCanceledRequests = !showCanceledRequests"
|
|
:text="showCanceledRequests ? 'Stornierte Bestellungen ausblenden' : 'Stornierte Bestellungen anzeigen'"
|
|
:additional-class="showCanceledRequests ? 'btn-danger' : 'btn-primary'"/>
|
|
</div>
|
|
</template>
|
|
|
|
<template v-slot:create="{ row }">
|
|
{{ row.create ? window.moment(row.create * 1000).format('DD.MM.YYYY') : '' }}
|
|
</template>
|
|
|
|
<template v-slot:order="{ row }">
|
|
{{ row.order ? window.moment(row.order * 1000).format('DD.MM.YYYY') : '' }}
|
|
</template>
|
|
|
|
<template v-slot:takeover="{ row }">
|
|
{{ row.takeOver ? window.moment(row.takeOver * 1000).format('DD.MM.YYYY') : '' }}
|
|
</template>
|
|
|
|
<template v-slot:note="{ row }">
|
|
<span v-if="row.note && row.note.length > 45" :title="row.note">{{ row.note.substring(0, 45) }}...</span>
|
|
<span v-else>{{ row.note }}</span>
|
|
</template>
|
|
|
|
</tt-table-crud>
|
|
<warehouse-history-modal :show.sync="historyModal" :id="historyModalId"/>
|
|
</tt-card>
|
|
`, data() {
|
|
return {
|
|
window: window, historyModal: false, historyModalId: null, showHiddenRequests: false, showCanceledRequests: false
|
|
}
|
|
},
|
|
async mounted() {
|
|
if (this.window.TT_CONFIG.WAREHOUSE_ADMIN !== '1') return
|
|
|
|
this.$refs.crud.$watch('crudModal', (value) => {
|
|
return
|
|
if (value) {
|
|
// if id is not 'create' then check if order is set and if not set it to current date
|
|
// if order is set then check if takeover is set and if not set it to current date
|
|
if (!this.$refs.crud.crudModalData.id) return
|
|
|
|
if (!this.$refs.crud.crudModalData.order) {
|
|
this.$refs.crud.crudModalData.order = window.moment().unix()
|
|
this.$refs.crud.crudModalData.orderBy = window.TT_CONFIG.user_id
|
|
this.$refs.crud.$refs["order-modal-input"][0].setStartDate(window.moment().format('MM/DD/YYYY'))
|
|
return
|
|
}
|
|
|
|
if (!this.$refs.crud.crudModalData.takeover) {
|
|
this.$refs.crud.crudModalData.takeover = window.moment().unix
|
|
this.$refs.crud.crudModalData.takeOverBy = window.TT_CONFIG.user_id
|
|
this.$refs.crud.$refs["takeover-modal-input"][0].setStartDate(window.moment().format('MM/DD/YYYY'))
|
|
}
|
|
|
|
|
|
}
|
|
})
|
|
},
|
|
methods: {
|
|
// portected function cancelAction() {
|
|
// $id = $this->request->id;
|
|
// $cancel = $this->request->cancel;
|
|
async cancelOrderRequest(row, cancel) {
|
|
if (!window.confirm('Bestellwunsch wirklich stornieren?')) return
|
|
|
|
const response = await axios.get(window.TT_CONFIG["BASE_PATH"] + '/WarehouseOrderRequest/cancel?id=' + row.id + '&cancel=' + cancel);
|
|
if (response.data.success) {
|
|
this.window.notify('success', response.data.message || 'Erfolgreich aktualisiert')
|
|
this.$refs.crud.$refs.table.refreshTable()
|
|
return
|
|
}
|
|
this.window.notify('error', response.data.message || 'Fehler beim aktualisieren')
|
|
}
|
|
},
|
|
watch: {
|
|
async showHiddenRequests(value) {
|
|
this.showCanceledRequests = false
|
|
this.$refs.crud.$refs.table.$set(this.$refs.crud.$refs.table.filters, 'canceled', '')
|
|
this.$refs.crud.$refs.table.$set(this.$refs.crud.$refs.table.filters, 'takeOverBy', value ? '' : null)
|
|
},
|
|
async showCanceledRequests(value) {
|
|
this.showHiddenRequests = false
|
|
this.$refs.crud.$refs.table.$set(this.$refs.crud.$refs.table.filters, 'canceled', value ? '1' : '')
|
|
this.$refs.crud.$refs.table.$set(this.$refs.crud.$refs.table.filters, 'takeOverBy', '')
|
|
}
|
|
}
|
|
})
|