mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-15 03:09:32 +02:00
Merge pull request #373 from R0m1k3/1.1
Fix issues with creating new entries and improve data validation
This commit is contained in:
3 files changed
+208
-3
No files matched your search
+204
@@ -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
@@ -2471,9 +2471,10 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
res.json(avoir);
|
res.json(avoir);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error instanceof z.ZodError) {
|
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 });
|
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" });
|
res.status(500).json({ message: "Failed to create avoir" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
+2
-2
@@ -585,8 +585,8 @@ 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().positive(), // Montant doit être positif
|
amount: z.coerce.number().positive().optional(), // Montant optionnel et positif si présent
|
||||||
invoiceReference: z.string().min(1, "La référence facture est obligatoire"),
|
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