fix: Gérer exclusivité entre salaire global et salaires par date
- Dans prefill formulaire édition : ne pas afficher montant si salaires_par_date existe - Dans PATCH : envoyer null pour l'un quand l'autre est défini - Dans API : effacer montant quand salaires_par_date est défini (et vice-versa) - Évite d'avoir les deux modes en même temps dans la base - Le formulaire affiche maintenant correctement les salaires par date à la modification
This commit is contained in:
parent
7f7441c7a2
commit
c19129ebd9
2 changed files with 28 additions and 8 deletions
|
|
@ -79,7 +79,8 @@ export default function EditFormulairePage() {
|
||||||
(data.type_salaire as any) === "Minimum conventionnel"
|
(data.type_salaire as any) === "Minimum conventionnel"
|
||||||
? (data.type_salaire as any)
|
? (data.type_salaire as any)
|
||||||
: "Brut",
|
: "Brut",
|
||||||
montant: data.salaire_demande ? Number(data.salaire_demande) : "",
|
// Si salaires_par_date existe, ne pas mettre montant (et vice-versa)
|
||||||
|
montant: (data as any).salaires_par_date ? "" : (data.salaire_demande ? Number(data.salaire_demande) : ""),
|
||||||
salaires_par_date: (data as any).salaires_par_date || undefined,
|
salaires_par_date: (data as any).salaires_par_date || undefined,
|
||||||
reference: data.numero || undefined,
|
reference: data.numero || undefined,
|
||||||
multi_mois: data.regime === "CDDU_MULTI",
|
multi_mois: data.regime === "CDDU_MULTI",
|
||||||
|
|
@ -114,8 +115,9 @@ export default function EditFormulairePage() {
|
||||||
jours_travail: payload.jours_travail,
|
jours_travail: payload.jours_travail,
|
||||||
jours_travail_non_artiste: payload.jours_travail_non_artiste,
|
jours_travail_non_artiste: payload.jours_travail_non_artiste,
|
||||||
type_salaire: payload.type_salaire,
|
type_salaire: payload.type_salaire,
|
||||||
montant: payload.montant,
|
// Si salaires_par_date est fourni, effacer montant (et vice-versa)
|
||||||
salaires_par_date: payload.salaires_par_date,
|
montant: payload.salaires_par_date ? null : payload.montant,
|
||||||
|
salaires_par_date: payload.salaires_par_date || null,
|
||||||
panier_repas: payload.panier_repas,
|
panier_repas: payload.panier_repas,
|
||||||
reference: payload.reference,
|
reference: payload.reference,
|
||||||
notes: payload.notes,
|
notes: payload.notes,
|
||||||
|
|
|
||||||
|
|
@ -405,13 +405,31 @@ export async function PATCH(req: NextRequest, { params }: { params: { id: string
|
||||||
if (requestBody.type_salaire !== undefined) {
|
if (requestBody.type_salaire !== undefined) {
|
||||||
supabaseData.type_salaire = requestBody.type_salaire;
|
supabaseData.type_salaire = requestBody.type_salaire;
|
||||||
}
|
}
|
||||||
if (requestBody.montant !== undefined) {
|
|
||||||
supabaseData.gross_pay = requestBody.montant;
|
// Gestion exclusive : soit montant, soit salaires_par_date
|
||||||
supabaseData.salaire = requestBody.montant;
|
|
||||||
}
|
|
||||||
if (requestBody.salaires_par_date !== undefined) {
|
if (requestBody.salaires_par_date !== undefined) {
|
||||||
supabaseData.salaires_par_date = requestBody.salaires_par_date;
|
if (requestBody.salaires_par_date === null) {
|
||||||
|
// On supprime salaires_par_date
|
||||||
|
supabaseData.salaires_par_date = null;
|
||||||
|
} else {
|
||||||
|
// On définit salaires_par_date et on efface montant
|
||||||
|
supabaseData.salaires_par_date = requestBody.salaires_par_date;
|
||||||
|
supabaseData.gross_pay = null;
|
||||||
|
supabaseData.salaire = null;
|
||||||
|
}
|
||||||
|
} else if (requestBody.montant !== undefined) {
|
||||||
|
if (requestBody.montant === null) {
|
||||||
|
// On supprime montant
|
||||||
|
supabaseData.gross_pay = null;
|
||||||
|
supabaseData.salaire = null;
|
||||||
|
} else {
|
||||||
|
// On définit montant et on efface salaires_par_date
|
||||||
|
supabaseData.gross_pay = requestBody.montant;
|
||||||
|
supabaseData.salaire = requestBody.montant;
|
||||||
|
supabaseData.salaires_par_date = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requestBody.panier_repas !== undefined) {
|
if (requestBody.panier_repas !== undefined) {
|
||||||
supabaseData.paniers_repas = requestBody.panier_repas;
|
supabaseData.paniers_repas = requestBody.panier_repas;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue