Vai al contenuto

Cost Engine e margini

Il Inventory Cost Engine trasforma il magazzino in un sistema che conosce non solo le quantità, ma anche quanto costa realmente ogni articolo e quale margine genera in vendita.

Il modulo è generico: funziona per negozi, industrie, installatori, laboratori, ristoranti e qualsiasi attività che gestisce materiali e prodotti composti.

Voce Percorso Descrizione
Dashboard /inventory/dashboard Prodotti sotto costo, margini bassi, top redditività, rotazione
Costi /inventory/costs Storico costi e snapshot per prodotto
Distinte base /inventory/bom BOM, kit, ricette, semilavorati
Produzione /inventory/production Ordini di produzione
Mapping fornitori /inventory/mapping Associazione codici fornitore ↔ prodotti interni
Ricevimenti merce /inventory/receipts DDT in ingresso / ricevimento da fornitore

Costi e valorizzazione

Ogni prodotto mantiene:

  • Ultimo costo — dall'ultimo acquisto
  • Costo medio — media ponderata (default)
  • Costo minimo / massimo — range storico
  • Margine — differenza tra prezzo vendita e costo reale

Metodi configurabili per azienda o per singolo prodotto:

Metodo Quando usarlo
Media ponderata Default, adatto alla maggior parte dei casi
FIFO Uscita al costo del lotto più vecchio
Ultimo costo Valorizzazione al prezzo dell'ultimo acquisto
LIFO Opzionale, disabilitato di default

Impostazioni in Sistema → Impostazioni (chiavi inventory.*).

Acquisti e carico magazzino

Alla registrazione di una fattura passiva con righe prodotto:

  1. Il sistema converte la quantità dall'unità di acquisto all'unità di magazzino (es. sacco 25 kg → kg)
  2. Aggiorna il costo del prodotto e lo storico prezzi
  3. Genera il movimento di carico nel magazzino default
  4. Se il codice fornitore è nuovo, propone un mapping da confermare manualmente

Mapping fornitore

Alla prima occorrenza di un codice fornitore il sistema propone l'associazione al prodotto interno, ma non la applica automaticamente. L'utente deve confermare in Mapping fornitori. Le fatture successive useranno il mapping confermato.

Ricevimenti merce

Per registrare l'ingresso merce prima della fattura (o in parallelo):

  1. Vada in Ricevimenti merce
  2. Crei un documento con fornitore, magazzino e righe prodotto
  3. Alla conferma il sistema carica il magazzino e aggiorna i costi come per un acquisto

Il ricevimento può essere collegato successivamente alla fattura passiva.

Distinte base (BOM)

Un prodotto può essere configurato come:

Tipo Esempio
Semplice Vite, bullone
Kit Kit videosorveglianza (4 telecamere + NVR + HDD)
Ricetta Pizza (farina, acqua, mozzarella, …)
Composto / semilavorato Prodotto assemblato in più fasi

La distinta elenca componenti e quantità (con eventuale scarto %). Può includere righe di manodopera (minuti × costo orario).

Produzione

Per prodotti con BOM attiva:

  1. Crei un ordine di produzione indicando quantità e magazzino
  2. Alla completamento il sistema:
  3. scarica i componenti (consumo materiali)
  4. carica il prodotto finito al costo calcolato dalla distinta

Vendita e margini

All'emissione di un DDT (se lo scarico magazzino è abilitato):

  • Il sistema registra lo scarico e calcola il costo reale della vendita
  • Aggiorna il margine lordo e la percentuale sul prodotto

L'esplosione della distinta base in vendita (scarico dei singoli componenti invece del prodotto finito) è disattivata di default e si abilita con l'impostazione inventory.explode_bom_on_sale.

Permessi

Permesso Funzione
inventory.margin.read Dashboard e lettura margini
inventory.cost.read Lettura costi e storico
inventory.cost.manage Gestione costi e ricevimenti
inventory.bom Distinte base
inventory.production Ordini produzione
inventory.purchase_mapping Conferma mapping fornitori

Il ruolo magazzino include in genere tutti i permessi operativi; commercialista e vendite hanno accesso in lettura ai margini.

Integrazioni API

Per integrazioni esterne veda Appendice per il consulente e la documentazione Swagger (/swagger/) — sezione Inventory (P13).

Documentazione tecnica in docs/p13_inventory_cost_engine.md.