Merge pull request #373 from R0m1k3/1.1

Fix issues with creating new entries and improve data validation
This commit is contained in:
LogiFlow authored and GitHub committed 2025-09-08 17:20:47 +02:00
commit f3cd65c539
3 files changed
+208 -3

No files matched your search

@@ -0,0 +1,204 @@
ctions
{
id: 16,
title: 'Mise à jour Prix',
content: 'Merci de mettre vos prix a jour tous les matins, certain magasin ne le font pas.',
type: 'success',
storeId: null,
createdBy: 'admin',
createdAt: 2025-08-18T10:45:08.585Z
},
{
id: 8,
title: 'Bon de Livraison',
content: 'Lorsque vous rentrez un numéro de bon de livraison, faite le a l identique, même les majuscules. Pour My candy Shop, prendre le numéro de commande.',
type: 'info',
storeId: null,
createdBy: 'admin_local',
createdAt: 2025-08-07T11:04:38.123Z
}
]
🔍 [PRODUCTION] Looking for user with username: admin
🔍 [PRODUCTION] Looking for user with username: admin_local
📋 PUBLICITIES RETURNED: { count: 29 }
GET /api/publicities 304 in 74ms
🔍 [PRODUCTION] User search result: Not found
❌ [PRODUCTION] User not found with username: admin_local
🔍 [PRODUCTION] User search result: Found
🎯 [PRODUCTION] Found announcements: 2
GET /api/announcements 304 in 86ms
GET /api/user 304 in 4ms
Orders API called with: {
startDate: undefined,
endDate: undefined,
storeId: '1',
userRole: 'admin'
}
🔍 Admin orders filtering by store: { storeId: '1', groupIds: [ 1 ], role: 'admin' }
Fetching all orders
Deliveries API called with: {
startDate: undefined,
endDate: undefined,
storeId: '1',
withBL: undefined,
userRole: 'admin'
}
🔍 Admin deliveries filtering by store: { storeId: '1', groupIds: [ 1 ], role: 'admin' }
Fetching all deliveries
📢 [SERVER] Fetching announcements for user: admin_local environment: production
Customer Orders API called with: { groupIds: [ 1 ], userRole: 'admin' }
📢 [SERVER] User found: { username: 'admin', role: 'admin' }
🎯 [PRODUCTION] Using PostgreSQL DASHBOARD_MESSAGES table
🔗 PRODUCTION: getOrders() récupéré 64 commandes avec relations
Orders returned: 64 items
GET /api/orders 304 in 115ms
🔍 [PRODUCTION] Raw messages from DB: 2 items: [
{
id: 16,
title: 'Mise à jour Prix',
content: 'Merci de mettre vos prix a jour tous les matins, certain magasin ne le font pas.',
type: 'success',
storeId: null,
createdBy: 'admin',
createdAt: 2025-08-18T10:45:08.585Z
},
{
id: 8,
title: 'Bon de Livraison',
content: 'Lorsque vous rentrez un numéro de bon de livraison, faite le a l identique, même les majuscules. Pour My candy Shop, prendre le numéro de commande.',
type: 'info',
storeId: null,
createdBy: 'admin_local',
createdAt: 2025-08-07T11:04:38.123Z
}
]
🔍 [PRODUCTION] Looking for user with username: admin
🔍 [PRODUCTION] Looking for user with username: admin_local
Customer Orders returned: 11 items
GET /api/customer-orders 304 in 147ms
🔗 PRODUCTION: getDeliveries() récupéré 82 livraisons avec relations
Deliveries returned: 82 items
🔍 [PRODUCTION] User search result: Not found
❌ [PRODUCTION] User not found with username: admin_local
GET /api/deliveries 304 in 187ms
🔍 [PRODUCTION] User search result: Found
🎯 [PRODUCTION] Found announcements: 2
GET /api/announcements 304 in 185ms
GET /api/groups 304 in 140ms
GET /api/user 304 in 4ms
GET /api/suppliers 304 in 7ms
🔍 Avoirs API called with: { groupIds: undefined, userRole: 'admin' }
📋 Avoirs returned: 0 items
GET /api/avoirs 304 in 14ms
🔍 [POST AVOIR] Données reçues: {
"supplierId": 34,
"groupId": 1,
"invoiceReference": "",
"comment": "",
"commercialProcessed": false
}
🔍 [POST AVOIR] User: { id: 'admin_local', role: 'admin' }
POST /api/avoirs 400 in 9ms
+2 -1
View File
@@ -2471,9 +2471,10 @@ export async function registerRoutes(app: Express): Promise<Server> {
res.json(avoir);
} catch (error) {
if (error instanceof z.ZodError) {
console.error('❌ [POST AVOIR] ERREURS VALIDATION ZOD:', JSON.stringify(error.errors, null, 2));
return res.status(400).json({ message: "Validation error", errors: error.errors });
}
console.error("Error creating avoir:", error);
console.error("❌ [POST AVOIR] Erreur générale:", error);
res.status(500).json({ message: "Failed to create avoir" });
}
});
+2 -2
View File
@@ -585,8 +585,8 @@ export const insertAvoirSchema = createInsertSchema(avoirs).omit({
processedAt: true,
}).extend({
status: z.enum(["En attente de demande", "Demandé", "Reçu"]).default("En attente de demande"),
amount: z.coerce.number().positive(), // Montant doit être positif
invoiceReference: z.string().min(1, "La référence facture est obligatoire"),
amount: z.coerce.number().positive().optional(), // Montant optionnel et positif si présent
invoiceReference: z.string().optional(), // Référence facture optionnelle
comment: z.string().optional(),
commercialProcessed: z.boolean().default(false),
});