diff --git a/src/views/dashboards/departmentDashboard/modules/order-bookings/DepartmentDashboardOrderBooking.vue b/src/views/dashboards/departmentDashboard/modules/order-bookings/DepartmentDashboardOrderBooking.vue index 919fa407..d43aa59c 100644 --- a/src/views/dashboards/departmentDashboard/modules/order-bookings/DepartmentDashboardOrderBooking.vue +++ b/src/views/dashboards/departmentDashboard/modules/order-bookings/DepartmentDashboardOrderBooking.vue @@ -126,6 +126,13 @@ const total = computed(() => { return (items.value || []).reduce((sum, it: any) => sum + (parseFloat(it.price || 0) * (parseInt(it.quantity || 1))), 0); }); +const canEditBooking = () => { + // Admins can always edit + if (SessionUser.canAccessAdmin() && SessionUser.hasPermission('edit_bookings')) return true; + if (!!booking.value.order_id) return false; // Linked to order, restrict edits for users + if (SessionUser.hasPermission('edit_own_bookings')) return true; +} + watch(() => router.currentRoute.value.params.bookingId, (val) => { bookingId.value = val as any; getBooking(); @@ -167,6 +174,7 @@ onMounted(async () => { column="department" :parse-function="(value) => value ? `${getDepartmentName(value) || value}` : 'Ingen afdeling valgt'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -177,6 +185,7 @@ onMounted(async () => { column="datetime" :parse-function="(value) => value ? `${value}` : 'Ingen dato valgt'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -187,6 +196,7 @@ onMounted(async () => { column="reg_1" :parse-function="(value) => value || 'Ingen registreret'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -197,6 +207,7 @@ onMounted(async () => { column="reg_2" :parse-function="(value) => value || '-'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -207,6 +218,7 @@ onMounted(async () => { column="po" :parse-function="(value) => value || '-'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -217,6 +229,7 @@ onMounted(async () => { column="reference" :parse-function="(value) => value || '-'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -228,6 +241,7 @@ onMounted(async () => { column="note" :parse-function="(value) => value || '-'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -238,6 +252,7 @@ onMounted(async () => { column="pickup" :parse-function="(value) => value ? 'Ja' : 'Nej'" :edit-function="SessionUser.objects.order_bookings.showEditObjectFieldForm" + :permission-check-function="() => canEditBooking()" /> @@ -271,14 +286,14 @@ onMounted(async () => {
- + {{ item.quantity || 1 }} - +
{{ (parseFloat(item.price || 0) * (parseInt(item.quantity || 1))).toLocaleString('da-DK', { style: 'currency', currency: 'DKK' }) }} - @@ -293,17 +308,17 @@ onMounted(async () => {
-
- +
-