- Changed the default value of the `$select` property in Tiers.php from `custid,custname` to `custid,name` to reflect valid column names. - Updated the tiers.blade.php view to align the placeholder for the select field with the new default value. - Enhanced the documentation for the `third_list` and `third_GetArtHistory` endpoints, detailing valid search columns, metadata, and response structures. - Added new tests in TiersPageTest.php to verify the default select value, API parameter handling, and metadata storage. - Overall, improved the user experience and API interaction for managing tiers.
7.6 KiB
7.6 KiB
Progress
Dernière mise à jour : 2026-02-23
Ce qui fonctionne
- Projet Laravel 12 initialisé (livewire-starter-kit)
- Livewire 4 + Flux UI Free v2 installés
- Fortify installé (authentification existante, non utilisée par Filament)
- Documentation API rédigée avec accents (
documentation/documentation_api_logistics.md) - Memory bank créé et structuré (
memory-bank/,.cursor/rules/memory-bank.mdc) - Configuration API Logistics (
.env,config/logistics.php) avec timeout et retry LogisticsServicecréé (app/Services/LogisticsService.php) avec 19 méthodes, timeout, retry, gestion d'erreurLogisticsApiExceptioncréée (app/Exceptions/LogisticsApiException.php) avec messages français- Migration
api_request_logscréée - Filament v5.0.0 installé et configuré sans authentification
- 7 pages Filament créées : Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers
- 7 vues Blade associées dans
resources/views/filament/pages/ - Toggle Lecture/Ecriture sur toutes les pages entité (Articles, Documents, Journaux, Tiers, Divers)
- Page Documents : 9 endpoints couverts (7 lecture + 2 écriture)
- Page Divers : 3 endpoints couverts (2 lecture + 1 écriture non fonctionnel)
- Gestion d'erreur dans toutes les pages Filament (LogisticsApiException + Throwable)
- Logging des requêtes API réussies et échouées dans
api_request_logs - Système de design unifié : 10 composants Blade dans
resources/views/components/logistics/ - Convention de design documentée dans
.cursor/rules/design-system.mdc - Toutes les pages Filament utilisent les composants
x-logistics.* - Thème Filament personnalisé (
resources/css/filament/admin/theme.css) - Plugin
@tailwindcss/typographyactivé pour le rendu prose - Styles
.documentation-prosepersonnalisés pour le dark mode - TablesExplorer amélioré : selectTable, déduplication colonnes, filtre, badges de types
- Page Documentation avec rendu markdown stylisé et export PDF
- Connectivité API fonctionnelle (serveur
tse-10-test.esi.local) - Convention d'écriture avec accents français appliquée
README.mdcréé- Formatage Pint validé
- CI GitHub Actions (lint + tests)
ApiErrorTranslatorcréé (app/Support/ApiErrorTranslator.php) : normalisation et traduction des erreurs API- Composant
error-banneramélioré (supportenl2brpour les explications) - Composant
json-blockamélioré (prop$searched+ état vide) - Badge de comptage corrigé (
count($data)au lieu de$metadata['rowcount']) - Validation des champs obligatoires sur toutes les pages API (messages en français)
- Propriétés de tracking (
$hasSearched, etc.) sur toutes les pages ApiErrorTranslatorintégré dans toutes les pages API (Articles, Documents, Divers, Journaux, Tiers, TablesExplorer)- 4 nouveaux fichiers de tests : ArticlesPageTest, JournauxPageTest, TiersPageTest, ApiErrorTranslatorTest
- Tests existants mis à jour (DiversPageTest, DocumentsPageTest) avec validation et tracking
- Investigation paramètre
results: sans effet surart_list(5 max) etthird_list(10 max), limite fixe côté serveur - Investigation paramètre
barcode: sans effet observable surart_list,searchreste obligatoire - Page Articles :
$resultssupprimé,$barcodeajouté, formulaire mis à jour - Documentation
art_listetthird_listcorrigée (métadonnées réelles, paramètres inefficaces documentés) - 2 nouveaux tests barcode dans ArticlesPageTest (envoi quand renseigné, omission quand vide)
- Investigation complète des 9 endpoints Documents (appels API réels, structures de réponse, formats)
- Document_GetPDF reclassé comme fonctionnel (LAYOUT numérique en string, ex: "1")
- Format de date YYYY-MM-DD confirmé et documenté pour tous les endpoints avec paramètre date
- Codes paydelay documentés (10 codes via codes_list PAYDELAY : 30, 30F, 45F, 50, 60, 60F, 75F, 90, 90F, 0F)
- Modes de paiement documentés (codes_list PAYMODE : CAS, VIR, BC, CBEF)
- Paramètre
resultsajouté à document_list (fonctionne, défaut ~108) - Documents.php : propriété
$resultsajoutée, transmise en string à l'API - documents.blade.php : champ
resultsajouté, bandeau "non fonctionnel" retiré de GetPDF, placeholder LAYOUT mis à jour - Documentation API massivement enrichie (réponses réelles, structures détaillées, section endpoints partiellement fonctionnels)
- 1 nouveau test Pest (results envoyé en string à document_list)
- Investigation complète des 2 endpoints Tiers (appels API réels)
third_list: colonnes de recherche confirmées (name,groupid,vat, pascustid), colonnes valides documentées (15 colonnes), colonnecustnameinvalidethird_GetArtHistory: structure de réponse documentée (8 champs), cassethirdidobligatoire, retourne tout l'historique sans limite- Tiers.php : valeur par défaut
$selectcorrigée decustid,custnameàcustid,name - tiers.blade.php : placeholder du champ select mis à jour
- Documentation
third_listetthird_GetArtHistorymassivement enrichie (colonnes valides, métadonnées, exemples de réponse, structure de réponse) - 3 nouvelles remarques dans la documentation (colonnes third_list vs column_list/cust, colonnes de recherche, casse thirdid)
- 7 nouveaux tests Pest dans TiersPageTest (total : 15 tests)
Ce qui reste à faire
- Corriger le test pré-existant
FilamentDashboardTest - 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. - L'erreur
SQLSTATE[HY000] [1049] Unknown databasepeut apparaître lors decomposer updatesi la base n'est pas encore créée (scriptboost:update). Sans impact une fois la base créée. - L'API retourne chaque colonne en double dans
column_list. LeTablesExplorerdéduplique côté client. - Le paramètre
resultsn'a aucun effet surart_list(toujours 5 max) ni surthird_list(toujours 10 max). Limite fixe côté serveur. En revanche,resultsfonctionne surdocument_listetjnl_list. - Le paramètre
barcoden'a aucun effet observable surart_list. Le paramètresearchreste obligatoire même avecbarcode. - L'endpoint
custom_geninv_updatestockreste non fonctionnel (paramètre STKID inconnu). - La colonne
custnamen'existe pas dansthird_list. Le nom du tiers est dans la colonnename. Beaucoup de colonnes de la tablecust(visibles danscolumn_list/cust) ne sont pas acceptées parthird_listdans le paramètreselect. third_GetArtHistoryretourne l'intégralité de l'historique sans pagination (potentiellement des milliers d'éléments), ce qui peut être lent pour certains tiers.
Métriques
- Tests : 134 passent, 1 en échec pré-existant
- Pages Filament : 7 (Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers)
- Composants Blade design system : 10
- Endpoints API couverts par LogisticsService : 19
- Endpoints accessibles depuis l'interface : 19 (dont 1 non fonctionnel, 1 partiellement fonctionnel)
- 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)