+
{{ $t('timeSheet.dateRangesTo') }}
-
+
{{ pay_period_label.end_date }}
diff --git a/src/modules/timesheet-approval/services/services-timesheet-approval.ts b/src/modules/timesheet-approval/services/services-timesheet-approval.ts
index 43f509d..48761e7 100644
--- a/src/modules/timesheet-approval/services/services-timesheet-approval.ts
+++ b/src/modules/timesheet-approval/services/services-timesheet-approval.ts
@@ -19,7 +19,7 @@ export const timesheetApprovalService = {
getPayPeriodEmployeeOverviews: async (year: number, period_number: number, supervisor_email: string): Promise
=> {
// TODO: REMOVE MOCK DATA PEFORE PUSHING TO PROD
const response = await api.get(`pay-periods/${year}/${period_number}/${supervisor_email}`);
- console.log('all employee data: ', response.data);
+ console.log('pay period data: ', response.data);
return response.data;
},
diff --git a/src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface.ts b/src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface.ts
index bc8955e..01ce1b9 100644
--- a/src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface.ts
+++ b/src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface.ts
@@ -1,6 +1,11 @@
-import type { TimesheetDetailsWeek } from "src/modules/timesheets/types/timesheet-details-interface";
+import { default_timesheet_details_week, type TimesheetDetailsWeek } from "src/modules/timesheets/types/timesheet-details-interface";
export interface PayPeriodEmployeeDetails {
week1: TimesheetDetailsWeek;
week2: TimesheetDetailsWeek;
-};
\ No newline at end of file
+};
+
+export const default_pay_period_employee_details = {
+ week1: default_timesheet_details_week(),
+ week2: default_timesheet_details_week(),
+}
\ No newline at end of file
diff --git a/src/modules/timesheet-approval/types/timesheet-approval-pay-period-overview-employee-interface.ts b/src/modules/timesheet-approval/types/timesheet-approval-pay-period-overview-employee-interface.ts
index b0ebd46..30f2fe3 100644
--- a/src/modules/timesheet-approval/types/timesheet-approval-pay-period-overview-employee-interface.ts
+++ b/src/modules/timesheet-approval/types/timesheet-approval-pay-period-overview-employee-interface.ts
@@ -8,4 +8,16 @@ export interface PayPeriodOverviewEmployee {
expenses: number;
mileage: number;
is_approved: boolean;
-};
\ No newline at end of file
+};
+
+export const default_pay_period_overview_employee: PayPeriodOverviewEmployee = {
+ email: '',
+ employee_name: '',
+ regular_hours: -1,
+ evening_hours: -1,
+ emergency_hours: -1,
+ overtime_hours: -1,
+ expenses: -1,
+ mileage: -1,
+ is_approved: false
+}
\ No newline at end of file
diff --git a/src/modules/timesheets/types/timesheet-details-interface.ts b/src/modules/timesheets/types/timesheet-details-interface.ts
index 4a2e921..0721eb8 100644
--- a/src/modules/timesheets/types/timesheet-details-interface.ts
+++ b/src/modules/timesheets/types/timesheet-details-interface.ts
@@ -6,6 +6,21 @@ export interface TimesheetDetailsWeek {
expenses: WeekDay;
}
+export interface TimesheetDetailsDailySchedule {
+ shifts: Shift[];
+ regular_hours: number;
+ evening_hours: number;
+ emergency_hours: number;
+ overtime_hours: number;
+ short_date: string; // ex. 08/24
+ break_duration?: number;
+}
+
+interface Expense {
+ is_approved: boolean;
+ amount: number;
+};
+
type WeekDay = {
sun: T;
mon: T;
@@ -16,30 +31,47 @@ type WeekDay = {
sat: T;
}
-interface TimesheetDetailsDailySchedule {
- shifts: Shift[];
- regular_hours: number;
- evening_hours: number;
- emergency_hours: number;
- overtime_hours: number;
- short_date: string; // ex. 08/24
- break_duration?: number;
-}
interface TimesheetDetailsDailyExpenses {
- costs: Expense[];
- mileage: Expense[];
+ cash: Expense[];
+ km: Expense[];
[otherType: string]: Expense[]; //for possible future types of expenses
}
-interface Expense {
- is_approved: boolean;
- amount: number;
-};
-
//employee timesheet template
export interface EmployeeTimesheetDetailsWeek {
is_approved: boolean;
shifts: WeekDay;
expenses: WeekDay;
}
+// empty default builder
+const makeWeek = (factory: () => T): WeekDay => ({
+ sun: factory(),
+ mon: factory(),
+ tue: factory(),
+ wed: factory(),
+ thu: factory(),
+ fri: factory(),
+ sat: factory(),
+});
+
+const emptyDailySchedule = (): TimesheetDetailsDailySchedule => ({
+ shifts: [],
+ regular_hours: 0,
+ evening_hours: 0,
+ emergency_hours: 0,
+ overtime_hours: 0,
+ short_date: "",
+ break_duration: 0,
+});
+
+const emptyDailyExpenses = (): TimesheetDetailsDailyExpenses => ({
+ cash: [],
+ km: [],
+});
+
+export const default_timesheet_details_week = (): TimesheetDetailsWeek => ({
+ is_approved: false,
+ shifts: makeWeek(emptyDailySchedule),
+ expenses: makeWeek(emptyDailyExpenses),
+});
diff --git a/src/modules/timesheets/types/timesheet-shift-interface.ts b/src/modules/timesheets/types/timesheet-shift-interface.ts
index d5eab27..b57aecf 100644
--- a/src/modules/timesheets/types/timesheet-shift-interface.ts
+++ b/src/modules/timesheets/types/timesheet-shift-interface.ts
@@ -1,4 +1,4 @@
-export type CreateShiftPayload = {
+export interface CreateShiftPayload {
date: string;
type: string;
start_time: string;
@@ -7,15 +7,26 @@ export type CreateShiftPayload = {
is_remote?: boolean;
};
-export type CreateWeekShiftPayload = {
+export interface CreateWeekShiftPayload {
shifts: CreateShiftPayload[];
}
-export type Shift = {
- type: string;
- start_time: string;
- end_time: string;
- comment: string;
+export interface Shift {
+ date : string;
+ type : string;
+ start_time : string;
+ end_time : string;
+ comment : string;
is_approved: boolean;
- is_remote: boolean;
-}
\ No newline at end of file
+ is_remote : boolean;
+}
+
+export const default_shift: Shift = {
+ date: '',
+ start_time: '--:--',
+ end_time: '--:--',
+ type: '',
+ comment: '',
+ is_approved: false,
+ is_remote: false,
+}
diff --git a/src/stores/timesheet-store.ts b/src/stores/timesheet-store.ts
index 143a67c..72b48d8 100644
--- a/src/stores/timesheet-store.ts
+++ b/src/stores/timesheet-store.ts
@@ -4,7 +4,7 @@ import { timesheetApprovalService } from 'src/modules/timesheet-approval/service
import { timesheetTempService } from 'src/modules/timesheets/services/timesheet-services';
import type { PayPeriod } from 'src/modules/shared/types/pay-period-interface';
import type { PayPeriodOverviewEmployee } from "src/modules/timesheet-approval/types/timesheet-approval-pay-period-overview-employee-interface";
-import type { PayPeriodEmployeeDetails } from 'src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface';
+import { default_pay_period_employee_details, type PayPeriodEmployeeDetails } from 'src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface';
import type { PayPeriodReportFilters } from 'src/modules/timesheet-approval/types/timesheet-approval-pay-period-report-interface';
import type { Timesheet } from 'src/modules/timesheets/types/timesheet-interface';
import type { CreateShiftPayload } from 'src/modules/timesheets/types/timesheet-shift-interface';
@@ -33,7 +33,7 @@ export const useTimesheetStore = defineStore('timesheet', () => {
const current_pay_period = ref(default_pay_period);
const pay_period_overview_employees = ref([]);
const pay_period_overview_employee_approval_statuses = ref<{key: string, value: boolean}[] | undefined>();
- const pay_period_employee_details = ref();
+ const pay_period_employee_details = ref(default_pay_period_employee_details);
const pay_period_report = ref();
//employee timesheet
diff --git a/src/utils/pay-period-calculator.ts b/src/utils/date-and-time-utils.ts
similarity index 96%
rename from src/utils/pay-period-calculator.ts
rename to src/utils/date-and-time-utils.ts
index 36adb38..5ce223e 100644
--- a/src/utils/pay-period-calculator.ts
+++ b/src/utils/date-and-time-utils.ts
@@ -13,4 +13,4 @@ export const getCurrentPayPeriod = (today = new Date()): number => {
console.log(current_period);
return current_period;
-}
+}
\ No newline at end of file