63 lines
1.3 KiB
TypeScript
63 lines
1.3 KiB
TypeScript
|
|
|
|
|
|
|
|
|
|
export class Timesheets {
|
|
employee_fullname: string;
|
|
timesheets: Timesheet[];
|
|
}
|
|
|
|
export class Timesheet {
|
|
timesheet_id: number;
|
|
is_approved: boolean;
|
|
days: TimesheetDay[];
|
|
weekly_hours: TotalHours[];
|
|
weekly_expenses: TotalExpenses[];
|
|
}
|
|
|
|
export class TimesheetDay {
|
|
date: string;
|
|
shifts: Shift[];
|
|
expenses: Expense[];
|
|
daily_hours: TotalHours[];
|
|
daily_expenses: TotalExpenses[];
|
|
}
|
|
|
|
export class TotalHours {
|
|
regular: number;
|
|
evening: number;
|
|
emergency: number;
|
|
overtime: number;
|
|
vacation: number;
|
|
holiday: number;
|
|
sick: number;
|
|
}
|
|
export class TotalExpenses {
|
|
expenses: number;
|
|
perd_diem: number;
|
|
on_call: number;
|
|
mileage: number;
|
|
}
|
|
|
|
export class Shift {
|
|
date: string;
|
|
start_time: string;
|
|
end_time: string;
|
|
type: string;
|
|
is_remote: boolean;
|
|
is_approved: boolean;
|
|
shift_id?: number | null;
|
|
comment?: string | null;
|
|
}
|
|
|
|
export class Expense {
|
|
date: string;
|
|
is_approved: boolean;
|
|
comment: string;
|
|
amount?: number;
|
|
mileage?: number;
|
|
attachment?: string;
|
|
expense_id?: number | null;
|
|
supervisor_comment?: string | null;
|
|
} |