fix(seeds): many fixes to match data needed to print
This commit is contained in:
parent
3fad532685
commit
770ed8cf64
|
|
@ -1,5 +1,10 @@
|
|||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
if (process.env.SKIP_LEAVE_REQUESTS === 'true') {
|
||||
console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
function daysAgo(n: number) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
// prisma/mock-seeds-scripts/06-customers-archive.ts
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
if (process.env.SKIP_LEAVE_REQUESTS === 'true') {
|
||||
console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
async function main() {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
import { PrismaClient, Prisma, LeaveTypes, LeaveApprovalStatus } from '@prisma/client';
|
||||
|
||||
if (process.env.SKIP_LEAVE_REQUESTS === 'true') {
|
||||
console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
function dateOn(y: number, m: number, d: number) {
|
||||
|
|
|
|||
|
|
@ -1,44 +1,64 @@
|
|||
import { PrismaClient, LeaveTypes, LeaveApprovalStatus, LeaveRequests } from '@prisma/client';
|
||||
import { PrismaClient, LeaveApprovalStatus, LeaveRequests } from '@prisma/client';
|
||||
|
||||
if (process.env.SKIP_LEAVE_REQUESTS === 'true') {
|
||||
console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
function daysAgo(n:number) {
|
||||
function daysAgo(n: number) {
|
||||
const d = new Date();
|
||||
d.setUTCDate(d.getUTCDate() - n);
|
||||
d.setUTCHours(0,0,0,0);
|
||||
d.setUTCHours(0, 0, 0, 0);
|
||||
return d;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
// 1) Récupère tous les employés
|
||||
const employees = await prisma.employees.findMany({ select: { id: true } });
|
||||
const bankCodes = await prisma.bankCodes.findMany({ select: { id: true }, where: { categorie: 'LEAVE' } });
|
||||
if (!employees.length) {
|
||||
throw new Error('Aucun employé trouvé. Exécute le seed employees avant celui-ci.');
|
||||
}
|
||||
|
||||
// 2) Va chercher les bank codes dont le type est SICK, VACATION ou HOLIDAY
|
||||
const leaveCodes = await prisma.bankCodes.findMany({
|
||||
where: { type: { in: ['SICK', 'VACATION'] } },
|
||||
select: { id: true, type: true, bank_code: true },
|
||||
});
|
||||
if (!leaveCodes.length) {
|
||||
throw new Error("Aucun bank code trouvé avec type in ('SICK','VACATION','HOLIDAY'). Vérifie ta table bank_codes.");
|
||||
}
|
||||
|
||||
const types = Object.values(LeaveTypes);
|
||||
const statuses = Object.values(LeaveApprovalStatus);
|
||||
|
||||
const created: LeaveRequests[] = [];
|
||||
|
||||
for (let i = 0; i < 10; i++) {
|
||||
// 3) Crée quelques leave requests
|
||||
const COUNT = 12;
|
||||
for (let i = 0; i < COUNT; i++) {
|
||||
const emp = employees[i % employees.length];
|
||||
const bc = bankCodes[i % bankCodes.length];
|
||||
const start = daysAgo(120 - i * 3); // tous avant aujourd'hui
|
||||
const end = Math.random() < 0.4 ? null : daysAgo(119 - i * 3);
|
||||
const leaveCode = leaveCodes[Math.floor(Math.random() * leaveCodes.length)];
|
||||
|
||||
const start = daysAgo(120 - i * 3);
|
||||
const end = Math.random() < 0.6 ? daysAgo(119 - i * 3) : null;
|
||||
|
||||
const lr = await prisma.leaveRequests.create({
|
||||
data: {
|
||||
employee_id: emp.id,
|
||||
bank_code_id: bc.id,
|
||||
leave_type: types[i % types.length],
|
||||
bank_code_id: leaveCode.id,
|
||||
// on stocke le "type" tel qu’il est défini dans bank_codes
|
||||
leave_type: leaveCode.type as any,
|
||||
start_date_time: start,
|
||||
end_date_time: end,
|
||||
comment: `Past leave #${i+1}`,
|
||||
approval_status: statuses[(i+2) % statuses.length],
|
||||
comment: `Past leave #${i + 1} (${leaveCode.type})`,
|
||||
approval_status: statuses[(i + 2) % statuses.length],
|
||||
},
|
||||
});
|
||||
|
||||
created.push(lr);
|
||||
}
|
||||
|
||||
// 4) Archive
|
||||
for (const lr of created) {
|
||||
await prisma.leaveRequestsArchive.create({
|
||||
data: {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
if (process.env.SKIP_LEAVE_REQUESTS === 'true') {
|
||||
console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
function timeAt(h:number,m:number) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ function rndAmount(minCents: number, maxCents: number) {
|
|||
|
||||
async function main() {
|
||||
// Codes autorisés (aléatoires à chaque dépense)
|
||||
const BANKS = ['G517', 'G57', 'G502', 'G202', 'G234'] as const;
|
||||
const BANKS = ['G517', 'G56', 'G502', 'G202', 'G234'] as const;
|
||||
const bcRows = await prisma.bankCodes.findMany({
|
||||
where: { bank_code: { in: BANKS as unknown as string[] } },
|
||||
select: { id: true, bank_code: true },
|
||||
|
|
@ -81,7 +81,7 @@ async function main() {
|
|||
// Montant aléatoire (ranges par défaut en $ — ajuste au besoin)
|
||||
// (ex.: G57 plus petit, G517 remboursement plus large)
|
||||
const amount =
|
||||
randomCode === 'G57'
|
||||
randomCode === 'G56'
|
||||
? rndAmount(1000, 7500) // 10.00..75.00
|
||||
: rndAmount(2000, 25000); // 20.00..250.00 pour les autres
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
// 13-expenses-archive.ts
|
||||
import { PrismaClient, Expenses } from '@prisma/client';
|
||||
|
||||
if (process.env.SKIP_LEAVE_REQUESTS === 'true') {
|
||||
console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
function daysAgo(n:number) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user