111 lines
3.4 KiB
TypeScript
111 lines
3.4 KiB
TypeScript
// import { DayExpensesDto, WeekDto, DetailedShifts, TimesheetPeriodDto } from "../dtos/timesheet-period.dto";
|
|
// import { ShiftRow, ExpenseRow, ExpensesAmount, TimesheetMap } from "./timesheet.types";
|
|
// import { addDays, shortDate, toNum, upper } from "./timesheet.helpers";
|
|
// import { Prisma } from "@prisma/client";
|
|
|
|
|
|
// //mappers
|
|
// export const mapShiftRow = (shift: {
|
|
// date: Date;
|
|
// start_time: Date;
|
|
// end_time: Date;
|
|
// comment?: string | null;
|
|
// is_approved: boolean;
|
|
// is_remote: boolean;
|
|
// bank_code: { type: string };
|
|
// }): ShiftRow => ({
|
|
// date: shift.date,
|
|
// start_time: shift.start_time,
|
|
// end_time: shift.end_time,
|
|
// comment: shift.comment ?? '',
|
|
// is_approved: shift.is_approved,
|
|
// is_remote: shift.is_remote,
|
|
// type: upper(shift.bank_code.type),
|
|
// });
|
|
|
|
// export const mapExpenseRow = (expense: {
|
|
// date: Date;
|
|
// amount: Prisma.Decimal | number | null;
|
|
// mileage: Prisma.Decimal | number | null;
|
|
// comment?: string | null;
|
|
// is_approved: boolean;
|
|
// supervisor_comment?: string|null;
|
|
// bank_code: { type: string },
|
|
// }): ExpenseRow => ({
|
|
// date: expense.date,
|
|
// amount: toNum(expense.amount),
|
|
// mileage: toNum(expense.mileage),
|
|
// comment: expense.comment ?? '',
|
|
// is_approved: expense.is_approved,
|
|
// supervisor_comment: expense.supervisor_comment ?? '',
|
|
// type: upper(expense.bank_code.type),
|
|
// });
|
|
|
|
// // 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,
|
|
// });
|
|
|
|
// export function makeEmptyTimesheet(params: {
|
|
// start_day: string;
|
|
// end_day: string;
|
|
// label: string;
|
|
// is_approved?: boolean;
|
|
// }): TimesheetMap {
|
|
// const { start_day, end_day, label, is_approved = false } = params;
|
|
// return {
|
|
// start_day,
|
|
// end_day,
|
|
// label,
|
|
// shifts: [],
|
|
// expenses: [],
|
|
// is_approved,
|
|
// };
|
|
// }
|