diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 0073904..064a2ab 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -107,7 +107,7 @@ model Timesheets { employee Employees @relation("TimesheetEmployee", fields: [employee_id], references: [id]) archive TimesheetsArchive[] @relation("TimesheetsToArchive") - @@unique([employee_id, start_date], name: "employee_id_start_date") + // @@unique([employee_id, start_date], name: "employee_id_start_date") @@map("timesheets") } @@ -144,7 +144,6 @@ model SchedulePresetShifts { bank_code BankCodes @relation("SchedulePresetShiftsBankCodes", fields: [bank_code_id], references: [id]) preset SchedulePresets @relation("SchedulePresetShiftsSchedulePreset", fields: [preset_id], references: [id]) - @@unique([preset_id, week_day]) @@index([preset_id, week_day]) @@map("schedule_preset_shifts") } @@ -163,7 +162,7 @@ model Shifts { timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) archive ShiftsArchive[] @relation("ShiftsToArchive") - @@unique([timesheet_id, date, start_time], name: "unique_ts_id_date_start_time") + // @@unique([timesheet_id, date, start_time], name: "unique_ts_id_date_start_time") @@map("shifts") } diff --git a/scripts/migrate-expenses.ts b/scripts/migrate-expenses.ts index 3f111d7..43bd74b 100644 --- a/scripts/migrate-expenses.ts +++ b/scripts/migrate-expenses.ts @@ -21,7 +21,8 @@ // } // export const extractOldExpenses = async () => { -// for (let id = 1; id <= 61; id++) { +// const list_of_employees = await prisma.employees.findMany(); +// for (let id = 1; id <= list_of_employees.length+1; id++) { // console.log(`Start of Expense migration ***************************************************************`); @@ -63,6 +64,7 @@ // } // await prisma_legacy.$disconnect(); // await prisma.$disconnect(); +// console.log('finished migrating expenses ***************************'); // } // const findOneNewEmployee = async (id: number): Promise => { diff --git a/scripts/migrate-shifts.ts b/scripts/migrate-shifts.ts index 2a9f68e..fc24a82 100644 --- a/scripts/migrate-shifts.ts +++ b/scripts/migrate-shifts.ts @@ -22,26 +22,27 @@ // } // export const extractOldShifts = async () => { -// for (let id = 1; id <= 61; id++) { +// const list_of_employees = await prisma.employees.findMany(); + +// for (let id = 1; id <= list_of_employees.length + 1; id++) { // console.log(`Start of shift migration ***************************************************************`); // const new_employee = await findOneNewEmployee(id); // console.log(`Employee ${id} found in new DB`); // const new_timesheets = await findManyNewTimesheets(new_employee.id); -// console.log(`New Timesheets found for employee ${id}`); -// for (const ts of new_timesheets) { -// console.log(`start_date = ${ts.start_date} timesheet_id = ${ts.id}`) +// console.log(new_timesheets.length, `new Timesheets found for employee ${id}`); -// } -// console.log('***************************************************************'); // const old_employee_id = await findOneOldEmployee(new_employee); // console.log(`Employee ${new_employee.id} found in old DB`); // const old_timesheets = await findManyOldTimesheets(old_employee_id); -// console.log(`Timesheets for employee ${old_employee_id}/${new_employee.id} found in old DB`); +// console.log(old_timesheets.length, `old timesheets for employee ${new_employee.id} found in old DB`); // for (const old_timesheet of old_timesheets) { -// if (!old_timesheet.start_date) continue; +// if (!old_timesheet.start_date) { +// console.warn('Start_date of the old_timesheet ', old_timesheet.id, 'invalid, start_date: ', old_timesheet.start_date); +// continue; +// } // const new_timesheet = new_timesheets.find((ts) => ts.start_date.getTime() === old_timesheet.start_date!.getTime()); // if (!new_timesheet) { // console.warn(`No new timesheet ${new_timesheet} matching legacy timesheet ${old_timesheet.id}`); @@ -111,6 +112,7 @@ // } // const createManyNewShifts = async (timesheet_id: number, old_shifts: OldShifts[]) => { +// let shifts_count = 0; // for (const old_shift of old_shifts) { // let is_remote = true; @@ -150,6 +152,7 @@ // } // const bank_code_id = await findBankCodeIdUsingOldCode(old_shift.code); // try { + // await prisma.shifts.create({ // // where: { unique_ts_id_date_start_time: { // // timesheet_id, @@ -174,10 +177,13 @@ // bank_code_id: bank_code_id, // }, // }); +// shifts_count++; // } catch (error) { -// console.log('An error occured during shifts creation'); +// console.log('An error occured during shifts creation', error); // } + // } +// console.warn(shifts_count, ' new shifts created'); // } // const toHHmmfromLegacyTimestamp = (value: bigint | null): string | null => { diff --git a/scripts/migrate-timesheets.ts b/scripts/migrate-timesheets.ts index 0f0d24c..580148e 100644 --- a/scripts/migrate-timesheets.ts +++ b/scripts/migrate-timesheets.ts @@ -18,21 +18,22 @@ // const prisma_new = new Prisma({}); // export const extractOldTimesheets = async () => { -// for (let id = 1; id <= 61; id++) { -// const new_employee = await findOneNewEmployee(id); -// console.log(`Employee ${id} found in new DB ${new_employee.external_payroll_id}`); +// const list_of_employees = await prisma_new.employees.findMany(); -// const old_employee_id = await findOneOldEmployee(new_employee); -// console.log(`Employee ${new_employee.id} found in old DB`); +// for (let id = 1; id <= list_of_employees.length; id++) { +// const new_employee = await findOneNewEmployee(id); -// const old_timesheets = await findManyOldTimesheets(old_employee_id); -// console.log(` ${old_timesheets.length} Timesheets for employee ${old_employee_id} / ${new_employee.id} found in old DB`); +// const old_employee_id = await findOneOldEmployee(new_employee); -// await createManyNewTimesheets(old_timesheets, new_employee); -// console.log(`${old_timesheets.length} New Timesheets created in new DB for employee ${new_employee.id}`); +// const old_timesheets = await findManyOldTimesheets(old_employee_id); + +// await createManyNewTimesheets(old_timesheets, new_employee); +// console.log(`${old_timesheets.length} New Timesheets created in new DB for employee ${new_employee.id}`); // } + // await prisma_legacy.$disconnect(); // await prisma_new.$disconnect(); +// console.log('migration of timesheets finished') // } // const findOneNewEmployee = async (id: number): Promise => { @@ -64,15 +65,18 @@ // } // const findManyOldTimesheets = async (old_employee_id: string) => { +// console.log('trying to find old timesheets ...'); // const old_timesheets = await prisma_legacy.time_sheets.findMany({ // where: { employee_id: old_employee_id }, // select: { id: true, start_date: true, status: true } // }); +// console.log(old_timesheets.length, 'old timesheets found') // if (!old_timesheets) throw new Error(`old Timesheets not found for employee_id ${old_employee_id}`) // return old_timesheets; // } // const createManyNewTimesheets = async (old_timesheets: OldTimesheets[], new_employee: NewEmployee) => { +// console.log(old_timesheets.length, ' timesheets ready for creation') // for (const timesheet of old_timesheets) { // if (timesheet.start_date == null) { // console.warn(`start_date invalid for legacy timesheet ${timesheet.id}`); @@ -84,12 +88,9 @@ // } // try { -// const new_timesheet = await prisma_new.timesheets.upsert({ -// where: { employee_id_start_date: { employee_id: new_employee.id, start_date: timesheet.start_date } }, -// update: { -// is_approved: timesheet.status, -// }, -// create: { +// console.log(`Timesheet with start_date: ${toStringFromDate(timesheet.start_date!)} for employee ${new_employee.id} created`) +// const new_timesheet = await prisma_new.timesheets.create({ +// data: { // employee_id: new_employee.id, // start_date: timesheet.start_date, // is_approved: timesheet.status, @@ -99,19 +100,19 @@ // `Timesheet with start_date: ${toStringFromDate(timesheet.start_date!)} for employee ${new_employee.id} not created` // ); // } catch (error) { -// throw new Error('An error occured during timesheets creation'); +// throw new Error('An error occured during timesheets creation', error); // } // } // } -// extractOldTimesheets() -// .then(() => { -// console.log("Migration completed"); -// }) -// .catch((error) => { -// console.error("Migration failed:", error); -// }) -// .finally(async () => { -// await prisma_legacy.$disconnect(); -// await prisma_new.$disconnect(); -// }); \ No newline at end of file +// // extractOldTimesheets() +// // .then(() => { +// // console.log("Migration completed"); +// // }) +// // .catch((error) => { +// // console.error("Migration failed:", error); +// // }) +// // .finally(async () => { +// // await prisma_legacy.$disconnect(); +// // await prisma_new.$disconnect(); +// // }); \ No newline at end of file diff --git a/src/identity-and-account/authentication/controllers/auth.controller.ts b/src/identity-and-account/authentication/controllers/auth.controller.ts index d0a2523..cfc91ed 100644 --- a/src/identity-and-account/authentication/controllers/auth.controller.ts +++ b/src/identity-and-account/authentication/controllers/auth.controller.ts @@ -17,7 +17,6 @@ export class AuthController { @Get('/callback') @UseGuards(OIDCLoginGuard) loginCallback(@Req() req: Request, @Res() res: Response) { - // res.redirect("http://10.100.251.2:9013/#/v1/login-success"); res.redirect(process.env.REDIRECT_URL_DEV!); } diff --git a/src/time-and-attendance/exports/csv-exports.utils.ts b/src/time-and-attendance/exports/csv-exports.utils.ts index 52ee9e7..ae202cc 100644 --- a/src/time-and-attendance/exports/csv-exports.utils.ts +++ b/src/time-and-attendance/exports/csv-exports.utils.ts @@ -8,7 +8,7 @@ export const consolidateRowHoursAndAmountByType = (rows: InternalCsvRow[]): Inte const map = new Map(); for (const row of rows) { - const key = `${row.timesheet_id}|${row.bank_code}|${row.week_number}|${row.shift_date.toISOString()}`; + const key = `${row.timesheet_id}|${row.bank_code}|${row.week_number}`; if (!map.has(key)) { map.set(key, { ...row }); } else { @@ -24,7 +24,7 @@ export const applyOvertimeRequalifications = async ( consolidated_rows: InternalCsvRow[], overtime_service: OvertimeService, ): Promise => { - const result: CsvRow[] = []; + const result: InternalCsvRow[] = []; //grouped by timesheet and week number const grouped_rows = new Map(); @@ -73,6 +73,7 @@ export const applyOvertimeRequalifications = async ( }); } + // return consolidateRowHoursAndAmountByType(result); return result; }