mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-21 22:18:17 +02:00
4 files changed
+290
No files matched your search
+201
@@ -0,0 +1,201 @@
|
|||||||
|
|
||||||
|
ordersCount: 32,
|
||||||
|
|
||||||
|
deliveriesCount: 37,
|
||||||
|
|
||||||
|
pendingOrdersCount: 24,
|
||||||
|
|
||||||
|
averageDeliveryTime: '5.7272727272727275 jours (commande → livraison, livraisons avec commande liée uniquement)',
|
||||||
|
|
||||||
|
totalPalettes: 3009,
|
||||||
|
|
||||||
|
totalPackages: 11
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
📋 PUBLICITIES RETURNED: { count: 29 }
|
||||||
|
|
||||||
|
GET /api/stats/monthly 304 in 571ms
|
||||||
|
|
||||||
|
GET /api/publicities 304 in 60ms
|
||||||
|
|
||||||
|
🔍 [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
|
||||||
|
|
||||||
|
🔍 [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 97ms
|
||||||
|
|
||||||
|
GET /api/user 304 in 11ms
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
📢 [SERVER] Fetching announcements for user: admin_local environment: production
|
||||||
|
|
||||||
|
📢 [SERVER] User found: { username: 'admin', role: 'admin' }
|
||||||
|
|
||||||
|
🎯 [PRODUCTION] Using PostgreSQL DASHBOARD_MESSAGES table
|
||||||
|
|
||||||
|
🔍 [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 API called with: { groupIds: [ 1 ], userRole: 'admin' }
|
||||||
|
|
||||||
|
🔍 [PRODUCTION] User search result: Found
|
||||||
|
|
||||||
|
🔍 [PRODUCTION] User search result: Not found
|
||||||
|
|
||||||
|
❌ [PRODUCTION] User not found with username: admin_local
|
||||||
|
|
||||||
|
🎯 [PRODUCTION] Found announcements: 2
|
||||||
|
|
||||||
|
GET /api/announcements 304 in 18ms
|
||||||
|
|
||||||
|
Customer Orders returned: 11 items
|
||||||
|
|
||||||
|
GET /api/customer-orders 304 in 25ms
|
||||||
|
|
||||||
|
🔗 PRODUCTION: getDeliveries() récupéré 82 livraisons avec relations
|
||||||
|
|
||||||
|
Deliveries returned: 82 items
|
||||||
|
|
||||||
|
GET /api/deliveries 304 in 161ms
|
||||||
|
|
||||||
|
GET /api/groups 304 in 103ms
|
||||||
|
|
||||||
|
🔗 PRODUCTION: getOrders() récupéré 64 commandes avec relations
|
||||||
|
|
||||||
|
Orders returned: 64 items
|
||||||
|
|
||||||
|
GET /api/orders 304 in 217ms
|
||||||
|
|
||||||
|
GET /api/user 304 in 5ms
|
||||||
|
|
||||||
|
🔍 Avoirs API called with: { groupIds: undefined, userRole: 'admin' }
|
||||||
|
|
||||||
|
GET /api/suppliers 304 in 8ms
|
||||||
|
|
||||||
|
📋 Avoirs returned: 1 items
|
||||||
|
|
||||||
|
GET /api/avoirs 304 in 14ms
|
||||||
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 220 KiB |
@@ -0,0 +1,45 @@
|
|||||||
|
// 🔍 DEBUG CLIENT-SIDE ERRORS
|
||||||
|
// Ajoutez ce script dans la console de votre navigateur pour capturer les erreurs
|
||||||
|
|
||||||
|
console.log('🔍 DEBUG AVOIRS - Initialisation...');
|
||||||
|
|
||||||
|
// Intercepter les erreurs React
|
||||||
|
window.addEventListener('error', (event) => {
|
||||||
|
console.error('🚨 ERREUR JAVASCRIPT:', {
|
||||||
|
message: event.message,
|
||||||
|
filename: event.filename,
|
||||||
|
lineno: event.lineno,
|
||||||
|
colno: event.colno,
|
||||||
|
error: event.error
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Intercepter les erreurs de Promise non gérées
|
||||||
|
window.addEventListener('unhandledrejection', (event) => {
|
||||||
|
console.error('🚨 ERREUR PROMISE:', {
|
||||||
|
reason: event.reason,
|
||||||
|
promise: event.promise
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Tester l'accès direct à l'API
|
||||||
|
fetch('/api/avoirs', { credentials: 'include' })
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
console.log('✅ API TEST SUCCESS:', data);
|
||||||
|
console.log('📊 Nombre d\'avoirs:', data.length);
|
||||||
|
if (data.length > 0) {
|
||||||
|
console.log('📋 Premier avoir:', data[0]);
|
||||||
|
console.log('🔍 Structure:', {
|
||||||
|
hasInvoiceReference: data[0].invoiceReference !== undefined,
|
||||||
|
hasAmount: data[0].amount !== undefined,
|
||||||
|
invoiceRefType: typeof data[0].invoiceReference,
|
||||||
|
amountType: typeof data[0].amount
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('❌ API TEST ERROR:', error);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('🔍 DEBUG initialisé - surveillez les erreurs ci-dessus');
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
-- 🔧 CORRECTION TABLE PRODUCTION
|
||||||
|
-- Script pour corriger la table avoirs en production
|
||||||
|
|
||||||
|
-- 1. Vérifier la structure actuelle
|
||||||
|
SELECT 'STRUCTURE_ACTUELLE' as check_type,
|
||||||
|
column_name,
|
||||||
|
data_type,
|
||||||
|
is_nullable,
|
||||||
|
column_default
|
||||||
|
FROM information_schema.columns
|
||||||
|
WHERE table_name = 'avoirs'
|
||||||
|
ORDER BY ordinal_position;
|
||||||
|
|
||||||
|
-- 2. Corriger les colonnes pour les rendre optionnelles
|
||||||
|
ALTER TABLE avoirs ALTER COLUMN invoice_reference DROP NOT NULL;
|
||||||
|
ALTER TABLE avoirs ALTER COLUMN amount DROP NOT NULL;
|
||||||
|
|
||||||
|
-- 3. Vérifier après correction
|
||||||
|
SELECT 'STRUCTURE_CORRIGÉE' as check_type,
|
||||||
|
column_name,
|
||||||
|
data_type,
|
||||||
|
is_nullable,
|
||||||
|
column_default
|
||||||
|
FROM information_schema.columns
|
||||||
|
WHERE table_name = 'avoirs'
|
||||||
|
ORDER BY ordinal_position;
|
||||||
|
|
||||||
|
-- 4. Test d'insertion avec champs optionnels
|
||||||
|
INSERT INTO avoirs (
|
||||||
|
supplier_id,
|
||||||
|
group_id,
|
||||||
|
comment,
|
||||||
|
commercial_processed,
|
||||||
|
created_by
|
||||||
|
) VALUES (
|
||||||
|
(SELECT id FROM suppliers LIMIT 1),
|
||||||
|
(SELECT id FROM groups LIMIT 1),
|
||||||
|
'Test champs optionnels',
|
||||||
|
false,
|
||||||
|
(SELECT id FROM users LIMIT 1)::varchar
|
||||||
|
) RETURNING id, invoice_reference, amount;
|
||||||
|
|
||||||
|
-- 5. Nettoyer le test
|
||||||
|
DELETE FROM avoirs WHERE comment = 'Test champs optionnels';
|
||||||
Reference in new issue
Block a user