diff --git a/src/components/displays/Subusers.vue b/src/components/displays/Subusers.vue index d520e415..6619c65d 100644 --- a/src/components/displays/Subusers.vue +++ b/src/components/displays/Subusers.vue @@ -1,19 +1,61 @@ diff --git a/src/components/displays/department/pos/PosOrderItemsCurrent.vue b/src/components/displays/department/pos/PosOrderItemsCurrent.vue index 009ae8bb..bcd91d53 100644 --- a/src/components/displays/department/pos/PosOrderItemsCurrent.vue +++ b/src/components/displays/department/pos/PosOrderItemsCurrent.vue @@ -40,11 +40,13 @@ import { reference, order_notes, order_po, + order_safety_seal, } from "@/components/shop/POSDepartmentProcess.vue"; import SpanSkeleton from "@/components/displays/skeletons/SpanSkeleton.vue"; import PosOrderLicensePlates from "@/components/displays/department/pos/order/PosOrderLicensePlates.vue"; import POSOrderCustomerWishes from "@/components/displays/department/pos/order/POSOrderCustomerWishes.vue"; import POSOrderNote from "@/components/displays/department/pos/order/POSOrderNote.vue"; +import { doesOrderContainWashCertificateProduct } from "@/components/displays/department/pos/utils/washCertificate.js"; const { t } = useI18n(); const slots = useSlots(); @@ -84,6 +86,7 @@ const selectedOrderItem = ref(null); const isOrderItemEditModalOpen = ref(false); const referenceRequired = computed(() => customerRequiresReferenceNumber()); const poRequired = computed(() => customerUsesPONumbers()); +const showSafetySealField = computed(() => doesOrderContainWashCertificateProduct(visibleOrderItems.value)); const buildVisibleOrderItems = (sourceOrderItems = []) => { const pendingIds = new Set(pendingRemovedOrderItemIds.value); @@ -895,6 +898,8 @@ const deleteOrderItem = async (orderItemId) => { v-bind:order_id="activeOrderId" v-bind:reference="reference" v-bind:po="order_po" + v-bind:safetySeal="order_safety_seal" + v-bind:showSafetySeal="showSafetySealField" v-bind:referenceRequired="referenceRequired" v-bind:poRequired="poRequired" /> diff --git a/src/components/displays/department/pos/order/POSOrderCustomerWishes.vue b/src/components/displays/department/pos/order/POSOrderCustomerWishes.vue index 837bbeee..bd1bbd18 100644 --- a/src/components/displays/department/pos/order/POSOrderCustomerWishes.vue +++ b/src/components/displays/department/pos/order/POSOrderCustomerWishes.vue @@ -18,6 +18,14 @@ const props = defineProps({ type: String, required: true, }, + safetySeal: { + type: String, + default: "", + }, + showSafetySeal: { + type: Boolean, + default: false, + }, referenceRequired: { type: Boolean, default: false, @@ -121,7 +129,20 @@ const poField = createCustomerWishField({ warningIconClass: "fas fa-exclamation-triangle", }); -const fields = [referenceField, poField]; +const safetySealField = createCustomerWishField({ + key: "safety_seal", + label: computed(() => t("admin.pos.safety_seal")), + source: () => props.safetySeal, + saveValue: (value) => SessionUser.objects.orders.set.safety_seal(props.order_id, value), + testIdBase: "pos-order-customer-wishes-safety-seal", + isRequired: () => false, + warningStateWhenEmpty: null, + warningIconClass: "fas fa-shield-alt", +}); + +const fields = computed(() => { + return props.showSafetySeal ? [referenceField, poField, safetySealField] : [referenceField, poField]; +}); @@ -2073,96 +1936,10 @@ watch(customerNumber, (newVal) => { diff --git a/src/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep5.vue b/src/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep5.vue index 5ef01d30..c7086c53 100644 --- a/src/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep5.vue +++ b/src/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep5.vue @@ -91,7 +91,7 @@ const showWarning = computed(() => {
{{ $t('time_booking_flow.date_and_time') }}: -
{{ formattedDateTime || $t('time_booking_flow.not_selected') }}
+
{{ formattedDateTime || $t('time_booking_flow.not_selected') }}
{{ $t('time_booking_flow.selected_services') }}: diff --git a/src/views/dashboards/userDashboard/profile/UserProfile.vue b/src/views/dashboards/userDashboard/profile/UserProfile.vue index e8219bf6..67e29ff4 100644 --- a/src/views/dashboards/userDashboard/profile/UserProfile.vue +++ b/src/views/dashboards/userDashboard/profile/UserProfile.vue @@ -637,6 +637,18 @@ const onClickSaveWashCertificateEmail = async () => {
+ +

@@ -750,7 +762,7 @@ const onClickSaveWashCertificateEmail = async () => { >