From 1274a1b65b0eb3c7dfd78a0cd2882db2de0297f0 Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Tue, 11 Nov 2025 12:45:38 -0500 Subject: [PATCH] refactor(timesheet): update appearance, work on expense dialog, plugging to backend. --- .../components/pay-period-navigator.vue | 3 +- .../components/expense-dialog-form.vue | 11 ++- .../components/expense-dialog-list-item.vue | 33 +++++---- .../components/expense-dialog-list.vue | 17 +++-- .../components/shift-list-day-row.vue | 1 - .../timesheets/composables/use-expense-api.ts | 8 +-- .../timesheets/models/expense.models.ts | 29 +------- .../timesheets/services/expense-service.ts | 14 ++-- src/stores/expense-store.ts | 69 +++++-------------- src/stores/timesheet-store.ts | 2 +- 10 files changed, 78 insertions(+), 109 deletions(-) diff --git a/src/modules/shared/components/pay-period-navigator.vue b/src/modules/shared/components/pay-period-navigator.vue index f9ff694..86c4268 100644 --- a/src/modules/shared/components/pay-period-navigator.vue +++ b/src/modules/shared/components/pay-period-navigator.vue @@ -5,6 +5,7 @@ const NEXT = 1; const PREVIOUS = -1; + const PAY_PERIOD_DATE_LIMIT = '2023/12/17'; const timesheet_store = useTimesheetStore(); @@ -125,7 +126,7 @@ class="q-mt-xl" today-btn mask="YYYY-MM-DD" - :options="date => date > '2023/12/16'" + :options="date => date >= PAY_PERIOD_DATE_LIMIT" @update:model-value="onDateSelected" /> diff --git a/src/modules/timesheets/components/expense-dialog-form.vue b/src/modules/timesheets/components/expense-dialog-form.vue index 6d23c7d..5574c57 100644 --- a/src/modules/timesheets/components/expense-dialog-form.vue +++ b/src/modules/timesheets/components/expense-dialog-form.vue @@ -31,8 +31,8 @@ }; const cancelUpdateMode = () => { - expenses_store.current_expense = new Expense; - expenses_store.initial_expense = new Expense; + expenses_store.current_expense = new Expense(date.formatDate(new Date(), 'YYYY-MM-DD')); + expenses_store.initial_expense = new Expense(date.formatDate(new Date(), 'YYYY-MM-DD')); expenses_store.mode = 'create'; }; @@ -40,6 +40,12 @@ if (expenses_store.mode === 'create') await expenses_api.createExpenseByEmployeeEmail(employee_email ?? '', expenses_store.current_expense?.date ?? ''); else await expenses_api.updateExpenseByEmployeeEmail(employee_email ?? '', expenses_store.current_expense?.date ?? ''); }; + + const getExpenseCalendarRange = (current_date: string) => { + const period = timesheet_store.pay_period; + if (period !== undefined) return current_date >= period.period_start && current_date <= period.period_end; + return false; + }