Enhance API parameter documentation and introduce reusable component

- Added a new Blade component `<x-logistics.param-table>` for displaying API parameter tables across all Filament pages, ensuring consistent styling and reducing HTML duplication.
- Integrated parameter tables for each endpoint in the Articles, Documents, Divers, Journaux, Tiers, and other pages, providing users with clear reference information.
- Updated the documentation to reflect the new structure and details of API parameters, including required fields and descriptions.
- Improved user experience by ensuring that endpoints without parameters do not display empty tables.
- Overall, enhanced the clarity and usability of API interactions within the application.
This commit is contained in:
2026-02-23 13:55:00 +01:00
parent c84e0c680a
commit bc82299aa6
20 changed files with 989 additions and 178 deletions

View File

@@ -18,10 +18,10 @@ Dernière mise à jour : 2026-02-23
- [x] 7 vues Blade associées dans `resources/views/filament/pages/`
- [x] Toggle Lecture/Ecriture sur toutes les pages entité (Articles, Documents, Journaux, Tiers, Divers)
- [x] Page Documents : 9 endpoints couverts (7 lecture + 2 écriture)
- [x] Page Divers : 3 endpoints couverts (2 lecture + 1 écriture non fonctionnel)
- [x] Page Divers : 3 endpoints couverts (2 lecture + 1 écriture fonctionnel en MODE=1 Restock)
- [x] Gestion d'erreur dans toutes les pages Filament (LogisticsApiException + Throwable)
- [x] Logging des requêtes API réussies et échouées dans `api_request_logs`
- [x] Système de design unifié : 10 composants Blade dans `resources/views/components/logistics/`
- [x] Système de design unifié : 11 composants Blade dans `resources/views/components/logistics/`
- [x] Convention de design documentée dans `.cursor/rules/design-system.mdc`
- [x] Toutes les pages Filament utilisent les composants `x-logistics.*`
- [x] Thème Filament personnalisé (`resources/css/filament/admin/theme.css`)
@@ -66,32 +66,43 @@ Dernière mise à jour : 2026-02-23
- [x] Documentation `third_list` et `third_GetArtHistory` massivement enrichie (colonnes valides, métadonnées, exemples de réponse, structure de réponse)
- [x] 3 nouvelles remarques dans la documentation (colonnes third_list vs column_list/cust, colonnes de recherche, casse thirdid)
- [x] 7 nouveaux tests Pest dans TiersPageTest (total : 15 tests)
- [x] Investigation complète des 3 endpoints Divers (appels API réels)
- [x] `getserialnumber` : structure de réponse documentée (objet `{ "getserialnumber": "..." }`, pas une chaîne)
- [x] `codes_list` : correspondance exacte (pas préfixe), sensible à la casse, chaîne vide = liste maître (42 groupes), signification des champs documentée
- [x] `custom_geninv_updatestock` reclassé comme FONCTIONNEL (MODE=1 Restock). STKID = code de dépôt. THIRDID obligatoire en Restock. QTY négatif possible.
- [x] Divers.php : ajout THIRDID, valeur par défaut MODE=1, validation améliorée
- [x] divers.blade.php : bandeau mis à jour, champ THIRDID, labels corrigés
- [x] Documentation enrichie : getserialnumber (structure réponse), codes_list (2 modes, groupes, champs), custom_geninv_updatestock (reclassé, 7 paramètres, modes, erreurs). Section "Endpoints non fonctionnels" supprimée. 4 nouvelles remarques.
- [x] 12 nouveaux tests Pest dans DiversPageTest (total : 22 tests)
- [x] Composant `<x-logistics.param-table>` créé : tableau de référence des paramètres API réutilisable
- [x] Tableaux de paramètres ajoutés sous chaque endpoint de toutes les pages (17 endpoints au total)
- [x] Tableau brut HTML de `custom_geninv_updatestock` refactorisé vers le composant `param-table`
## Ce qui reste à faire
- [ ] Corriger le test pré-existant `FilamentDashboardTest`
- [ ] Corriger les tests pré-existants `FilamentDashboardTest` (2 tests en échec)
- [ ] Vérifier le rendu visuel de toutes les pages avec de vraies données API
- [ ] Éventuellement : pagination / tri côté client pour les grands tableaux
- [ ] Éventuellement : page de consultation des logs API
## Problèmes connus
- 1 test `FilamentDashboardTest` échoue car le dashboard ne contient pas les sections attendues. Test créé avant la refonte du dashboard.
- 2 tests `FilamentDashboardTest` échouent car le dashboard ne contient pas les sections attendues. Tests créés avant la refonte du dashboard.
- L'erreur `SQLSTATE[HY000] [1049] Unknown database` peut apparaître lors de `composer update` si la base n'est pas encore créée (script `boost:update`). Sans impact une fois la base créée.
- L'API retourne chaque colonne en double dans `column_list`. Le `TablesExplorer` déduplique côté client.
- Le paramètre `results` n'a aucun effet sur `art_list` (toujours 5 max) ni sur `third_list` (toujours 10 max). Limite fixe côté serveur. En revanche, `results` fonctionne sur `document_list` et `jnl_list`.
- Le paramètre `barcode` n'a aucun effet observable sur `art_list`. Le paramètre `search` reste obligatoire même avec `barcode`.
- L'endpoint `custom_geninv_updatestock` reste non fonctionnel (paramètre STKID inconnu).
- La colonne `custname` n'existe pas dans `third_list`. Le nom du tiers est dans la colonne `name`. Beaucoup de colonnes de la table `cust` (visibles dans `column_list/cust`) ne sont pas acceptées par `third_list` dans le paramètre `select`.
- `third_GetArtHistory` retourne l'intégralité de l'historique sans pagination (potentiellement des milliers d'éléments), ce qui peut être lent pour certains tiers.
- `custom_geninv_updatestock` MODE=0 (Inventaire) dépend de la configuration des journaux KI du dossier. Dans le dossier de test, aucun journal KI n'est configuré pour les dépôts "A" ou "SG", ce qui rend MODE=0 non fonctionnel dans cet environnement.
## Métriques
- Tests : 134 passent, 1 en échec pré-existant
- Tests : 147 passent, 2 en échec pré-existant
- Pages Filament : 7 (Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers)
- Composants Blade design system : 10
- Composants Blade design system : 11 (card, section-header, error-banner, stat-bar, stat-item, data-table, empty-state, search-input, form-field, json-block, param-table)
- Endpoints API couverts par LogisticsService : 19
- Endpoints accessibles depuis l'interface : 19 (dont 1 non fonctionnel, 1 partiellement fonctionnel)
- Endpoints accessibles depuis l'interface : 19 (tous fonctionnels, MODE=0 de custom_geninv_updatestock dépend de la config)
- Migrations : 5 (users, cache, jobs, two_factor, api_request_logs)
- Règles Cursor : 4 (laravel-boost, memory-bank, design-system, update-documentation)
- Classes support : 1 (ApiErrorTranslator)