fix: Resolve TypeScript errors in page.tsx and phases-chantier/page.tsx

This commit is contained in:
dahoud
2025-10-15 20:01:04 +00:00
parent 763ab81da3
commit aed2ce0182
22 changed files with 152 additions and 118 deletions

View File

@@ -142,14 +142,18 @@ const MaterielsDisponiblesPage = () => {
switch (type) {
case TypeMateriel.ENGIN_CHANTIER:
return 'danger';
case TypeMateriel.OUTILLAGE:
case TypeMateriel.OUTIL_ELECTRIQUE:
case TypeMateriel.OUTIL_MANUEL:
return 'warning';
case TypeMateriel.EQUIPEMENT_SECURITE:
return 'success';
case TypeMateriel.VEHICULE:
return 'info';
case TypeMateriel.GRUE:
case TypeMateriel.BETONIERE:
return 'danger';
default:
return undefined;
return 'secondary';
}
};
@@ -295,6 +299,7 @@ const MaterielsDisponiblesPage = () => {
value={materiels}
selection={selectedMateriels}
onSelectionChange={(e) => setSelectedMateriels(e.value)}
selectionMode="checkbox"
dataKey="id"
paginator
rows={10}

View File

@@ -52,7 +52,7 @@ const MaintenancePrevuePage = () => {
materiel: materiel,
type: TypeMaintenance.PREVENTIVE,
description: `Maintenance préventive programmée pour ${materiel.nom}`,
datePrevue: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000) // Dans 7 jours
datePrevue: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString() // Dans 7 jours
};
await maintenanceService.create(maintenanceData);
@@ -98,7 +98,7 @@ const MaintenancePrevuePage = () => {
}
const daysSinceLastMaintenance = Math.floor(
(Date.now() - new Date(derniereMaintenance.dateRealisation || derniereMaintenance.datePrevue).getTime()) / (1000 * 60 * 60 * 24)
(Date.now() - new Date(derniereMaintenance.dateRealisee || derniereMaintenance.datePrevue).getTime()) / (1000 * 60 * 60 * 24)
);
if (daysSinceLastMaintenance > 90) {
@@ -115,7 +115,7 @@ const MaintenancePrevuePage = () => {
if (!derniereMaintenance) {
return <span className="text-red-500">Aucune</span>;
}
return formatDate(derniereMaintenance.dateRealisation || derniereMaintenance.datePrevue);
return formatDate(derniereMaintenance.dateRealisee || derniereMaintenance.datePrevue);
};
const actionBodyTemplate = (rowData: Materiel) => {
@@ -146,7 +146,7 @@ const MaintenancePrevuePage = () => {
materiel: materiel,
type: TypeMaintenance.CORRECTIVE,
description: `Panne signalée sur ${materiel.nom}`,
datePrevue: new Date() // Immédiatement
datePrevue: new Date().toISOString() // Immédiatement
};
await maintenanceService.create(maintenanceData);
@@ -171,14 +171,18 @@ const MaintenancePrevuePage = () => {
switch (type) {
case TypeMateriel.ENGIN_CHANTIER:
return 'danger';
case TypeMateriel.OUTILLAGE:
case TypeMateriel.OUTIL_ELECTRIQUE:
case TypeMateriel.OUTIL_MANUEL:
return 'warning';
case TypeMateriel.EQUIPEMENT_SECURITE:
return 'success';
case TypeMateriel.VEHICULE:
return 'info';
case TypeMateriel.GRUE:
case TypeMateriel.BETONIERE:
return 'danger';
default:
return undefined;
return 'secondary';
}
};
@@ -237,7 +241,7 @@ const MaintenancePrevuePage = () => {
const derniereMaintenance = m.maintenances?.[0];
if (!derniereMaintenance) return true;
const daysSince = Math.floor(
(Date.now() - new Date(derniereMaintenance.dateRealisation || derniereMaintenance.datePrevue).getTime()) / (1000 * 60 * 60 * 24)
(Date.now() - new Date(derniereMaintenance.dateRealisee || derniereMaintenance.datePrevue).getTime()) / (1000 * 60 * 60 * 24)
);
return daysSince > 60;
}).length;
@@ -246,7 +250,7 @@ const MaintenancePrevuePage = () => {
const derniereMaintenance = m.maintenances?.[0];
if (!derniereMaintenance) return true;
const daysSince = Math.floor(
(Date.now() - new Date(derniereMaintenance.dateRealisation || derniereMaintenance.datePrevue).getTime()) / (1000 * 60 * 60 * 24)
(Date.now() - new Date(derniereMaintenance.dateRealisee || derniereMaintenance.datePrevue).getTime()) / (1000 * 60 * 60 * 24)
);
return daysSince > 90;
}).length;
@@ -311,6 +315,7 @@ const MaintenancePrevuePage = () => {
value={materiels}
selection={selectedMateriels}
onSelectionChange={(e) => setSelectedMateriels(e.value)}
selectionMode="checkbox"
dataKey="id"
paginator
rows={10}

View File

@@ -65,9 +65,7 @@ const MaterielsPage = () => {
const openNew = () => {
setMateriel({
statut: StatutMateriel.DISPONIBLE,
actif: true,
quantiteStock: 0,
seuilMinimum: 0
actif: true
});
setSubmitted(false);
setMaterielDialog(true);
@@ -234,14 +232,18 @@ const MaterielsPage = () => {
switch (type) {
case TypeMateriel.ENGIN_CHANTIER:
return 'danger';
case TypeMateriel.OUTILLAGE:
case TypeMateriel.OUTIL_ELECTRIQUE:
case TypeMateriel.OUTIL_MANUEL:
return 'warning';
case TypeMateriel.EQUIPEMENT_SECURITE:
return 'success';
case TypeMateriel.VEHICULE:
return 'info';
case TypeMateriel.GRUE:
case TypeMateriel.BETONIERE:
return 'danger';
default:
return undefined;
return 'secondary';
}
};
@@ -249,12 +251,15 @@ const MaterielsPage = () => {
switch (statut) {
case StatutMateriel.DISPONIBLE:
return 'success';
case StatutMateriel.EN_UTILISATION:
case StatutMateriel.UTILISE:
return 'warning';
case StatutMateriel.EN_MAINTENANCE:
case StatutMateriel.MAINTENANCE:
case StatutMateriel.EN_REPARATION:
return 'info';
case StatutMateriel.HORS_SERVICE:
return 'danger';
case StatutMateriel.RESERVE:
return 'secondary';
default:
return undefined;
}
@@ -347,6 +352,7 @@ const MaterielsPage = () => {
value={materiels}
selection={selectedMateriels}
onSelectionChange={(e) => setSelectedMateriels(e.value)}
selectionMode="checkbox"
dataKey="id"
paginator
rows={10}
@@ -505,17 +511,6 @@ const MaterielsPage = () => {
/>
</div>
<div className="field col-12 md:col-6">
<label htmlFor="quantiteStock" className="font-bold">Quantité en stock</label>
<InputNumber
id="quantiteStock"
value={materiel.quantiteStock}
onValueChange={(e) => onInputNumberChange(e.value, 'quantiteStock')}
min={0}
showButtons
/>
</div>
<div className="field col-12">
<label htmlFor="description" className="font-bold">Description</label>
<InputTextarea

View File

@@ -133,7 +133,7 @@ const MaterielsStatsPage = () => {
const currentYear = new Date().getFullYear();
maintenances.forEach(maintenance => {
const date = new Date(maintenance.dateRealisation || maintenance.datePrevue);
const date = new Date(maintenance.dateRealisee || maintenance.datePrevue);
if (date.getFullYear() === currentYear) {
monthlyMaintenance[date.getMonth()]++;
}
@@ -173,14 +173,18 @@ const MaterielsStatsPage = () => {
switch (type) {
case TypeMateriel.ENGIN_CHANTIER:
return 'danger';
case TypeMateriel.OUTILLAGE:
case TypeMateriel.OUTIL_ELECTRIQUE:
case TypeMateriel.OUTIL_MANUEL:
return 'warning';
case TypeMateriel.EQUIPEMENT_SECURITE:
return 'success';
case TypeMateriel.VEHICULE:
return 'info';
case TypeMateriel.GRUE:
case TypeMateriel.BETONIERE:
return 'danger';
default:
return undefined;
return 'secondary';
}
};
@@ -194,12 +198,12 @@ const MaterielsStatsPage = () => {
? (materiels.filter(m => m.statut === StatutMateriel.DISPONIBLE).length / materiels.length) * 100
: 0;
const tauxMaintenance = materiels.length > 0
? (materiels.filter(m => m.statut === StatutMateriel.EN_MAINTENANCE).length / materiels.length) * 100
const tauxMaintenance = materiels.length > 0
? (materiels.filter(m => m.statut === StatutMateriel.MAINTENANCE || m.statut === StatutMateriel.EN_REPARATION).length / materiels.length) * 100
: 0;
const tauxUtilisation = materiels.length > 0
? (materiels.filter(m => m.statut === StatutMateriel.EN_UTILISATION).length / materiels.length) * 100
const tauxUtilisation = materiels.length > 0
? (materiels.filter(m => m.statut === StatutMateriel.UTILISE).length / materiels.length) * 100
: 0;
return (
@@ -302,7 +306,7 @@ const MaterielsStatsPage = () => {
</div>
<ProgressBar value={tauxUtilisation} showValue={false} className="mb-3" />
<div className="text-500">
{materiels.filter(m => m.statut === StatutMateriel.EN_UTILISATION).length} / {materiels.length} en utilisation
{materiels.filter(m => m.statut === StatutMateriel.UTILISE).length} / {materiels.length} en utilisation
</div>
</div>
</Card>
@@ -316,7 +320,7 @@ const MaterielsStatsPage = () => {
</div>
<ProgressBar value={tauxMaintenance} showValue={false} className="mb-3" />
<div className="text-500">
{materiels.filter(m => m.statut === StatutMateriel.EN_MAINTENANCE).length} / {materiels.length} en maintenance
{materiels.filter(m => m.statut === StatutMateriel.MAINTENANCE || m.statut === StatutMateriel.EN_REPARATION).length} / {materiels.length} en maintenance
</div>
</div>
</Card>