Updated Shipping Note
This commit is contained in:
@@ -1,7 +1,48 @@
|
||||
// here we need to change window.TT_CONFIG["CRUD_CONFIG"]["additionalActions"] to add actions and this conditions like this:
|
||||
// <button v-if="window.TT_CONFIG['WAREHOUSE_ADMIN'] == true && status === 'new'" class="btn btn-warning" @click="changeStatus('in_progress')">In
|
||||
// Bearbeitung
|
||||
// </button>
|
||||
// <button v-if="window.TT_CONFIG['WAREHOUSE_ADMIN'] == true && (status === 'new' || status === 'in_progress')" class="btn btn-success"
|
||||
// @click="changeStatus('accepted')">Akzeptieren
|
||||
// </button>
|
||||
// <button v-if="window.TT_CONFIG['WAREHOUSE_ADMIN'] == true && status === 'accepted'" class="btn btn-info" @click="changeStatus('invoiced')">
|
||||
// Verrechnet
|
||||
// </button>
|
||||
// <button class="btn btn-info" @click="$emit('open-signing-modal', id)">Unterschreiben</button>
|
||||
|
||||
// inside additionalActions each entry looks like {
|
||||
// "key": "openHistory",
|
||||
// "title": "Historie",
|
||||
// "class": "fas fa-history text-primary"
|
||||
// } but this is without the condition function
|
||||
|
||||
window.TT_CONFIG["CRUD_CONFIG"]["additionalActions"] = [
|
||||
...window.TT_CONFIG["CRUD_CONFIG"]["additionalActions"],
|
||||
{
|
||||
"key": "status_to_progress",
|
||||
"title": "In Bearbeitung",
|
||||
"class": "fas fa-cog text-warning",
|
||||
"condition": (row) => window.TT_CONFIG['WAREHOUSE_ADMIN'] === '1' && row.status === 'new',
|
||||
},
|
||||
{
|
||||
"key": "status_to_accepted",
|
||||
"title": "Akzeptieren",
|
||||
"class": "fas fa-check text-success",
|
||||
"condition": (row) => window.TT_CONFIG['WAREHOUSE_ADMIN'] === '1' && (row.status === 'new' || row.status === 'in_progress'),
|
||||
},
|
||||
{
|
||||
"key": "status_to_invoiced",
|
||||
"title": "Verrechnet",
|
||||
"class": "fas fa-file-invoice text-info",
|
||||
"condition": (row) => window.TT_CONFIG['WAREHOUSE_ADMIN'] === '1' && row.status === 'accepted',
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
Vue.component('warehouse-shipping-note-positions', {
|
||||
//language=Vue
|
||||
props: {
|
||||
positions: Array,
|
||||
positions: Array,
|
||||
hoursEntries: Array
|
||||
}, data() {
|
||||
return {
|
||||
@@ -20,8 +61,8 @@ Vue.component('warehouse-shipping-note-positions', {
|
||||
{{ position.article ? articleData[position.article]?.text : position.articlePacket ? articlePacketData[position.articlePacket]?.text : position.articleText }}</span>
|
||||
</li>
|
||||
<template v-for="entry in hoursEntries">
|
||||
<li><span>{{ entry.hourCount }}h Arbeitszeit</span></li>
|
||||
<li v-if="entry.carId">{{entry.kilometerCount}}km Anfahrt</li>
|
||||
<li><span>{{ entry.hourCount }}h Arbeitszeit</span></li>
|
||||
<li v-if="entry.carId">{{ entry.kilometerCount }}km Anfahrt</li>
|
||||
</template>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -51,10 +92,12 @@ Vue.component('warehouse-shipping-note', {
|
||||
//language=Vue
|
||||
template: `
|
||||
<tt-card>
|
||||
<warehouse-shipping-note-modal v-if="shippingNoteModalId" :id="shippingNoteModalId" @close="shippingNoteModalId = null;$refs.table.$refs.table.refreshTable()"
|
||||
<warehouse-shipping-note-modal v-if="shippingNoteModalId" :id="shippingNoteModalId"
|
||||
@close="shippingNoteModalId = null;$refs.table.$refs.table.refreshTable()"
|
||||
@open-signing-modal="signingShippingNoteId = $event"/>
|
||||
<warehouse-history-modal :show.sync="historyModal" :id="historyModalId"/>
|
||||
<warehouse-shipping-note-signature-pad v-if="signingShippingNoteId" :shipping-note-id="signingShippingNoteId" @close="signingShippingNoteId = null"/>
|
||||
<warehouse-shipping-note-signature-pad v-if="signingShippingNoteId" :shipping-note-id="signingShippingNoteId"
|
||||
@close="signingShippingNoteId = null"/>
|
||||
|
||||
<button @click="shippingNoteModalId = 'create'" class="btn btn-primary">Lieferschein erstellen</button>
|
||||
|
||||
@@ -62,6 +105,9 @@ Vue.component('warehouse-shipping-note', {
|
||||
@openHistory="historyModal = true; historyModalId = $event.id"
|
||||
@print="window.open(window.TT_CONFIG['BASE_PATH'] + '/WarehouseShippingNote/createPDF?id=' + $event.id)"
|
||||
@printWithPrice="window.open(window.TT_CONFIG['BASE_PATH'] + '/WarehouseShippingNote/createPDF?id=' + $event.id + '&price=true')"
|
||||
@status_to_progress="changeStatus($event.id, 'in_progress')"
|
||||
@status_to_accepted="changeStatus($event.id, 'accepted')"
|
||||
@status_to_invoiced="changeStatus($event.id, 'invoiced')"
|
||||
@edit="shippingNoteModalId = $event.id"
|
||||
ref="table">
|
||||
|
||||
@@ -73,10 +119,10 @@ Vue.component('warehouse-shipping-note', {
|
||||
</tt-card>
|
||||
`, data() {
|
||||
return {
|
||||
window: window,
|
||||
historyModal: false,
|
||||
historyModalId: null,
|
||||
shippingNoteModalId: null,
|
||||
window: window,
|
||||
historyModal: false,
|
||||
historyModalId: null,
|
||||
shippingNoteModalId: null,
|
||||
signingShippingNoteId: null
|
||||
}
|
||||
},
|
||||
@@ -85,5 +131,16 @@ Vue.component('warehouse-shipping-note', {
|
||||
if (window.location.search.includes('doAction=createNew')) {
|
||||
this.shippingNoteModalId = 'create';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async changeStatus(id, status) {
|
||||
const response = await axios.post(window.TT_CONFIG.BASE_PATH + '/WarehouseShippingNote/changeStatus', {id, status});
|
||||
if (response.data.success) {
|
||||
this.window.notify('success', response.data.message || 'Erfolgreich aktualisiert');
|
||||
this.$refs.table.$refs.table.refreshTable();
|
||||
} else {
|
||||
this.window.notify('error', response.data.message || 'Ein Fehler ist aufgetreten');
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user