diff --git a/frontend/src/lib/components/account/EditRequestModal.svelte b/frontend/src/lib/components/account/EditRequestModal.svelte index 09c82f8..56e0b14 100644 --- a/frontend/src/lib/components/account/EditRequestModal.svelte +++ b/frontend/src/lib/components/account/EditRequestModal.svelte @@ -129,11 +129,18 @@ editMode === 'time' ? bookingTotalDuration : selectedServicesDuration ); + const servicesChanged = $derived( + (booking.services || []).length !== selectedServices.length || + (booking.services || []).some( + (bs) => !selectedServices.some((ss) => ss.id === bs.service_id) + ) + ); + const canSubmit = $derived( submitting === false && ((editMode === 'time' && !!newDate && newTime.length >= 4) || - (editMode === 'services' && selectedServices.length > 0) || - (editMode === 'both-time' && !!newDate && newTime.length >= 4)) + (editMode === 'services' && selectedServices.length > 0 && servicesChanged) || + (editMode === 'both-time' && !!newDate && newTime.length >= 4 && servicesChanged)) ); const notesChanged = $derived(notes.trim() !== originalNotes.trim()); @@ -1277,14 +1284,14 @@ {:else if editMode === 'both-time'} diff --git a/frontend/src/lib/components/account/UserBookingModal.svelte b/frontend/src/lib/components/account/UserBookingModal.svelte index 4d798a5..f65fe7c 100644 --- a/frontend/src/lib/components/account/UserBookingModal.svelte +++ b/frontend/src/lib/components/account/UserBookingModal.svelte @@ -277,6 +277,13 @@ ${hasVAT ? `\u00a3${totalNet.toFixed(2)}\u00a3${totalVAT.toFixed(2)}\u00a3${(totalNet + totalVAT).toFixed(2)}` : ''} Total Paid\u00a3${grossTotal.toFixed(2)} +

Amount Due

+ + + + ${discountPayments.length > 0 ? `` : ''} + +
Total Amount\u00a3${selectedBooking.total_amount.toFixed(2)}
Payments Made\u2212\u00a3${grossTotal.toFixed(2)}
Discounts Applied\u2212\u00a3${discountPayments.reduce((s, d) => s + Math.abs(d.amount), 0).toFixed(2)}
Amount Due\u00a3${Math.max(0, selectedBooking.total_amount - grossTotal - discountPayments.reduce((s, d) => s + Math.abs(d.amount), 0)).toFixed(2)}
${hasVAT ? `

VAT is included at ${biz?.default_vat_rate ?? 20}% where shown above.

` : '

VAT is not applicable for this transaction.

'} `); diff --git a/frontend/src/lib/components/layout/NavBar.svelte b/frontend/src/lib/components/layout/NavBar.svelte index afc4c28..a6e8f94 100644 --- a/frontend/src/lib/components/layout/NavBar.svelte +++ b/frontend/src/lib/components/layout/NavBar.svelte @@ -90,10 +90,9 @@