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

@@ -109,13 +109,95 @@
</div>
</x-logistics.card>
@else
{{-- third_add --}}
<x-logistics.card>
<x-logistics.section-header title="third_add" description="Créer un nouveau tiers" />
<div class="p-6">
<x-logistics.empty-state
icon="heroicon-o-arrow-up-tray"
title="Aucun endpoint d'écriture disponible"
description="La section Tiers ne dispose pas d'endpoints d'envoi de données."
/>
<div class="grid grid-cols-1 gap-4 sm:grid-cols-3">
<x-logistics.form-field
wire:model="addName"
label="Nom (NAME)"
id="addName"
placeholder="Ex: DUPONT SPRL"
/>
<x-logistics.form-field
wire:model="addVat"
label="Numéro de TVA (VAT)"
id="addVat"
placeholder="Ex: BE0123456789"
/>
<x-logistics.form-field
wire:model="addEmail"
label="E-mail (EMAIL)"
id="addEmail"
placeholder="Ex: contact@example.com"
/>
</div>
<div class="mt-4 flex items-center gap-3">
<x-filament::button wire:click="addTiers" icon="heroicon-o-plus-circle" color="success">
Créer le tiers
</x-filament::button>
<div wire:loading wire:target="addTiers" class="flex items-center gap-2">
<x-filament::loading-indicator class="h-4 w-4 text-primary-500" />
<span class="text-sm text-gray-500">Création en cours...</span>
</div>
</div>
<x-logistics.param-table :params="$this->paramTableThirdAdd()" />
<div wire:loading.remove wire:target="addTiers" class="mt-4">
<x-logistics.json-block :data="$addResult" :searched="$hasAdded" />
</div>
</div>
</x-logistics.card>
{{-- third_mod --}}
<x-logistics.card>
<x-logistics.section-header title="third_mod" description="Modifier un tiers existant" />
<div class="p-6">
<div class="grid grid-cols-1 gap-4 sm:grid-cols-2">
<x-logistics.form-field
wire:model="modCustId"
label="Identifiant tiers (CUSTID)"
id="modCustId"
placeholder="Ex: 0100005650"
/>
<x-logistics.form-field
wire:model="modName"
label="Nouveau nom (NAME)"
id="modName"
placeholder="Ex: DUPONT SA"
/>
<x-logistics.form-field
wire:model="modVat"
label="Nouveau numéro de TVA (VAT)"
id="modVat"
placeholder="Ex: BE0987654321"
/>
<x-logistics.form-field
wire:model="modEmail"
label="Nouvel e-mail (EMAIL)"
id="modEmail"
placeholder="Ex: nouveau@example.com"
/>
</div>
<div class="mt-4 flex items-center gap-3">
<x-filament::button wire:click="modTiers" icon="heroicon-o-pencil-square" color="warning">
Modifier le tiers
</x-filament::button>
<div wire:loading wire:target="modTiers" class="flex items-center gap-2">
<x-filament::loading-indicator class="h-4 w-4 text-primary-500" />
<span class="text-sm text-gray-500">Modification en cours...</span>
</div>
</div>
<x-logistics.param-table :params="$this->paramTableThirdMod()" />
<div wire:loading.remove wire:target="modTiers" class="mt-4">
<x-logistics.json-block :data="$modResult" :searched="$hasModified" />
</div>
</div>
</x-logistics.card>
@endif