mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-21 22:18:17 +02:00
3 files changed
+22
-6
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 196 KiB |
@@ -81,13 +81,12 @@ const avoirSchema = z.object({
|
|||||||
z.undefined().transform(() => undefined),
|
z.undefined().transform(() => undefined),
|
||||||
z.literal("").transform(() => undefined),
|
z.literal("").transform(() => undefined),
|
||||||
z.string().transform((val) => {
|
z.string().transform((val) => {
|
||||||
|
if (val.trim() === '') return undefined; // Permettre les champs vides
|
||||||
const num = parseFloat(val);
|
const num = parseFloat(val);
|
||||||
if (isNaN(num)) {
|
if (isNaN(num)) {
|
||||||
throw new Error("Montant invalide");
|
throw new Error("Montant invalide");
|
||||||
}
|
}
|
||||||
if (num <= 0) {
|
// Supprimer la restriction > 0 pour permettre zéro et les montants négatifs (avoirs)
|
||||||
throw new Error("Le montant doit être supérieur à 0");
|
|
||||||
}
|
|
||||||
return num;
|
return num;
|
||||||
})
|
})
|
||||||
]).optional(),
|
]).optional(),
|
||||||
@@ -454,7 +453,15 @@ export default function Avoirs() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recharger les avoirs pour voir les changements
|
// ✅ Mettre à jour l'état local immédiatement pour affichage instantané
|
||||||
|
setAvoirVerificationResults(prev => ({
|
||||||
|
...prev,
|
||||||
|
[avoirId]: { exists: true, fromCache: true, permanent: true, validated: true }
|
||||||
|
}));
|
||||||
|
|
||||||
|
console.log('✅ Avoir validé - État local mis à jour:', avoirId);
|
||||||
|
|
||||||
|
// Recharger les avoirs pour voir les changements en base
|
||||||
queryClient.invalidateQueries({ queryKey: ['/api/avoirs'] });
|
queryClient.invalidateQueries({ queryKey: ['/api/avoirs'] });
|
||||||
|
|
||||||
toast({
|
toast({
|
||||||
@@ -477,7 +484,16 @@ export default function Avoirs() {
|
|||||||
verified: false
|
verified: false
|
||||||
});
|
});
|
||||||
|
|
||||||
// Recharger les avoirs pour voir les changements
|
// ✅ Retirer de l'état local immédiatement
|
||||||
|
setAvoirVerificationResults(prev => {
|
||||||
|
const updated = { ...prev };
|
||||||
|
delete updated[avoirId]; // Supprimer complètement l'entrée
|
||||||
|
return updated;
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('✅ Avoir dévalidé - État local mis à jour:', avoirId);
|
||||||
|
|
||||||
|
// Recharger les avoirs pour voir les changements en base
|
||||||
queryClient.invalidateQueries({ queryKey: ['/api/avoirs'] });
|
queryClient.invalidateQueries({ queryKey: ['/api/avoirs'] });
|
||||||
|
|
||||||
toast({
|
toast({
|
||||||
|
|||||||
+1
-1
@@ -585,7 +585,7 @@ export const insertAvoirSchema = createInsertSchema(avoirs).omit({
|
|||||||
processedAt: true,
|
processedAt: true,
|
||||||
}).extend({
|
}).extend({
|
||||||
status: z.enum(["En attente de demande", "Demandé", "Reçu"]).default("En attente de demande"),
|
status: z.enum(["En attente de demande", "Demandé", "Reçu"]).default("En attente de demande"),
|
||||||
amount: z.coerce.number().refine(val => val !== 0, "Le montant ne peut pas être zéro").optional(), // Montant optionnel, positif ou négatif (mais pas zéro)
|
amount: z.coerce.number().optional().nullable(), // Montant optionnel, peut être vide, zéro, positif ou négatif
|
||||||
invoiceReference: z.string().optional(), // Référence facture optionnelle
|
invoiceReference: z.string().optional(), // Référence facture optionnelle
|
||||||
comment: z.string().optional(),
|
comment: z.string().optional(),
|
||||||
commercialProcessed: z.boolean().default(false),
|
commercialProcessed: z.boolean().default(false),
|
||||||
|
|||||||
Reference in new issue
Block a user