Merge branch 'main' of git.targo.ca:Targo/targo_backend
This commit is contained in:
commit
0a2369d5a5
|
|
@ -0,0 +1,12 @@
|
||||||
|
/*
|
||||||
|
Warnings:
|
||||||
|
|
||||||
|
- You are about to alter the column `mileage` on the `expenses` table. The data in that column could be lost. The data in that column will be cast from `Decimal(65,30)` to `Decimal(12,2)`.
|
||||||
|
- You are about to alter the column `mileage` on the `expenses_archive` table. The data in that column could be lost. The data in that column will be cast from `Decimal(65,30)` to `Decimal(12,2)`.
|
||||||
|
|
||||||
|
*/
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "expenses" ALTER COLUMN "mileage" SET DATA TYPE DECIMAL(12,2);
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "expenses_archive" ALTER COLUMN "mileage" SET DATA TYPE DECIMAL(12,2);
|
||||||
|
|
@ -10,13 +10,13 @@ async function main() {
|
||||||
['EMERGENCY' ,'SHIFT' , 2 , 'G48' ],
|
['EMERGENCY' ,'SHIFT' , 2 , 'G48' ],
|
||||||
['EVENING' ,'SHIFT' , 1.25 , 'G56' ],
|
['EVENING' ,'SHIFT' , 1.25 , 'G56' ],
|
||||||
['SICK' ,'SHIFT' , 1.0 , 'G105'],
|
['SICK' ,'SHIFT' , 1.0 , 'G105'],
|
||||||
['PRIME_DISPO','EXPENSE', 1.0 , 'G202'],
|
['HOLIDAY' ,'SHIFT' , 1.0 , 'G104'],
|
||||||
['COMMISSION' ,'EXPENSE', 1.0 , 'G234'],
|
|
||||||
['VACATION' ,'SHIFT' , 1.0 , 'G305'],
|
['VACATION' ,'SHIFT' , 1.0 , 'G305'],
|
||||||
|
['ON_CALL' ,'EXPENSE' , 1.0 , 'G202'],
|
||||||
|
['COMMISSION' ,'EXPENSE' , 1.0 , 'G234'],
|
||||||
['PER_DIEM' ,'EXPENSE' , 1.0 , 'G502'],
|
['PER_DIEM' ,'EXPENSE' , 1.0 , 'G502'],
|
||||||
['MILEAGE' ,'EXPENSE' , 0.72 , 'G503'],
|
['MILEAGE' ,'EXPENSE' , 0.72 , 'G503'],
|
||||||
['EXPENSES' ,'EXPENSE' , 1.0 , 'G517'],
|
['EXPENSES' ,'EXPENSE' , 1.0 , 'G517'],
|
||||||
['HOLIDAY' ,'SHIFT' , 2.0 , 'G700'],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
await prisma.bankCodes.createMany({
|
await prisma.bankCodes.createMany({
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,11 @@ function centsToAmountString(cents: number): string {
|
||||||
return `${sign}${dollars}.${c.toString().padStart(2, '0')}`;
|
return `${sign}${dollars}.${c.toString().padStart(2, '0')}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function to2(value: string): string {
|
||||||
|
// normalise au cas où (sécurité)
|
||||||
|
return (Math.round(parseFloat(value) * 100) / 100).toFixed(2);
|
||||||
|
}
|
||||||
|
|
||||||
// Tire un multiple de STEP_CENTS entre minCents et maxCents (inclus)
|
// Tire un multiple de STEP_CENTS entre minCents et maxCents (inclus)
|
||||||
function rndQuantizedCents(minCents: number, maxCents: number, step = STEP_CENTS): number {
|
function rndQuantizedCents(minCents: number, maxCents: number, step = STEP_CENTS): number {
|
||||||
const qmin = Math.ceil(minCents / step);
|
const qmin = Math.ceil(minCents / step);
|
||||||
|
|
@ -118,20 +123,21 @@ async function main() {
|
||||||
const bank_code_id = bcMap.get(code)!;
|
const bank_code_id = bcMap.get(code)!;
|
||||||
|
|
||||||
// Montants (cents) quantisés à 25¢ => aucun flottant binaire plus tard
|
// Montants (cents) quantisés à 25¢ => aucun flottant binaire plus tard
|
||||||
let amount: string;
|
let amount: string = '0.00';
|
||||||
|
let mileage: string = '0.00';
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 'G503': // kilométrage
|
case 'G503': // kilométrage
|
||||||
amount = rndAmount(1000, 7500); // 10.00 à 75.00
|
mileage = to2(rndAmount(1000, 7500)); // 10.00 à 75.00
|
||||||
break;
|
break;
|
||||||
case 'G502': // per_diem
|
case 'G502': // per_diem
|
||||||
amount = rndAmount(1500, 3000); // 15.00 à 30.00
|
amount = to2(rndAmount(1500, 3000)); // 15.00 à 30.00
|
||||||
break;
|
break;
|
||||||
case 'G202': // allowance /prime de garde
|
case 'G202': // on_call /prime de garde
|
||||||
amount = rndAmount(2000, 15000); // 20.00 à 150.00
|
amount = to2(rndAmount(2000, 15000)); // 20.00 à 150.00
|
||||||
break;
|
break;
|
||||||
case 'G517': // expenses
|
case 'G517': // expenses
|
||||||
default:
|
default:
|
||||||
amount = rndAmount(500, 5000); // 5.00 à 50.00
|
amount = to2(rndAmount(500, 5000)); // 5.00 à 50.00
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140,9 +146,10 @@ async function main() {
|
||||||
timesheet_id: ts.id,
|
timesheet_id: ts.id,
|
||||||
bank_code_id,
|
bank_code_id,
|
||||||
date,
|
date,
|
||||||
amount, // string "xx.yy" (2 décimales exactes)
|
amount,
|
||||||
|
mileage,
|
||||||
attachment: null,
|
attachment: null,
|
||||||
comment: `Expense ${code} ${amount}$ (emp ${e.id})`,
|
comment: `Expense ${code} (emp ${e.id})`,
|
||||||
is_approved: Math.random() < 0.65,
|
is_approved: Math.random() < 0.65,
|
||||||
supervisor_comment: Math.random() < 0.25 ? 'OK' : null,
|
supervisor_comment: Math.random() < 0.25 ? 'OK' : null,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -289,7 +289,7 @@ model Expenses {
|
||||||
|
|
||||||
date DateTime @db.Date
|
date DateTime @db.Date
|
||||||
amount Decimal @db.Money
|
amount Decimal @db.Money
|
||||||
mileage Decimal?
|
mileage Decimal? @db.Decimal(12,2)
|
||||||
comment String
|
comment String
|
||||||
supervisor_comment String?
|
supervisor_comment String?
|
||||||
is_approved Boolean @default(false)
|
is_approved Boolean @default(false)
|
||||||
|
|
@ -311,7 +311,7 @@ model ExpensesArchive {
|
||||||
bank_code_id Int
|
bank_code_id Int
|
||||||
date DateTime @db.Date
|
date DateTime @db.Date
|
||||||
amount Decimal? @db.Money
|
amount Decimal? @db.Money
|
||||||
mileage Decimal?
|
mileage Decimal? @db.Decimal(12,2)
|
||||||
comment String?
|
comment String?
|
||||||
is_approved Boolean
|
is_approved Boolean
|
||||||
supervisor_comment String?
|
supervisor_comment String?
|
||||||
|
|
@ -380,7 +380,7 @@ model Preferences {
|
||||||
dark_mode Boolean @default(false)
|
dark_mode Boolean @default(false)
|
||||||
lang_switch Boolean @default(false)
|
lang_switch Boolean @default(false)
|
||||||
lefty_mode Boolean @default(false)
|
lefty_mode Boolean @default(false)
|
||||||
|
// TODO: change BOOLEAN to use 0 or 1 in case there is more than 2 options for each preferences
|
||||||
@@map("preferences")
|
@@map("preferences")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user