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)
|
||||
: "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,
|
||||
reference: data.numero || undefined,
|
||||
multi_mois: data.regime === "CDDU_MULTI",
|
||||
|
|
@ -114,8 +115,9 @@ export default function EditFormulairePage() {
|
|||
jours_travail: payload.jours_travail,
|
||||
jours_travail_non_artiste: payload.jours_travail_non_artiste,
|
||||
type_salaire: payload.type_salaire,
|
||||
montant: payload.montant,
|
||||
salaires_par_date: payload.salaires_par_date,
|
||||
// Si salaires_par_date est fourni, effacer montant (et vice-versa)
|
||||
montant: payload.salaires_par_date ? null : payload.montant,
|
||||
salaires_par_date: payload.salaires_par_date || null,
|
||||
panier_repas: payload.panier_repas,
|
||||
reference: payload.reference,
|
||||
notes: payload.notes,
|
||||
|
|
|
|||
|
|
@ -405,13 +405,31 @@ export async function PATCH(req: NextRequest, { params }: { params: { id: string
|
|||
if (requestBody.type_salaire !== undefined) {
|
||||
supabaseData.type_salaire = requestBody.type_salaire;
|
||||
}
|
||||
if (requestBody.montant !== undefined) {
|
||||
supabaseData.gross_pay = requestBody.montant;
|
||||
supabaseData.salaire = requestBody.montant;
|
||||
}
|
||||
|
||||
// Gestion exclusive : soit montant, soit salaires_par_date
|
||||
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) {
|
||||
supabaseData.paniers_repas = requestBody.panier_repas;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue