Implement CRUD functionality for Articles and Tiers with enhanced API documentation

- Introduced new endpoints for creating and modifying articles (`art_add`, `art_mod`) and tiers (`third_add`, `third_mod`), allowing users to manage these entities effectively.
- Updated the Articles and Tiers pages to include forms for adding and modifying records, complete with parameter tables for clear guidance on required inputs.
- Enhanced the API documentation to include detailed descriptions, examples, and metadata for the new endpoints, improving usability and understanding for developers.
- Created a new rule for writing conventions with French accents to ensure consistency across the project.
- Updated existing documentation to reflect structural changes and added a summary table for CRUD operations.
- Added tests to verify the functionality of the new features and ensure robust error handling.
This commit is contained in:
2026-02-23 15:55:09 +01:00
parent b95ee46b1c
commit 714bdc3dd7
15 changed files with 1479 additions and 145 deletions

View File

@@ -1,70 +1,72 @@
# Update Documentation
Quand l'utilisateur dit **"update documentation"**, tu DOIS mettre a jour le fichier `documentation/documentation_api_logistics.md` en suivant cette procedure.
Quand l'utilisateur dit **"update documentation"**, tu DOIS mettre à jour le fichier `documentation/documentation_api_logistics.md` en suivant cette procédure.
## Procedure de mise a jour
## Procédure de mise à jour
1. **Lire les sources suivantes** (dans cet ordre) :
- `app/Services/LogisticsService.php` : toutes les methodes publiques = endpoints disponibles. Les PHPDoc `@param` contiennent les parametres attendus.
- `config/logistics.php` : configuration de connexion (variables d'environnement, valeurs par defaut).
- `app/Services/LogisticsService.php` : toutes les méthodes publiques = endpoints disponibles. Les PHPDoc `@param` contiennent les paramètres attendus.
- `config/logistics.php` : configuration de connexion (variables d'environnement, valeurs par défaut).
- `.env` : valeurs actuelles des variables de configuration.
- `documentation/documentation_api_logistics.md` : documentation existante a mettre a jour.
- `documentation/documentation_api_logistics.md` : documentation existante à mettre à jour.
- `memory-bank/techContext.md` : contexte technique (tables, types de colonnes, endpoints connus).
2. **Identifier les changements** :
- Nouvelles methodes dans `LogisticsService` = nouveaux endpoints a documenter.
- Methodes supprimees = endpoints a retirer.
- Parametres modifies (PHPDoc `@param`) = mise a jour des tableaux de parametres.
- Nouvelles variables d'environnement dans `config/logistics.php` = mise a jour de la section pre-requis.
- Nouvelles méthodes dans `LogisticsService` = nouveaux endpoints à documenter.
- Méthodes supprimées = endpoints à retirer.
- Paramètres modifiés (PHPDoc `@param`) = mise à jour des tableaux de paramètres.
- Nouvelles variables d'environnement dans `config/logistics.php` = mise à jour de la section pré-requis.
3. **Mettre a jour le fichier** en preservant strictement cette structure :
3. **Mettre à jour le fichier** en préservant strictement cette structure :
```
# Documentation API Logistics (Flex/ESI Gescom)
Derniere mise a jour : <date du jour>
Dernière mise à jour : <date du jour>
## Table des matieres
## 1. Pre-requis
## 2. Comment effectuer des requetes
## 3. Structure de reponse
## 4. Tables et colonnes disponibles
## 5. Recuperation de donnees
### 5.1 Structure de la base de donnees (tables_list, column_list)
### 5.2 Articles (art_list, art_getstk)
### 5.3 Journaux (jnl_list)
### 5.4 Documents (document_list, document_detail, Document_GetStatusList, Document_GetUnitPriceAndVat, Document_GetDueDate, Document_GetAttachListThumbnail)
### 5.5 Tiers (third_list, third_GetArtHistory)
### 5.6 Divers (getserialnumber, codes_list)
## 6. Envoi de donnees
### 6.1 Ajout d'un document (document_add)
### 6.2 Modification d'un document (document_mod)
## 7. Endpoints non fonctionnels
## 8. Relations entre entites
## Table des matières
## 1. Pré-requis
## 2. Environnements d'utilisation
## 3. Comment effectuer des requêtes
## 4. Structure de réponse
## 5. Tables et colonnes disponibles
## 6. Récupération de données
### 6.1 Structure de la base de données (tables_list, column_list)
### 6.2 Articles (art_list, art_getstk)
### 6.3 Journaux (jnl_list)
### 6.4 Documents (document_list, document_detail, Document_GetStatusList, Document_GetUnitPriceAndVat, Document_GetDueDate, Document_GetAttachListThumbnail, Document_GetPDF)
### 6.5 Tiers (third_list, third_GetArtHistory)
### 6.6 Divers (getserialnumber, codes_list)
## 7. Envoi de données
### 7.1 Documents (document_add, document_mod)
### 7.2 Articles (art_add, art_mod)
### 7.3 Tiers (third_add, third_mod)
### 7.4 Divers (custom_geninv_updatestock)
## 8. Relations entre entités
## 9. Remarques et points d'attention
## 10. Ressources externes
```
4. **Pour chaque endpoint, documenter** :
- Description fonctionnelle (a quoi il sert).
- Description fonctionnelle (à quoi il sert).
- URL au format `POST /{dossier}/{endpoint}`.
- Methode service correspondante (`LogisticsService::methode()`).
- Tableau des parametres : nom, type, obligatoire (Oui/Non), description detaillee.
- Exemple de requete (body JSON).
- Exemple de reponse si disponible.
- Méthode service correspondante (`LogisticsService::méthode()`).
- Tableau des paramètres : nom, type, obligatoire (Oui/Non), description détaillée.
- Métadonnées retournées (tableau).
- Exemple de requête (body JSON).
- Exemple de réponse succès et erreur.
5. **Classer les endpoints** :
- Section 5 (Recuperation) : endpoints qui lisent des donnees (toutes les methodes sauf `documentAdd` et `documentMod`).
- Section 6 (Envoi) : endpoints qui creent ou modifient des donnees (`documentAdd`, `documentMod`).
- Section 7 : endpoints identifies mais non fonctionnels.
- Section 6 (Récupération) : endpoints qui lisent des données.
- Section 7 (Envoi) : endpoints qui créent ou modifient des données (`documentAdd`, `documentMod`, `artAdd`, `artMod`, `thirdAdd`, `thirdMod`, `customGeninvUpdatestock`).
6. **Mettre a jour la date** en haut du fichier (`Derniere mise a jour : <date du jour>`).
6. **Mettre à jour la date** en haut du fichier (`Dernière mise à jour : <date du jour>`).
## Regles
## Règles
- Ne jamais supprimer d'information existante sans raison (endpoint supprime du service).
- Ne jamais divulguer ou ecrire des informations sensibles (cles d'API, mots de passe, identifiants de connexion, tokens, secrets ou toute autre donnee confidentielle). Utiliser des valeurs fictives ou des placeholders (ex. `votre-cle-api`, `********`, `{API_KEY}`) dans les exemples.
- Ne jamais supprimer d'information existante sans raison (endpoint supprimé du service).
- Ne jamais divulguer ou écrire des informations sensibles (clés d'API, mots de passe, identifiants de connexion, tokens, secrets ou toute autre donnée confidentielle). Utiliser des valeurs fictives ou des placeholders (ex. `votre-cle-api`, `********`, `{API_KEY}`) dans les exemples.
- Ton factuel et concis, sans emojis.
- Toujours inclure les chemins de fichiers exacts dans les references.
- Les exemples de requete doivent utiliser des valeurs realistes mais ne contenant aucune donnee sensible.
- La table des matieres doit refleter les sections du document.
- Les endpoints non fonctionnels restent documentes avec le statut "Non fonctionnel" et la description du probleme.
- Toujours inclure les chemins de fichiers exacts dans les références.
- Les exemples de requête doivent utiliser des valeurs réalistes mais ne contenant aucune donnée sensible.
- La table des matières doit refléter les sections du document.
- Utiliser les accents français dans tout le contenu.