fix: Regrouper les items par date dans les tableaux de salaires sur contrats-multi
Problème: Les tableaux de la page contrats-multi affichaient une ligne par item (R1, R2 sur des lignes séparées). Solution: - Consolidation des représentations : une seule ligne par date avec "R1, R2" dans la colonne Type - Consolidation des répétitions : une seule ligne par date avec "S1, S2" dans la colonne Type - Le montant affiché est la somme de tous les items de cette date - Alignement avec la page contrats mono-mois
This commit is contained in:
parent
695a75a709
commit
d01b725632
1 changed files with 26 additions and 14 deletions
|
|
@ -963,15 +963,21 @@ export default function ContratMultiPage() {
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody className="bg-white divide-y divide-slate-100">
|
||||
{(data as any).salaires_par_date.representations.map((rep: any, repIdx: number) => (
|
||||
rep.items && rep.items.map((item: any, itemIdx: number) => (
|
||||
<tr key={`${repIdx}-${itemIdx}`} className="hover:bg-slate-50">
|
||||
{(data as any).salaires_par_date.representations.map((rep: any, repIdx: number) => {
|
||||
if (!rep.items || rep.items.length === 0) return null;
|
||||
|
||||
// Regrouper tous les items de cette date en une seule ligne
|
||||
const typesLabel = rep.items.map((item: any) => `R${item.numero}`).join(', ');
|
||||
const totalMontant = rep.items.reduce((sum: number, item: any) => sum + item.montant, 0);
|
||||
|
||||
return (
|
||||
<tr key={repIdx} className="hover:bg-slate-50">
|
||||
<td className="px-3 py-2 font-medium text-slate-700">{rep.date}</td>
|
||||
<td className="px-3 py-2 text-slate-600">R{item.numero}</td>
|
||||
<td className="px-3 py-2 text-right font-semibold text-slate-900">{item.montant.toFixed(2)} €</td>
|
||||
<td className="px-3 py-2 text-slate-600">{typesLabel}</td>
|
||||
<td className="px-3 py-2 text-right font-semibold text-slate-900">{totalMontant.toFixed(2)} €</td>
|
||||
</tr>
|
||||
))
|
||||
))}
|
||||
);
|
||||
})}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -992,15 +998,21 @@ export default function ContratMultiPage() {
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody className="bg-white divide-y divide-slate-100">
|
||||
{(data as any).salaires_par_date.repetitions.map((rep: any, repIdx: number) => (
|
||||
rep.items && rep.items.map((item: any, itemIdx: number) => (
|
||||
<tr key={`${repIdx}-${itemIdx}`} className="hover:bg-slate-50">
|
||||
{(data as any).salaires_par_date.repetitions.map((rep: any, repIdx: number) => {
|
||||
if (!rep.items || rep.items.length === 0) return null;
|
||||
|
||||
// Regrouper tous les items de cette date en une seule ligne
|
||||
const typesLabel = rep.items.map((item: any) => `S${item.numero}`).join(', ');
|
||||
const totalMontant = rep.items.reduce((sum: number, item: any) => sum + item.montant, 0);
|
||||
|
||||
return (
|
||||
<tr key={repIdx} className="hover:bg-slate-50">
|
||||
<td className="px-3 py-2 font-medium text-slate-700">{rep.date}</td>
|
||||
<td className="px-3 py-2 text-slate-600">S{item.numero}</td>
|
||||
<td className="px-3 py-2 text-right font-semibold text-slate-900">{item.montant.toFixed(2)} €</td>
|
||||
<td className="px-3 py-2 text-slate-600">{typesLabel}</td>
|
||||
<td className="px-3 py-2 text-right font-semibold text-slate-900">{totalMontant.toFixed(2)} €</td>
|
||||
</tr>
|
||||
))
|
||||
))}
|
||||
);
|
||||
})}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue