# 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).