fix(migration): fix some migration problems from legacy db
This commit is contained in:
parent
6dae8df0d3
commit
70aefdab73
|
|
@ -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")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<NewEmployee> => {
|
||||
|
|
|
|||
|
|
@ -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 => {
|
||||
|
|
|
|||
|
|
@ -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<NewEmployee> => {
|
||||
|
|
@ -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();
|
||||
// });
|
||||
// // extractOldTimesheets()
|
||||
// // .then(() => {
|
||||
// // console.log("Migration completed");
|
||||
// // })
|
||||
// // .catch((error) => {
|
||||
// // console.error("Migration failed:", error);
|
||||
// // })
|
||||
// // .finally(async () => {
|
||||
// // await prisma_legacy.$disconnect();
|
||||
// // await prisma_new.$disconnect();
|
||||
// // });
|
||||
|
|
@ -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!);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export const consolidateRowHoursAndAmountByType = (rows: InternalCsvRow[]): Inte
|
|||
const map = new Map<string, InternalCsvRow>();
|
||||
|
||||
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<CsvRow[]> => {
|
||||
const result: CsvRow[] = [];
|
||||
const result: InternalCsvRow[] = [];
|
||||
//grouped by timesheet and week number
|
||||
const grouped_rows = new Map<string, InternalCsvRow[]>();
|
||||
|
||||
|
|
@ -73,6 +73,7 @@ export const applyOvertimeRequalifications = async (
|
|||
});
|
||||
}
|
||||
|
||||
// return consolidateRowHoursAndAmountByType(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user