feat: add sous-devis generation from commandes

From a commande, users can now create one or more sub-quotes
(sous-devis) to ventilate purchases across communes for approval.

- Add parent_devis_id and commande_id FKs on devis table
- Order model: sousDevis() hasMany relation
- Devis model: commande() and parent() relations
- DevisController: createFromCommande / storeFromCommande methods
- OrderController: load and pass sous_devis on show
- Commandes/Show: "Créer un sous-devis" button + ventilation panel
- Devis/CreateFromCommande: form pre-loaded with commande context
- Devis/Index: badge "Sous-devis · CMD-XXXX" on linked quotes
- Devis/Show: back-link to originating commande

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mrKamoo
2026-06-19 15:14:45 +02:00
co-authored by Claude Sonnet 4.6
parent 7312c7640b
commit 8d51f4de3e
12 changed files with 874 additions and 15 deletions
+10 -2
View File
@@ -194,10 +194,18 @@ class OrderController extends Controller
{
Gate::authorize('view', $order);
$order->load(['attachments', 'statusLogs.user']);
$order->load(['attachments', 'statusLogs.user', 'sousDevis']);
return Inertia::render('Commandes/Show', [
'order' => new OrderResource($order),
'order' => new OrderResource($order),
'sousDevis' => $order->sousDevis->map(fn($d) => [
'id' => $d->id,
'number' => $d->number,
'title' => $d->title,
'destinataire_nom' => $d->destinataire_nom,
'total_ttc' => (float) $d->total_ttc,
'status' => $d->status,
]),
]);
}