feat: Ajout champs 'Autre précision durée' et 'Autre précision salaire' sur page contrats
- Ajout de 2 nouveaux champs de texte dans ContractEditor.tsx - Sauvegarde des champs autreprecision_duree et autreprecision_salaire dans Supabase - Mise à jour des types ContratCDDUData avec les nouveaux champs - Envoi des données à PDFMonkey via generate-pdf et generate-pdf-test - Les champs sont disponibles dans l'interface staff/contrats/[id]
This commit is contained in:
parent
79f18b20a4
commit
9f4ecf688c
4 changed files with 32 additions and 0 deletions
|
|
@ -125,6 +125,8 @@ export async function GET(
|
|||
|
||||
// Autres
|
||||
autreprecision: contract.other_details || contract.autreprecision || '',
|
||||
autreprecision_duree: contract.autreprecision_duree || '',
|
||||
autreprecision_salaire: contract.autreprecision_salaire || '',
|
||||
nom_responsable_traitement: contract.data_controller_name || '',
|
||||
qualite_responsable_traitement: contract.data_controller_title || '',
|
||||
email_responsable_traitement: contract.data_controller_email || '',
|
||||
|
|
|
|||
|
|
@ -429,6 +429,8 @@ export async function POST(
|
|||
CCN: orgDetails.ccn || "",
|
||||
// Toujours envoyer precisions_salaire depuis la colonne Supabase
|
||||
precisions_salaire: contract.precisions_salaire || "",
|
||||
autreprecision_duree: contract.autreprecision_duree || "",
|
||||
autreprecision_salaire: contract.autreprecision_salaire || "",
|
||||
panierrepas: contract.paniers_repas || "",
|
||||
panierrepasccn: contract.panier_repas_ccn || "",
|
||||
montantpanierrepas: contract.si_non_montant_par_panier || "",
|
||||
|
|
|
|||
|
|
@ -506,6 +506,8 @@ export default function ContractEditor({
|
|||
}
|
||||
|
||||
setPrecisionsSalaire(contract.precisions_salaire || "");
|
||||
setAutrePrecisionDuree(contract.autreprecision_duree || "");
|
||||
setAutrePrecisionSalaire(contract.autreprecision_salaire || "");
|
||||
}, [contract, categoriePro, professionPick?.code]);
|
||||
|
||||
// États pour les autres champs CDDU actuellement grisés
|
||||
|
|
@ -516,6 +518,8 @@ export default function ContractEditor({
|
|||
const [dateSignature, setDateSignature] = useState(contract.date_signature?.slice(0, 10) || "");
|
||||
const [montant, setMontant] = useState(String(prefill.montant || ""));
|
||||
const [precisionsSalaire, setPrecisionsSalaire] = useState(contract.precisions_salaire || "");
|
||||
const [autrePrecisionDuree, setAutrePrecisionDuree] = useState(contract.autreprecision_duree || "");
|
||||
const [autrePrecisionSalaire, setAutrePrecisionSalaire] = useState(contract.autreprecision_salaire || "");
|
||||
|
||||
// Search states
|
||||
const [spectacleActive, setSpectacleActive] = useState(0);
|
||||
|
|
@ -1080,6 +1084,8 @@ export default function ContractEditor({
|
|||
heures_total: useHeuresMode ? heuresTotal || null : null,
|
||||
minutes_total: useHeuresMode ? minutesTotal : null,
|
||||
precisions_salaire: precisionsSalaire || null, // Nouveau champ pour précisions salaire
|
||||
autreprecision_duree: autrePrecisionDuree || null, // Autre précision durée
|
||||
autreprecision_salaire: autrePrecisionSalaire || null, // Autre précision salaire
|
||||
// Map to database fields
|
||||
// Pour les metteurs en scène, garder nb_representations même en mode heures
|
||||
cachets_representations: (useHeuresMode && professionPick?.code !== "MET040") ? null : nbRepresentations || null,
|
||||
|
|
@ -2611,6 +2617,26 @@ export default function ContractEditor({
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="md:col-span-2">
|
||||
<label className="text-xs text-muted-foreground">Autre précision durée</label>
|
||||
<Textarea
|
||||
rows={2}
|
||||
value={autrePrecisionDuree}
|
||||
onChange={(e) => setAutrePrecisionDuree(e.target.value)}
|
||||
placeholder="Autre précision sur la durée du contrat"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="md:col-span-2">
|
||||
<label className="text-xs text-muted-foreground">Autre précision salaire</label>
|
||||
<Textarea
|
||||
rows={2}
|
||||
value={autrePrecisionSalaire}
|
||||
onChange={(e) => setAutrePrecisionSalaire(e.target.value)}
|
||||
placeholder="Autre précision sur le salaire"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="md:col-span-2">
|
||||
<label className="text-xs text-muted-foreground">Définition "Cachet de répétition"</label>
|
||||
<div className="relative">
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ export interface ContratCDDUData {
|
|||
hebergementccn: string;
|
||||
montanthebergement: string;
|
||||
autreprecision: string;
|
||||
autreprecision_duree: string;
|
||||
autreprecision_salaire: string;
|
||||
cachets: CachetsData;
|
||||
|
||||
// Convention collective
|
||||
|
|
|
|||
Loading…
Reference in a new issue