Files
logisticsAPI/memory-bank/activeContext.md
Marvin dfe20e79d7 Enhance Documents page functionality and update API documentation
- Added a new `$results` property to the Documents page to allow users to specify the maximum number of results returned by the `document_list` endpoint, defaulting to ~108.
- Updated the `searchDocuments` method to include the `results` parameter in API requests, ensuring it is sent as a string.
- Modified the documents.blade.php view to include an input field for the `results` parameter, with appropriate placeholder text and guidance.
- Improved the documentation for the `document_list` endpoint to clarify the behavior of the `results` parameter and its interaction with `thirdid`.
- Updated the `Document_GetPDF` section to reflect its functionality and correct usage of the `LAYOUT` parameter.
- Added a new test to verify that the `results` parameter is correctly sent to the API.
- Overall, enhanced the user experience and API interaction for document management.
2026-02-23 11:24:57 +01:00

5.2 KiB

Active Context

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

Travail en cours

Aucun travail en cours.

Changements récents (2026-02-23, session investigation endpoints Documents)

  • Investigation complète des 9 endpoints Documents : tests systématiques via appels API réels pour documenter chaque endpoint de la page Documents.php. Résultats principaux :
    • document_list : le paramètre results fonctionne (contrairement à art_list et third_list). Défaut ~108 résultats. select par défaut retourne uniquement thirdid. Body vide = erreur 400.
    • document_detail : structure de réponse riche documentée (en-tête du document au premier niveau + tableaux detail[] et attach[]). Métadonnées spécifiques : detailRowCount, attachRowCount, totalExecutionTimeMs.
    • Document_GetStatusList : retourne {code, desc}. Statuts documentés pour 6 types de journaux (03VEN, 01COM, 02NEV, 04NCV, 11COMF, 09OFFRE).
    • Document_GetUnitPriceAndVat : QTY doit être string (int = HTTP 400). DATE doit être YYYY-MM-DD (autre format = HTTP 400). Réponse : {unitprice, discount, vatid, vatpc} en strings.
    • Document_GetDueDate : codes paydelay proviennent de codes_list avec code=PAYDELAY (10 codes documentés : 30, 30F, 45F, 50, 60, 60F, 75F, 90, 90F, 0F). date au format YYYY-MM-DD. Réponse : {duedate: "YYYY-MM-DD"}.
    • Document_GetAttachListThumbnail : codes d'erreur 003 (document non trouvé), 004 (pas d'image).
    • Document_GetPDF est FONCTIONNEL : le paramètre LAYOUT doit être une valeur numérique en string (ex: "1"). Les valeurs textuelles provoquent une erreur. Retourne le PDF en base64 dans data.pdf.
    • document_add / document_mod : pas de logs antérieurs, documentation existante cohérente.
  • Documentation massivement mise à jour : documentation/documentation_api_logistics.md enrichie avec exemples de réponses réelles, structures de données détaillées, codes paydelay, format de date YYYY-MM-DD, Document_GetPDF reclassé comme fonctionnel. Ajout de la section "8. Endpoints partiellement fonctionnels". Numérotation des sections mise à jour.
  • Page Documents.php modifiée : ajout de la propriété $results (int, défaut 108), transmission du paramètre results en string à l'API via searchDocuments().
  • Vue documents.blade.php modifiée : ajout du champ results (input numérique) dans le formulaire document_list. Suppression du bandeau "non fonctionnel" de Document_GetPDF, mise à jour du placeholder LAYOUT ("Ex: 1"), mise à jour de la description.
  • 1 nouveau test Pest ajouté dans DocumentsPageTest.php : vérification que results est envoyé en string à l'API.
  • Modes de paiement documentés : codes_list avec code=PAYMODE retourne CAS (Cash), VIR (Virement), BC (Bancontact), CBEF (Cash BEF).
  • Total : 125 tests passent, 2 tests pré-existants en échec (FilamentDashboardTest).

Décisions récentes

  • Document_GetPDF fonctionnel (2026-02-23) : L'endpoint a été reclassé de "non fonctionnel" à "partiellement fonctionnel". Le paramètre LAYOUT doit être une valeur numérique en string. Le bandeau d'avertissement a été retiré de la vue.
  • Format de date YYYY-MM-DD (2026-02-23) : Confirmé par tests que tous les endpoints acceptant une date exigent strictement le format YYYY-MM-DD. Documenté dans la section "Remarques et points d'attention".
  • Paramètre results sur document_list (2026-02-23) : Le paramètre results fonctionne réellement sur document_list (contrairement à art_list et third_list). Ajouté dans le formulaire et le code PHP.
  • Toggle Lecture/Ecriture (2026-02-21) : Toutes les pages entité disposent d'un toggle.
  • Endpoints Documents complétés (2026-02-21) : 9 endpoints couverts.
  • Convention d'écriture avec accents (2026-02-20) : Tous les contenus en français utilisent les accents.

Historique

2026-02-23 (session investigation art_list)

  • Investigation paramètre results : sans effet sur art_list (5 max) et third_list (10 max).
  • Investigation paramètre barcode : sans effet observable, search reste obligatoire.
  • Page Articles : $results supprimé, $barcode ajouté.
  • Documentation art_list et third_list corrigée.
  • 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 2 tests pré-existants FilamentDashboardTest.
  • 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.
  • Éventuellement : investiguer custom_geninv_updatestock (clarifier STKID, TOCHECK, MODE auprès du fournisseur).