diff --git a/src/time-and-attendance/exports/csv-exports.utils.ts b/src/time-and-attendance/exports/csv-exports.utils.ts index 0d4678e..f2a13ef 100644 --- a/src/time-and-attendance/exports/csv-exports.utils.ts +++ b/src/time-and-attendance/exports/csv-exports.utils.ts @@ -11,10 +11,10 @@ export const consolidateRowHoursAndAmountByType = (rows: InternalCsvRow[]): Inte const map = new Map(); for (const row of rows) { - if (row.code = VACATION) { - map.set(`${row.code}|${row.shift_date}`, row); + if (row.code === VACATION) { + map.set(`${row.code}|${row.shift_date}|${row.timesheet_id}`, row); } else { - const key = `${row.code}|${row.semaine_no}`; + const key = `${row.code}|${row.timesheet_id}`; if (!map.has(key)) { map.set(key, row); } else { diff --git a/src/time-and-attendance/exports/services/csv-exports.service.ts b/src/time-and-attendance/exports/services/csv-exports.service.ts index 7ca6019..8857aef 100644 --- a/src/time-and-attendance/exports/services/csv-exports.service.ts +++ b/src/time-and-attendance/exports/services/csv-exports.service.ts @@ -135,16 +135,13 @@ export class CsvExportService { dernier_jour_absence: undefined, }); }); - } // Sort shifts and expenses according to their bank codes - rows.sort((a, b) => { - if (a.code !== b.code) - return a.code - b.code; - - return 0; - }); + rows.sort((a, b) => + a.code - b.code || + a.employee_matricule - b.employee_matricule + ); const holiday_rows = await applyHolidayRequalifications(rows, this.holiday_service, HOLIDAY_SHIFT_CODE[0]); const consolidated_rows = await consolidateRowHoursAndAmountByType(holiday_rows);