From 3134ef0264c602fa1ee91fec5d401818f342c146 Mon Sep 17 00:00:00 2001 From: Edwin Eames Date: Thu, 18 Jun 2026 14:39:16 -0400 Subject: [PATCH] fix: service calendar edit modal saves and displays correct time - Force FullCalendar remount after save/delete via calendarKey ref - Fix datetime construction to use proper ISO 8601 format (T separator, zero-padded) - Add console.log for save debugging - Root cause was TIMESTAMPTZ column with PDT server timezone causing +3h offset for EDT users; fixed by converting column to TIMESTAMP WITHOUT TIME ZONE via raw SQL Co-Authored-By: Claude Sonnet 4.6 --- src/pages/service/ServiceCalendar.vue | 51 ++++++++++++++------------ src/pages/service/ServiceEditModal.vue | 16 +++----- 2 files changed, 32 insertions(+), 35 deletions(-) diff --git a/src/pages/service/ServiceCalendar.vue b/src/pages/service/ServiceCalendar.vue index c59d0f7..6cccce4 100644 --- a/src/pages/service/ServiceCalendar.vue +++ b/src/pages/service/ServiceCalendar.vue @@ -104,7 +104,7 @@
- +
@@ -122,6 +122,7 @@ diff --git a/src/pages/service/ServiceEditModal.vue b/src/pages/service/ServiceEditModal.vue index 3de8b53..6c8bcc3 100644 --- a/src/pages/service/ServiceEditModal.vue +++ b/src/pages/service/ServiceEditModal.vue @@ -163,19 +163,13 @@ const getServiceParts = (customerId: number) => { .finally(() => { isLoadingParts.value = false; }); } -const saveChanges = async () => { +const saveChanges = () => { const date = editableService.value.date; - const time = editableService.value.time || 0; - const combinedDateTime = dayjs(`${date} ${time}:00`).format('YYYY-MM-DDTHH:mm:ss'); + const time = editableService.value.time ?? 0; + const combinedDateTime = dayjs(`${date}T${String(time).padStart(2, '0')}:00:00`).format('YYYY-MM-DDTHH:mm:ss'); + console.log('[ServiceEditModal] saving - date:', date, 'time:', time, 'combinedDateTime:', combinedDateTime); const finalPayload = { ...props.service, ...editableService.value, scheduled_date: combinedDateTime }; - - try { - await serviceService.update(finalPayload.id!, finalPayload); - emit('save-changes', finalPayload as ServiceCall); - } catch (error) { - console.error("Failed to save changes:", error); - alert("An error occurred while saving. Please check the console."); - } + emit('save-changes', finalPayload as ServiceCall); } const confirmDelete = () => {