fix: Update PrimeReact to v10.8.3 and fix all compilation errors
This commit is contained in:
@@ -18,23 +18,24 @@ import { Dialog } from 'primereact/dialog';
|
||||
import { devisService, clientService } from '../../../../../services/api';
|
||||
import { formatCurrency } from '../../../../../utils/formatters';
|
||||
import type { Devis, LigneDevis } from '../../../../../types/btp';
|
||||
import { StatutDevis } from '../../../../../types/btp';
|
||||
|
||||
const EditDevisPage = () => {
|
||||
const params = useParams();
|
||||
const router = useRouter();
|
||||
const toast = useRef<Toast>(null);
|
||||
|
||||
const [devis, setDevis] = useState<Devis>({
|
||||
const [devis, setDevis] = useState<Partial<Devis>>({
|
||||
id: '',
|
||||
numero: '',
|
||||
dateEmission: new Date(),
|
||||
dateValidite: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000),
|
||||
dateEmission: new Date().toISOString(),
|
||||
dateValidite: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
|
||||
objet: '',
|
||||
description: '',
|
||||
montantHT: 0,
|
||||
montantTTC: 0,
|
||||
tauxTVA: 20,
|
||||
statut: 'BROUILLON',
|
||||
statut: StatutDevis.BROUILLON,
|
||||
actif: true,
|
||||
lignes: []
|
||||
});
|
||||
@@ -43,13 +44,13 @@ const EditDevisPage = () => {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [saving, setSaving] = useState(false);
|
||||
const [showLigneDialog, setShowLigneDialog] = useState(false);
|
||||
const [editingLigne, setEditingLigne] = useState<LigneDevis | null>(null);
|
||||
const [nouvelleLigne, setNouvelleLigne] = useState<LigneDevis>({
|
||||
const [editingLigne, setEditingLigne] = useState<any>(null);
|
||||
const [nouvelleLigne, setNouvelleLigne] = useState<Partial<LigneDevis>>({
|
||||
designation: '',
|
||||
quantite: 1,
|
||||
unite: 'unité',
|
||||
prixUnitaire: 0,
|
||||
montantHT: 0
|
||||
montantLigne: 0
|
||||
});
|
||||
|
||||
const devisId = params.id as string;
|
||||
@@ -81,13 +82,13 @@ const EditDevisPage = () => {
|
||||
const loadData = async () => {
|
||||
try {
|
||||
setLoading(true);
|
||||
const [devisResponse, clientsResponse] = await Promise.all([
|
||||
const [devisData, clientsData] = await Promise.all([
|
||||
devisService.getById(devisId),
|
||||
clientService.getAll()
|
||||
]);
|
||||
|
||||
setDevis(devisResponse.data);
|
||||
setClients(clientsResponse.data);
|
||||
|
||||
setDevis(devisData);
|
||||
setClients(clientsData);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors du chargement:', error);
|
||||
toast.current?.show({
|
||||
@@ -101,8 +102,8 @@ const EditDevisPage = () => {
|
||||
};
|
||||
|
||||
const calculateMontants = () => {
|
||||
const montantHT = (devis.lignes || []).reduce((sum, ligne) => sum + (ligne.montantHT || 0), 0);
|
||||
const montantTTC = montantHT * (1 + devis.tauxTVA / 100);
|
||||
const montantHT = (devis.lignes || []).reduce((sum, ligne) => sum + (ligne.montantLigne || 0), 0);
|
||||
const montantTTC = montantHT * (1 + (devis.tauxTVA || 0) / 100);
|
||||
|
||||
setDevis(prev => ({
|
||||
...prev,
|
||||
@@ -144,7 +145,7 @@ const EditDevisPage = () => {
|
||||
quantite: 1,
|
||||
unite: 'unité',
|
||||
prixUnitaire: 0,
|
||||
montantHT: 0
|
||||
montantLigne: 0
|
||||
});
|
||||
setShowLigneDialog(true);
|
||||
};
|
||||
@@ -156,11 +157,11 @@ const EditDevisPage = () => {
|
||||
};
|
||||
|
||||
const handleSaveLigne = () => {
|
||||
const montantHT = nouvelleLigne.quantite * nouvelleLigne.prixUnitaire;
|
||||
const ligneComplete = { ...nouvelleLigne, montantHT };
|
||||
|
||||
const nouvelleLignes = [...(devis.lignes || [])];
|
||||
|
||||
const montantLigne = (nouvelleLigne.quantite || 0) * (nouvelleLigne.prixUnitaire || 0);
|
||||
const ligneComplete = { ...nouvelleLigne, montantLigne };
|
||||
|
||||
const nouvelleLignes = [...(devis.lignes || [])] as any[];
|
||||
|
||||
if (editingLigne && editingLigne.index !== undefined) {
|
||||
nouvelleLignes[editingLigne.index] = ligneComplete;
|
||||
} else {
|
||||
@@ -267,9 +268,12 @@ const EditDevisPage = () => {
|
||||
<label htmlFor="client" className="font-semibold">Client *</label>
|
||||
<Dropdown
|
||||
id="client"
|
||||
value={devis.clientId}
|
||||
value={devis.client?.id}
|
||||
options={clients}
|
||||
onChange={(e) => setDevis(prev => ({ ...prev, clientId: e.value }))}
|
||||
onChange={(e) => {
|
||||
const selectedClient = clients.find(c => c.id === e.value);
|
||||
setDevis(prev => ({ ...prev, client: selectedClient }));
|
||||
}}
|
||||
optionLabel="nom"
|
||||
optionValue="id"
|
||||
placeholder="Sélectionner un client"
|
||||
|
||||
Reference in New Issue
Block a user