Files
logisticsAPI/memory-bank/activeContext.md
Marvin bc82299aa6 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.
2026-02-23 13:55:00 +01:00

5.6 KiB

Active Context

Dernière mise à jour : 2026-02-23

Travail en cours

Aucun travail en cours.

Changements récents (2026-02-23, session tableaux de paramètres)

  • Nouveau composant Blade <x-logistics.param-table> : composant réutilisable dans resources/views/components/logistics/param-table.blade.php. Accepte un tableau $params (chaque élément contient name, type, required, description) et génère un tableau de référence des paramètres API avec les colonnes PARAMETRE / TYPE / OBLIGATOIRE / DESCRIPTION. Style conforme au design system (mêmes classes CSS que le tableau brut qui existait dans la page Divers).
  • Tableaux de paramètres ajoutés sur toutes les pages : chaque endpoint de chaque page Filament dispose désormais d'un tableau de référence des paramètres sous le formulaire. Les descriptions proviennent de la documentation API (documentation/documentation_api_logistics.md).
    • Divers : getserialnumber (aucun paramètre, composant avec tableau vide = non affiché), codes_list (2 params), custom_geninv_updatestock (7 params, refactorisé depuis le HTML brut).
    • Articles : art_list (3 params), art_getstk (1 param).
    • Journaux : jnl_list (3 params).
    • Tiers : third_list (3 params), third_GetArtHistory (1 param).
    • Documents : document_list (3 params), document_detail (2 params), Document_GetStatusList (1 param), Document_GetUnitPriceAndVat (5 params), Document_GetDueDate (2 params), Document_GetAttachListThumbnail (2 params), Document_GetPDF (3 params), document_add (9 params), document_mod (6 params).
  • Total : 11 composants Blade dans le design system (ajout de param-table).
  • Tests : 147 passent, 2 en échec pré-existant (FilamentDashboardTest). Aucun nouveau test ajouté (les tests existants vérifient le rendu des pages et passent tous).
  • Pint : formatage validé.

Décisions récentes

  • Composant param-table plutôt que HTML brut (2026-02-23) : Le tableau de paramètres existant dans divers.blade.php (pour custom_geninv_updatestock) a été extrait dans un composant réutilisable <x-logistics.param-table> pour éviter la duplication de HTML/CSS sur toutes les pages.
  • Tableaux vides non affichés (2026-02-23) : Le composant param-table ne rend rien si le tableau $params est vide. Les endpoints sans paramètres (comme getserialnumber) n'affichent donc pas de tableau inutile.
  • custom_geninv_updatestock fonctionnel (2026-02-23) : L'endpoint a été reclassé de "non fonctionnel" à "fonctionnel" en MODE=1 (Restock). STKID = code de dépôt (obtenu via codes_list STOCK). MODE=1 nécessite THIRDID. MODE=0 dépend de la configuration des journaux KI.
  • codes_list correspondance exacte (2026-02-23) : Le paramètre code fonctionne par correspondance exacte sur le nom du groupe, pas par préfixe. Sensible à la casse (MAJUSCULES).
  • getserialnumber structure réponse (2026-02-23) : Le champ data est un objet { "getserialnumber": "..." }, pas une chaîne directe.
  • Colonne name au lieu de custname (2026-02-23) : La colonne custname n'existe pas dans third_list. Le nom est dans name.
  • Document_GetPDF fonctionnel (2026-02-23) : LAYOUT doit être une valeur numérique en string.
  • Format de date YYYY-MM-DD (2026-02-23) : Tous les endpoints date exigent ce format.
  • Toggle Lecture/Ecriture (2026-02-21) : Toutes les pages entité disposent d'un toggle.
  • Convention d'écriture avec accents (2026-02-20) : Tous les contenus en français utilisent les accents.

Historique

2026-02-23 (session investigation endpoints Divers)

  • Investigation complète des 3 endpoints Divers.
  • getserialnumber : structure réponse documentée.
  • codes_list : correspondance exacte, sensible à la casse, chaîne vide = liste maître.
  • custom_geninv_updatestock : reclassé fonctionnel en MODE=1 Restock.
  • 12 nouveaux tests. Total à la fin : 145 tests.

2026-02-23 (session investigation endpoints Tiers)

  • Investigation complète des 2 endpoints Tiers.
  • third_list : colonnes de recherche (name, groupid, vat), 15 colonnes valides, colonne custname invalide.
  • third_GetArtHistory : thirdid minuscules, historique complet sans limite.
  • 7 nouveaux tests. Total à la fin : 134 tests.

2026-02-23 (session investigation endpoints Documents)

  • Investigation complète des 9 endpoints Documents.
  • Document_GetPDF reclassé comme fonctionnel (LAYOUT numérique).
  • Format de date YYYY-MM-DD confirmé et documenté.
  • 1 nouveau test. Total à la fin : 125 tests.

2026-02-23 (session investigation art_list)

  • Investigation paramètre results et barcode sur art_list/third_list.
  • 2 nouveaux tests barcode.

2026-02-23 (session gestion erreurs et validation)

  • Création de ApiErrorTranslator. Validation des champs obligatoires. Propriétés de tracking.
  • 4 nouveaux fichiers de tests. Total : 122 tests.

2026-02-21 (session endpoints manquants)

  • 2 méthodes ajoutées à LogisticsService. Pages Documents, Divers, toggle sur toutes les pages.
  • 23 nouveaux tests.

2026-02-20

  • Page Documentation, système de design, composants Blade, thème personnalisé, robustesse service.

2026-02-19

  • Installation Filament v5, 5 pages, LogisticsService, migration api_request_logs.

Prochaines étapes

  • Corriger les tests pré-existants FilamentDashboardTest (2 tests en échec).
  • Tester toutes les pages avec de vraies données API et vérifier le rendu visuel.
  • Éventuellement : pagination / tri côté client pour les grands tableaux.
  • Éventuellement : page de consultation des logs API.