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:
parent
bde4e0351a
commit
e8db8960fb
4 changed files with 17 additions and 15 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 d’usage (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>
|
||||
)}
|
||||
|
|
|
|||
Loading…
Reference in a new issue