Het hart van een handels- of productiebedrijf, maar dan in één avond: artikelen met voorraad, inkoop- en verkooporders, facturen als pdf en een planner die elke ochtend meldt wat er bijbesteld moet worden. AI helpt met bestelvoorstellen en leest leveranciersfacturen uit.
Wow-moment
Voer een verkooporder in van 40 stuks: de voorraad zakt onder het minimum, het artikel kleurt rood, de factuur-pdf staat klaar, en met Maak bestelvoorstel zet AI een inkooporder klaar met onderbouwing ("verbruik laatste 8 weken stijgt, levertijd 5 dagen, bestel 120"). Op het dashboard verschuift de voorraadwaarde live.
Gegevens
| Tabel | Kolommen |
|---|---|
users |
(starter) APP_AUTH=demo, rollen Verkoop, Inkoop, Magazijn, Directie |
products |
sku, name, category, unit (st, m, kg, doos), purchase_price, sale_price, stock (int), min_stock, lead_time_days, supplier_id |
suppliers |
name, city, email, payment_terms_days |
customers |
name, city, vat_number, payment_terms_days |
orders |
type (verkoop, inkoop), number (V2026-0001 / I2026-0001), customer_id / supplier_id, status (concept, bevestigd, geleverd, gefactureerd), ordered_at, delivered_at, notes |
order_lines |
order_id, product_id, quantity, price, discount_pct |
stock_movements |
product_id, order_id (nullable), quantity (+/-), reason (verkoop, inkoop, correctie, telling), user_id |
invoices |
order_id, number (F2026-0001), date, due_date, total_excl, vat, total_incl, paid_at (nullable) |
Pagina's
- Artikelen (
/products): tabel met voorraad-badge (rood onder minimum), zoeken, filter op categorie. Detail: voorraadverloop (<x-chart type="line">) uitstock_movements. - Verkooporders / Inkooporders: lijst + nieuwe order met regels (Alpine: regel toevoegen, artikel zoeken, subtotaal live), knoppen Bevestigen → Leveren (voorraad muteert, in een transactie) → Factureren.
- Facturen: lijst, pdf (
composer require barryvdh/laravel-dompdf), markeren als betaald, te laat = rood. - Magazijn (rol Magazijn): vandaag te leveren en te ontvangen orders, voorraadtelling invoeren (correctie).
- Dashboard (
_live): voorraadwaarde, omzet per week (bar), openstaande facturen, artikelen onder minimum.
Bouwvolgorde
- Migraties + seeder: 5 leveranciers, 15 klanten, 60 artikelen (een groothandel in installatiemateriaal, kantoorartikelen of bakkerijgrondstoffen; past het team aan), 12 weken aan orders en voorraadmutaties zodat grafieken iets laten zien.
- Artikelen + voorraadverloop. 3. Verkooporder met regels en de statusknoppen; voorraad muteert bij "geleverd".
- Factuur + pdf. 5. Inkooporders (zelfde scherm,
type= inkoop; voorraad omhoog bij ontvangst). - Planner: elke ochtend 07:00 job
CheckStockdie artikelen onder minimum markeert en een lijst "bijbestellen" maakt; knop "nu controleren" voor de demo. 7. Dashboard. - AI: bestelvoorstel (agent krijgt per artikel verbruik per week, voorraad, minimum en levertijd; geeft vaste velden
aantalenreden) → concept-inkooporder. Leveranciersfactuur uitlezen (foto of pdf → regels → koppelen aan inkooporder, verschillen tonen). Vraag het je data ("welke klant bestelde het meest in september?") via een agent met tools die vaste queries draaien (docs/AI.md 2.10), geen vrije SQL.
Demo (3 minuten)
- "Voorraad staat in Excel en klopt nooit." 2. Verkooporder: voorraad zakt, artikel kleurt rood.
- Factuur-pdf. 4. AI-bestelvoorstel → inkooporder. 5. Dashboard live.
Let op
- Voorraadmutaties altijd in
DB::transaction()en alleen viastock_movements, zodat de voorraad uit te leggen is. - Nummering per jaar en type met een eenvoudige
max()+1; voor de avond is dat goed genoeg.