fix: Corriger création contrats RG avec type_de_contrat et type_d_embauche appropriés

- API rg-contracts passe maintenant type_de_contrat et type_d_embauche='Régime général'
- API cddu-contracts utilise les valeurs du body au lieu de forcer les valeurs CDDU
- Texte du formulaire adapté selon le régime (CDDU vs RG)
- Désactivation du remplissage automatique des dates en mode RG
- Rétablissement du filtre en_cours pour inclure contrats futurs
This commit is contained in:
odentas 2025-11-05 17:45:57 +01:00
parent bde4e0351a
commit e8db8960fb
4 changed files with 17 additions and 15 deletions

View file

@ -432,8 +432,9 @@ export async function POST(request: NextRequest) {
fin_contrat: body.date_fin,
salaire: body.montant ? parseFloat(body.montant.toString()) : null,
type_salaire: body.type_salaire || "Brut",
type_de_contrat: "CDD d'usage",
type_d_embauche: "Intermittent du spectacle",
// Utiliser les valeurs passées dans body si elles existent (pour RG), sinon valeurs par défaut CDDU
type_de_contrat: body.type_de_contrat || "CDD d'usage",
type_d_embauche: body.type_d_embauche || "Intermittent du spectacle",
date_de_reception_de_la_demande: new Date().toLocaleDateString('fr-FR'),
brut: body.montant ? parseFloat(body.montant.toString()) : null,
fin_reelle: body.date_fin,

View file

@ -231,18 +231,14 @@ export async function GET(req: Request) {
}
let filtered = (data || []).filter((row: any) => {
const end = row.end_date || row.date_fin;
const start = row.start_date || row.date_debut;
if (!end) return false;
const endDate = new Date(end);
if (isNaN(endDate.getTime())) return false;
endDate.setHours(0,0,0,0);
if (status === "en_cours") {
// Un contrat est "en_cours" seulement s'il a déjà commencé ET n'est pas encore terminé
if (!start) return endDate >= today; // Si pas de date de début, comportement par défaut
const startDate = new Date(start);
if (isNaN(startDate.getTime())) return endDate >= today; // Date de début invalide, comportement par défaut
startDate.setHours(0,0,0,0);
return startDate <= today && endDate >= today;
// Un contrat est "en_cours" si sa date de fin est dans le futur ou aujourd'hui
// Cela inclut les contrats qui n'ont pas encore commencé (date_debut future)
return endDate >= today;
} else if (status === "termines") {
if (endDate < today && isInPeriod(endDate)) return true;
return false;

View file

@ -65,6 +65,9 @@ export async function POST(request: NextRequest) {
send_email_confirmation: body.send_email_confirmation !== false,
// Marquer explicitement que c'est un contrat RG
regime: "RG",
// Définir les champs de type de contrat pour RG (CDI ou CDD de droit commun)
type_de_contrat: body.type_contrat || "CDD de droit commun",
type_d_embauche: "Régime général",
// Les champs production ne sont pas utilisés en RG
spectacle: "N/A - Régime Général",
production_id: null,

View file

@ -618,8 +618,8 @@ export function NouveauCDDUForm({
break;
}
// Mettre à jour les dates et multi-mois seulement si on n'est pas en mode manuel
if (!manualDatesMode) {
// Mettre à jour les dates et multi-mois seulement si on n'est pas en mode manuel ET pas en mode RG
if (!manualDatesMode && !isRegimeRG) {
setDateDebut(newDateDebut);
setDateFin(newDateFin);
setIsMultiMois(newIsMultiMois);
@ -1090,8 +1090,8 @@ useEffect(() => {
}
}
// Dates
if (!dateDebut && data.date_debut) {
// Dates - Ne pas pré-remplir automatiquement en mode RG
if (!isRegimeRG && !dateDebut && data.date_debut) {
const debutValue = String(data.date_debut).trim();
if (debutValue.match(/^\d{4}-\d{2}-\d{2}$/)) {
setDateDebut(debutValue);
@ -1099,7 +1099,7 @@ useEffect(() => {
}
}
if (!dateFin && data.date_fin) {
if (!isRegimeRG && !dateFin && data.date_fin) {
const finValue = String(data.date_fin).trim();
if (finValue.match(/^\d{4}-\d{2}-\d{2}$/)) {
setDateFin(finValue);
@ -1663,7 +1663,9 @@ useEffect(() => {
<div className="rounded-2xl border bg-white p-4">
<div className="text-lg font-semibold">{isRegimeRG ? "Nouveau contrat Régime Général" : "Nouveau CDDU"}</div>
<p className="text-sm text-slate-600 mt-1">
Ce formulaire est dédié aux CDD dusage (intermittents du spectacle).
{isRegimeRG
? "Ce formulaire est dédié aux contrats en régime général."
: "Ce formulaire est dédié aux CDD d'usage (intermittents du spectacle)."}
</p>
</div>
)}