feat(scripts): added a scripts to fetch and update employee supervisors and supervisor status
This commit is contained in:
parent
28f90c027d
commit
28b8a5612f
79
scripts/init-supervisor.ts
Normal file
79
scripts/init-supervisor.ts
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
import { PrismaClient as Prisma } from "@prisma/client";
|
||||||
|
import { PrismaClient as PrismaLegacy } from "@prisma/client-legacy"
|
||||||
|
|
||||||
|
const prisma_legacy = new PrismaLegacy({});
|
||||||
|
const prisma = new Prisma({});
|
||||||
|
|
||||||
|
export const initSupervisor = async () => {
|
||||||
|
const list_of_employees = await prisma.employees.findMany();
|
||||||
|
|
||||||
|
for (const employee of list_of_employees) {
|
||||||
|
console.log('Start of supervisor checking for employee: ', employee.id);
|
||||||
|
|
||||||
|
//finds in old db employee supervisor's infos
|
||||||
|
const old_employee = await prisma_legacy.employees.findFirst({
|
||||||
|
where: {
|
||||||
|
company: employee.company_code,
|
||||||
|
employee_number: (employee.external_payroll_id).toString(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (!old_employee) {
|
||||||
|
console.warn('Old DB employee not found : ', employee.id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!old_employee.supervisor) {
|
||||||
|
console.warn('Old DB employee supervisor not found for employee:', old_employee.supervisor);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//trims and split the supervisor name
|
||||||
|
const supervisor_full_name = old_employee.supervisor.trim();
|
||||||
|
let supervisor_first_name = supervisor_full_name.split(/\s+/)[0];
|
||||||
|
let supervisor_last_name = supervisor_full_name.split(/\s+/)[1] || '';
|
||||||
|
|
||||||
|
if (supervisor_first_name === '[default]') {
|
||||||
|
await prisma.employees.update({
|
||||||
|
where: { id: employee.id },
|
||||||
|
data: { supervisor_id: null },
|
||||||
|
});
|
||||||
|
console.log('employee with [default] found: ', employee.id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supervisor_first_name === '') {
|
||||||
|
console.warn('No supervisor name found for employee: ', employee.id)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//finds employee id of supervisors
|
||||||
|
const supervisor = await prisma.users.findFirst({
|
||||||
|
where: { first_name: supervisor_first_name, last_name: supervisor_last_name },
|
||||||
|
select: {
|
||||||
|
employee: { select: { id: true } },
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!supervisor) {
|
||||||
|
console.warn('No supervisor found: ', supervisor_first_name, '', supervisor_last_name)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!supervisor.employee) {
|
||||||
|
console.warn('No supervisor id found: ', supervisor_first_name, '', supervisor_last_name)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//updates the supervisor id
|
||||||
|
await prisma.employees.update({
|
||||||
|
where: { id: employee.id },
|
||||||
|
data: {
|
||||||
|
supervisor_id: supervisor.employee.id,
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
await prisma.employees.update({
|
||||||
|
where: { id: supervisor.employee.id },
|
||||||
|
data: {
|
||||||
|
is_supervisor: true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log('supervisor id : ', supervisor.employee.id);
|
||||||
|
console.log('supervisor name : ', supervisor_first_name, '', supervisor_last_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -14,6 +14,7 @@ import * as session from 'express-session';
|
||||||
import * as passport from 'passport';
|
import * as passport from 'passport';
|
||||||
import { PrismaService } from 'src/prisma/prisma.service';
|
import { PrismaService } from 'src/prisma/prisma.service';
|
||||||
import { PrismaSessionStore } from '@quixo3/prisma-session-store';
|
import { PrismaSessionStore } from '@quixo3/prisma-session-store';
|
||||||
|
// import { initSupervisor } from 'scripts/init-supervisor';
|
||||||
// import { initializePaidTimeOff } from 'scripts/init-paid-time-off';
|
// import { initializePaidTimeOff } from 'scripts/init-paid-time-off';
|
||||||
// import { initializePreferences } from 'scripts/init-preferences-access';
|
// import { initializePreferences } from 'scripts/init-preferences-access';
|
||||||
// import { extractOldTimesheets } from 'scripts/migrate-timesheets';
|
// import { extractOldTimesheets } from 'scripts/migrate-timesheets';
|
||||||
|
|
@ -99,5 +100,6 @@ async function bootstrap() {
|
||||||
// await extractOldTimesheets();
|
// await extractOldTimesheets();
|
||||||
// await extractOldShifts();
|
// await extractOldShifts();
|
||||||
// await extractOldExpenses();
|
// await extractOldExpenses();
|
||||||
|
// await initSupervisor();
|
||||||
}
|
}
|
||||||
bootstrap();
|
bootstrap();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user