55 lines
1.7 KiB
TypeScript
55 lines
1.7 KiB
TypeScript
import { DayExpensesDto, WeekDto, DetailedShifts, TimesheetPeriodDto } from "../dtos/timesheet-period.dto";
|
|
import { ExpensesAmount } from "../types/timesheet.types";
|
|
import { addDays, shortDate } from "../utils/timesheet.helpers";
|
|
|
|
// Factories
|
|
export function makeEmptyDayExpenses(): DayExpensesDto {
|
|
return {
|
|
expenses: [],
|
|
total_expense: -1,
|
|
total_mileage: -1,
|
|
};
|
|
}
|
|
|
|
export function makeEmptyWeek(week_start: Date): WeekDto {
|
|
const make_empty_shifts = (offset: number): DetailedShifts => ({
|
|
shifts: [],
|
|
regular_hours: 0,
|
|
evening_hours: 0,
|
|
emergency_hours: 0,
|
|
overtime_hours: 0,
|
|
comment: '',
|
|
short_date: shortDate(addDays(week_start, offset)),
|
|
break_durations: 0,
|
|
});
|
|
return {
|
|
is_approved: true,
|
|
shifts: {
|
|
sun: make_empty_shifts(0),
|
|
mon: make_empty_shifts(1),
|
|
tue: make_empty_shifts(2),
|
|
wed: make_empty_shifts(3),
|
|
thu: make_empty_shifts(4),
|
|
fri: make_empty_shifts(5),
|
|
sat: make_empty_shifts(6),
|
|
},
|
|
expenses: {
|
|
sun: makeEmptyDayExpenses(),
|
|
mon: makeEmptyDayExpenses(),
|
|
tue: makeEmptyDayExpenses(),
|
|
wed: makeEmptyDayExpenses(),
|
|
thu: makeEmptyDayExpenses(),
|
|
fri: makeEmptyDayExpenses(),
|
|
sat: makeEmptyDayExpenses(),
|
|
},
|
|
};
|
|
}
|
|
|
|
export function makeEmptyPeriod(): TimesheetPeriodDto {
|
|
return { weeks: [makeEmptyWeek(new Date()), makeEmptyWeek(new Date())], employee_full_name: '' };
|
|
}
|
|
|
|
export const makeAmounts = (): ExpensesAmount => ({
|
|
expense: 0,
|
|
mileage: 0,
|
|
}); |