CatalogoImprese e PMI ›Gestione e operazioni

Stockroom — magazzino e inventario

L'inventario che sta in un file: giacenze, soglie minime e valore del magazzino, con gli avvisi sotto scorta sempre in vista.

📦 Articoli⚠️ Sotto scorta💶 Valore

spazio dati «stockroom» — il collante della suite: sul tuo dispositivo, multi-utente con un invito (link o QR), cifrato end-to-end.

▶ Apri la suite (3 micro-app)

oppure aprila come app unica

magazzinoinventariogiacenzescortearticolivalore

Cosa registra

  • Articolo
  • Categoria...
  • Giacenza attuale
  • Stockroom minima
  • Prezzo unitario (€)

Composta da 3 micro app

Un compito ciascuna, sugli stessi dati: ogni micro app legge e scrive lo spazio dati condiviso «stockroom» (col tuo consenso, chiesto alla prima apertura). Tutto resta sul tuo dispositivo — e con un solo invito l'intera suite diventa multi-utente, cifrata end-to-end.

Come funziona

Questa è un'app Reactive: un semplice documento di testo che il browser trasforma in un'app funzionante — moduli, dati dal vivo, tabelle, statistiche e persino grafici, senza installare né configurare nulla.

  1. Usala subito. Premi «Usa questa app»: si apre subito nel tuo browser, già pronta, con i dati salvati solo sul tuo dispositivo.
  2. I tuoi dati restano tuoi. Tutto è memorizzato in locale sul dispositivo, separato per ogni app: niente account, niente server, niente da configurare.
  3. Rendila tua. Il testo qui sotto è l'app per intero: copialo, cambia campi, viste e parole, e le modifiche diventano subito interattive.
  4. Condividila come file. Un'app è un semplice file: salvalo, esportalo o condividilo con un link; e con la collaborazione cifrata più persone modificano gli stessi dati in tempo reale.
Il testo dell'app
# 📦 Stockroom

L'inventario che sta in un file: giacenze, soglie minime e valore del magazzino, con gli avvisi sotto scorta sempre in vista.

:::::page{title="Articoli" icon="📦"}
## Anagrafica articoli

Registra ogni articolo con giacenza, soglia minima e prezzo unitario. La
matita in tabella modifica giacenze e prezzi; le colonne si ordinano col clic
e i pulsanti CSV importano/esportano l'inventario.

::::form{path="articoli" id="fart"}
::input{form="fart" field="nome" placeholder="Articolo" required="true"}
:::select{form="fart" field="categoria" placeholder="Categoria..."}
- Prodotti finiti
- Materie prime
- Consumabili
- Ricambi
:::
::input{form="fart" field="quantita" type="number" placeholder="Giacenza attuale" required="true"}
::input{form="fart" field="minimo" type="number" placeholder="Stockroom minima"}
::input{form="fart" field="prezzo" type="number" placeholder="Prezzo unitario (€)"}
::add-form{form="fart" path="articoli" label="Aggiungi articolo"}
::::

:::table{path="articoli" headers="Articolo,Categoria,Giacenza,Minimo,Prezzo,Valore" deletable="true" editform="fart"}
**{nome}** | {categoria} | {quantita} | {minimo} | € {prezzo} | € {quantita*prezzo}
:::
:::::

:::::page{title="Sotto scorta" icon="⚠️"}
## Articoli da riordinare

Il controllo gira da solo a ogni modifica: qui compaiono gli articoli con
giacenza pari o sotto la soglia minima.

:::python{data="articoli"}
```
rows = data.get("articoli", [])
if not rows:
    print("Nessun articolo in magazzino.")
else:
    low = [r for r in rows
           if float(r.get("quantita", 0) or 0) <= float(r.get("minimo", 0) or 0)
           and (r.get("minimo") or "") != ""]
    if not low:
        print("✅ Tutto ok: nessun articolo sotto scorta.")
    else:
        print(f"⚠️ {len(low)} articoli da riordinare:\n")
        for r in low:
            print(f"  • {r.get('nome','?')} — giacenza {r.get('quantita')}, minimo {r.get('minimo')}")
```
:::
:::::

:::::page{title="Valore" icon="💶"}
## Quanto vale il magazzino

:::grid{cols="2"}
**Articoli a catalogo**

:count[nart]{path="articoli"}

---

**Valore totale (€)**

:sum[vtot]{path="articoli" field="quantita*prezzo"}
:::

## Per categoria

:::group-by{path="articoli" field="categoria" as="table" headers="Articolo,Giacenza,Valore"}
{nome} | {quantita} | € {quantita*prezzo}
:::
:::::