fix: Charger salaires_par_date dans le prefill du formulaire de modification
- Ajout de salaires_par_date au type NouveauCDDUPrefill - Détection automatique du mode de saisie (global vs par_date) selon le prefill - Population des états salariesByDate depuis la structure JSON - Mutual exclusivity entre montant global et salaires par date
This commit is contained in:
parent
b01cef95f9
commit
6cebac9160
1 changed files with 50 additions and 1 deletions
|
|
@ -47,6 +47,7 @@ type NouveauCDDUPrefill = {
|
|||
reference?: string;
|
||||
multi_mois?: boolean;
|
||||
nb_heures_annexes?: number | string;
|
||||
salaires_par_date?: any; // Structure JSON des salaires par date
|
||||
};
|
||||
|
||||
/* =========================
|
||||
|
|
@ -804,7 +805,55 @@ export function NouveauCDDUForm({
|
|||
|
||||
if (typeof prefill.multi_mois === "boolean") setIsMultiMois(prefill.multi_mois ? "Oui" : "Non");
|
||||
setTypeSalaire(prefill.type_salaire ?? "Brut");
|
||||
setMontantSalaire(prefill.montant ?? "");
|
||||
|
||||
// Charger salaires par date si présents dans le prefill
|
||||
if (prefill.salaires_par_date && typeof prefill.salaires_par_date === "object") {
|
||||
setSalaryMode("par_date");
|
||||
|
||||
// Construire le dictionnaire salariesByDate depuis la structure JSON
|
||||
const newSalariesByDate: Record<string, number | ""> = {};
|
||||
const salairesData = prefill.salaires_par_date as any;
|
||||
|
||||
// Charger les représentations
|
||||
if (salairesData.representations && Array.isArray(salairesData.representations)) {
|
||||
salairesData.representations.forEach((rep: any) => {
|
||||
if (rep.items && Array.isArray(rep.items)) {
|
||||
rep.items.forEach((item: any) => {
|
||||
const key = `rep_${rep.date}_${item.numero - 1}`;
|
||||
newSalariesByDate[key] = item.montant;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Charger les répétitions
|
||||
if (salairesData.repetitions && Array.isArray(salairesData.repetitions)) {
|
||||
salairesData.repetitions.forEach((serv: any) => {
|
||||
if (serv.items && Array.isArray(serv.items)) {
|
||||
serv.items.forEach((item: any) => {
|
||||
const key = `serv_${serv.date}_${item.numero - 1}`;
|
||||
newSalariesByDate[key] = item.montant;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Charger les jours travaillés
|
||||
if (salairesData.jours_travail && Array.isArray(salairesData.jours_travail)) {
|
||||
salairesData.jours_travail.forEach((jour: any) => {
|
||||
const key = `jour_${jour.date}_0`;
|
||||
newSalariesByDate[key] = jour.montant;
|
||||
});
|
||||
}
|
||||
|
||||
setSalariesByDate(newSalariesByDate);
|
||||
setMontantSalaire("");
|
||||
} else {
|
||||
// Mode global : charger le montant classique
|
||||
setMontantSalaire(prefill.montant ?? "");
|
||||
setSalaryMode("global");
|
||||
}
|
||||
|
||||
setMontantFromCalculator(false);
|
||||
setPanierRepas(prefill.panier_repas ?? "Non");
|
||||
setNotes(prefill.notes || "");
|
||||
|
|
|
|||
Loading…
Reference in a new issue