diff --git a/attached_assets/{04A78920-A3B5-41B4-A22D-995051FB8DD4}_1757342109935.png b/attached_assets/{04A78920-A3B5-41B4-A22D-995051FB8DD4}_1757342109935.png new file mode 100644 index 0000000..1111d5b Binary files /dev/null and b/attached_assets/{04A78920-A3B5-41B4-A22D-995051FB8DD4}_1757342109935.png differ diff --git a/sql/diagnostic_references.sql b/sql/diagnostic_references.sql new file mode 100644 index 0000000..249a237 --- /dev/null +++ b/sql/diagnostic_references.sql @@ -0,0 +1,46 @@ +-- 🔍 DIAGNOSTIC DES RÉFÉRENCES - Trouvons le vrai problème +-- Exécutez chaque section séparément + +-- SECTION 1: Vérifier les tables dépendantes +SELECT 'suppliers' as table_name, COUNT(*) as record_count FROM suppliers +UNION ALL +SELECT 'groups' as table_name, COUNT(*) FROM groups +UNION ALL +SELECT 'users' as table_name, COUNT(*) FROM users; + +-- SECTION 2: Voir les premiers IDs disponibles +SELECT 'supplier_ids' as type, string_agg(id::text, ', ') as available_ids +FROM (SELECT id FROM suppliers LIMIT 5) s +UNION ALL +SELECT 'group_ids' as type, string_agg(id::text, ', ') +FROM (SELECT id FROM groups LIMIT 5) g +UNION ALL +SELECT 'user_ids' as type, string_agg(id::text, ', ') +FROM (SELECT id FROM users LIMIT 5) u; + +-- SECTION 3: Vérifier les types de colonnes +SELECT table_name, column_name, data_type +FROM information_schema.columns +WHERE table_name IN ('suppliers', 'groups', 'users', 'avoirs') +AND column_name IN ('id', 'created_by') +ORDER BY table_name, column_name; + +-- SECTION 4: Test d'insertion avec de vraies données +-- ATTENTION: Remplacez les valeurs par les vrais IDs trouvés ci-dessus +INSERT INTO avoirs ( + supplier_id, + group_id, + invoice_reference, + amount, + comment, + commercial_processed, + created_by +) VALUES ( + (SELECT id FROM suppliers LIMIT 1), -- Premier supplier existant + (SELECT id FROM groups LIMIT 1), -- Premier group existant + 'TEST-REF-' || EXTRACT(EPOCH FROM NOW()), + 29.99, + 'Test avec vraies données', + false, + (SELECT id FROM users LIMIT 1)::varchar -- Premier user existant +) RETURNING id, created_at; \ No newline at end of file diff --git a/sql/fix_references.sql b/sql/fix_references.sql new file mode 100644 index 0000000..bdc9fc2 --- /dev/null +++ b/sql/fix_references.sql @@ -0,0 +1,39 @@ +-- 🔧 CORRECTION DES RÉFÉRENCES - Si les tables sont vides +-- Utilisez ce script SI les tables suppliers/groups/users sont vides + +-- 1. Créer des données de test minimales pour suppliers +INSERT INTO suppliers (name, contact_email) VALUES +('Fournisseur Test', 'test@supplier.com') +ON CONFLICT DO NOTHING; + +-- 2. Créer des données de test minimales pour groups +INSERT INTO groups (name, description) VALUES +('Magasin Test', 'Magasin de test pour avoirs') +ON CONFLICT DO NOTHING; + +-- 3. Vérifier/créer un utilisateur admin +INSERT INTO users (id, username, email, role) VALUES +('admin', 'admin', 'admin@test.com', 'admin') +ON CONFLICT (id) DO NOTHING; + +-- 4. Maintenant tester l'insertion avoir +INSERT INTO avoirs ( + supplier_id, + group_id, + invoice_reference, + amount, + comment, + commercial_processed, + created_by +) VALUES ( + (SELECT id FROM suppliers WHERE name = 'Fournisseur Test'), + (SELECT id FROM groups WHERE name = 'Magasin Test'), + 'TEST-FINAL-001', + 99.99, + 'Test avec données créées', + false, + 'admin' +) RETURNING id, supplier_id, group_id, created_by; + +-- 5. Nettoyer le test +DELETE FROM avoirs WHERE invoice_reference = 'TEST-FINAL-001'; \ No newline at end of file