- 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.
71 lines
5.2 KiB
Markdown
71 lines
5.2 KiB
Markdown
# 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).
|