Catalogo Prodotti / Servizi

Catalogo unificato — Farmaci, Articoli, Prestazioni, KIT, Parcelle, Spese, Bollo, Testo Libero

v 2.6 Manuale Utente

Riferimenti normativi

Note operative e permessi configurabili

🗒️ Pannello Note: ogni scheda di voce di catalogo (articolo, prestazione, kit, farmaco, ecc.) ha un pannello "post-it" giallo floating ancorato all'entità corrente. Si apre minimizzato come fascia centrata sulla topbar (sulla barra blu del modale per i documenti); cliccando la fascia o la freccia expand_more si espande al centro del viewport (ridimensionabile via handle in basso a destra). La fascia minimizzata è trascinabile e la sua posizione viene memorizzata in localStorage per ciascun record (es. ogni documento ha la sua posizione independente). Per scrivere una nota: testo nel box giallino + bottone + Aggiungi (o Cmd/Ctrl + Invio). Modifica/elimina riservate all'autore o agli amministratori. Cestino note con ripristino disponibile dal toggle delete_outline nell'header del pannello espanso (solo ADMIN/SUPERADMIN). Tutti i CRUD (create/update/delete/restore) sono tracciati in audit_log (consultabile dal Registro modifiche, in Aziende & Licenze).

🔒 Permessi configurabili: alcune azioni di questa scheda (creazione, modifica, cancellazione, esportazione, stampa) possono essere bloccate per il ruolo del tuo workspace. Quando un bottone è bloccato, appare con icona "lucchetto" e tooltip "Permesso disabilitato dal Super Amministratore". La configurazione si fa in Aziende & Licenze » Permessi (solo SUPERADMIN).

1Panoramica e logica del modulo

Il modulo Catalogo Prodotti/Servizi rappresenta l'archivio unificato di tutte le voci che possono essere inserite nei documenti commerciali e clinici di NOX Enterprise Suite. Ogni voce viene classificata in uno degli 8 tipi previsti e puo contenere informazioni specifiche in base alla propria natura (farmaco, articolo, prestazione, ecc.).

L'approccio a catalogo unico consente di gestire in un solo punto prezzi, aliquote IVA, codici, descrizioni e regole di magazzino, evitando duplicazioni e garantendo coerenza in tutti i flussi: fatturazione, ordini, DDT, ricette e prestazioni cliniche.

ⓘ Le voci di tipo KIT consentono di raggruppare piu prodotti/servizi in un'unica voce composta, con distinta base e calcolo automatico del totale. I KIT possono essere inseriti nei documenti in modalita compatta o esplosa.
2Tipi di voce

Il catalogo prevede 8 tipi di voce. Il tipo determina le sezioni disponibili nella scheda e il comportamento in fase di inserimento nei documenti.

TipoDescrizioneGestione magazzino
FARMACOMedicinale con codice AIC, classe ATC, forma farmaceuticaSi
ARTICOLOProdotto generico (dispositivi sanitari, materiale di consumo, ecc.)Si
PRESTAZIONEServizio professionale (visita, intervento, consulenza)No
KITVoce composta da piu componenti con distinta baseNo (scarico tramite componenti)
PARCELLAVoce per fatturazione professionale con cassa previdenzaNo
SPESESpese accessorie (trasporto, imballo, contributi)No
BOLLOImposta di bollo ex art. 13.1 Tariffa DPR 642/72No
TESTO_LIBERORiga descrittiva senza importo, utilizzata per note e annotazioniNo
⚠ Il tipo di voce non puo essere modificato dopo la creazione se la voce e gia stata utilizzata in almeno un documento. Per cambiare tipo, creare una nuova voce e disattivare quella precedente.
3Creazione e modifica di una voce

Per creare una nuova voce di catalogo, seguire la procedura:

  1. Accedere al menu Anagrafiche → Catalogo Prodotti/Servizi e premere il pulsante + Nuova Voce.
  2. Selezionare il tipo di voce tra gli 8 disponibili (FARMACO, ARTICOLO, PRESTAZIONE, KIT, PARCELLA, SPESE, BOLLO, TESTO_LIBERO).
  3. Compilare la tab Dati base: codice, descrizione, unita di misura, prezzo di vendita, aliquota IVA, eventuale sconto predefinito.
  4. Compilare la tab Dettaglio (visibile per FARMACO, ARTICOLO, PRESTAZIONE) con i campi specifici del tipo selezionato (v. sezione 4).
  5. Se il tipo prevede gestione magazzino (FARMACO, ARTICOLO), compilare la tab Magazzino con giacenza iniziale, scorta minima, lotto e scadenza (v. sezione 5).
  6. Se il tipo e KIT, compilare la scheda 🧰 Componenti con la distinta base dei componenti (v. sezione 6).
  7. Premere Salva per confermare la registrazione nel catalogo.

Tab Dati base — campi principali

CampoObbligatorioNote
CodiceSiCodice univoco della voce di catalogo
DescrizioneSiDescrizione che appare nei documenti (Art. 21 DPR 633/72)
TipoSiSelezionato in fase di creazione, non modificabile successivamente
Unita di misuraSiEs. PZ, CF, FL, KG, LT, ore, seduta
Prezzo di vendita (IVA esclusa)NoPrezzo unitario IVA esclusa: è quello che va in riga nei documenti, e l'IVA si aggiunge sopra. Fino a sei decimali (1,115 resta 1,115)
Aliquota IVASiAliquota predefinita (22%, 10%, 4%, esente, ecc.)
Sconto predefinitoNoSconto % applicato di default nelle righe documento
StatoSiAttivo / Inattivo. Le voci inattive non appaiono nella selezione
Conto di costoNoSu quale conto registrare la voce quando la si compra (v. sotto)
⚠ Zero e vuoto non sono la stessa cosa. Scrivere 0 nell'aliquota vuol dire «questo articolo non ha IVA»: è un esente, un non imponibile, un fuori campo, e in quel caso va indicata anche la Natura IVA (N1–N6), altrimenti lo SDI scarta la fattura. Lasciare il campo vuoto vuol dire invece «non è stata decisa», e a valle si finisce con l'aliquota ordinaria. Chi vende in esenzione deve scrivere 0, non lasciare vuoto.
ⓘ La stessa distinzione vale nella voce di listino: lì il campo IVA è un'eccezione al catalogo — vuoto significa «usa quella dell'articolo», mentre 0 è un'aliquota vera che vince sul catalogo.

Conto di costo

Il campo facoltativo Conto di costo dice su quale conto registrare questa voce quando la si compra: per esempio un canone di noleggio su «Godimento beni di terzi». Vale anche se il fornitore ha un suo conto di costo. Lasciato su Automatico, il conto lo sceglie NOX dal fornitore o dal tipo di voce (vedi il manuale Contabilità). La tendina propone solo conti di costo.

4Tab Dettaglio

La tab Dettaglio presenta campi specifici in base al tipo di voce selezionato.

Dettaglio FARMACO

CampoDescrizione
Codice AICCodice di Autorizzazione all'Immissione in Commercio (9 cifre)
Classe ATCClassificazione Anatomica Terapeutica Chimica
Forma farmaceuticaCompresse, capsule, fiale, sciroppo, ecc.
Principio attivoDenominazione del principio attivo
DosaggioConcentrazione del principio attivo
Regime di dispensazioneOTC, SOP, RR, RNR, OSP, ecc.
Richiede PosologiaFlag che attiva l'avviso posologia (v. sezione 10)

Dettaglio ARTICOLO

CampoDescrizione
Codice EANCodice a barre EAN-13, EAN-8 o UPC-A (12 cifre), con la cifra di controllo giusta
Categoria merceologicaClassificazione per analisi e reportistica
Marca / ProduttoreRiferimento al produttore
Classe del dispositivo (Reg. UE 2017/745)Classe I, IIa, IIb, III (se applicabile)

Prezzi, margini e ricarico

CampoDescrizione
Prezzo acquisto (€, IVA esclusa)Costo unitario di acquisto. Modificabile.
Prezzo ingrosso (€, IVA esclusa)Prezzo di vendita all'ingrosso. Modificabile.
Prezzo al pubblico (€, IVA inclusa)Il prezzo esposto sullo scaffale e battuto al banco, IVA inclusa: è quello che stampano i cartellini. Se resta vuoto, banco e cartellini usano il prezzo di vendita più l'IVA dell'articolo, arrotondato al centesimo (con una natura IVA, il prezzo di vendita com'è). La scheda mostra sotto il campo quanto verrebbe, e avvisa se il prezzo al pubblico è uguale a quello di vendita: quasi sempre uno dei due è scritto col criterio sbagliato.
Margine dett. 🔒Calcolato automaticamente, non modificabile, sul netto: (Prezzo al pubblico senza IVA − Prezzo Acquisto) / Prezzo al pubblico senza IVA × 100. L'IVA va allo Stato: contarla come guadagno gonfierebbe il margine.
Margine ingr. 🔒Calcolato automaticamente, non modificabile: (Prezzo Ingrosso − Prezzo Acquisto) / Prezzo Ingrosso × 100. È il margine sul prezzo di vendita all'ingrosso.
Ricarico 🔒Calcolato automaticamente, non modificabile: ricarico sul costo (markup) = (Prezzo al pubblico senza IVA − Prezzo Acquisto) / Prezzo Acquisto × 100.
IVA %Aliquota IVA predefinita della voce. Modificabile.
Natura IVANatura ai fini SDI, usata quando l'aliquota IVA è 0: N1, N2.1–N2.2, N3.1–N3.6, N4, N5, N6.1–N6.9, N7. N2, N3 e N6 senza sottocodice non si scelgono più (lo SdI le scarta con il codice 00445). Modificabile.
Prezzo al pubblico: storicoSotto i prezzi, nella scheda di un articolo già salvato: i cambi del prezzo al pubblico (quando, quanto, da dove — scheda, azione in massa, import, dal capo — e chi) e il prezzo più basso degli ultimi 30 giorni. È il prezzo da barrare se annunci una riduzione (art. 17-bis Codice del consumo): i cartellini in promozione lo prendono da qui. Lo storico si aggiorna da solo a ogni cambio di prezzo, da qualunque parte arrivi, e comincia dal giorno in cui la funzione è arrivata in NOX.
ⓘ I campi contrassegnati dal lucchetto (🔒 Margine dett., Margine ingr., Ricarico) sono di sola lettura: si aggiornano da soli al variare dei prezzi e non vanno compilati a mano. Il Margine dett. e il Margine ingr. misurano la redditività sul prezzo di vendita (rispettivamente al dettaglio e all'ingrosso), mentre il Ricarico esprime la maggiorazione applicata sul costo di acquisto.
🔒 Prezzo acquisto, Margine dett., Margine ingr. e Ricarico li vede solo chi ha il permesso Vedere costi e margini (di serie: gli amministratori sì, utenti e operatori no; si cambia dal pannello Permessi per ruolo). Senza il permesso questi campi non compaiono, un salvataggio della scheda non li tocca, e le offerte dei fornitori si vedono senza prezzi e non si modificano.

Dettaglio PRESTAZIONE

CampoDescrizione
Codice nomenclatoreCodice da nomenclatore tariffario regionale/nazionale
Durata standardTempo previsto per la prestazione (minuti)
SpecializzazioneBranca specialistica di appartenenza
Richiede consensoFlag che attiva la richiesta di consenso informato
5Tab Magazzino

Disponibile per le voci di tipo FARMACO e ARTICOLO. Gestisce giacenze, scorte e tracciabilita dei lotti.

CampoDescrizione
Giacenza 🔒Quantità disponibile in magazzino: calcolata automaticamente dai movimenti di magazzino e non modificabile (campo di sola lettura, contrassegnato dal lucchetto).
Scorta minimaSoglia sotto la quale il sistema genera un avviso di riordino
Scorta massimaLimite superiore per il calcolo del quantitativo di riordino
LottoCodice lotto di produzione (obbligatorio per farmaci ex D.Lgs. 193/2007)
Data scadenzaScadenza del lotto, con avviso automatico prossimita
UbicazionePosizione fisica nel magazzino (scaffale, ripiano)
Prezzo di acquistoCosto unitario per il calcolo del margine
ⓘ Per i farmaci, la tracciabilita del lotto e della scadenza e obbligatoria ai sensi del D.Lgs. 193/2007. Il sistema impedisce la vendita di lotti scaduti e segnala quelli in prossimita di scadenza.
5bTab Logistica, Dimensioni e Varianti

Oltre ai dati base e magazzino, la scheda articolo prevede altre tab per informazioni logistiche, fisiche e di catalogazione. Tutti questi campi vengono salvati e alcuni alimentano le analisi di magazzino (es. la scheda Riordino).

🚚 Tab Logistica e riordino

CampoA cosa serve
Punto di riordinoSoglia sotto la quale l'articolo va riordinato: alimenta la scheda Riordino e i suggerimenti automatici di acquisto
Scorta massimaLimite superiore utile a non sovra-ordinare
Qtà riordinoQuantità standard da ordinare al raggiungimento del punto di riordino
MOQ fornitoreQuantità minima ordinabile imposta dal fornitore
Pezzi per confezioneNumero di pezzi per collo/confezione
Tempo approvvigionamentoGiorni di lead time per ricevere la merce (usato nel calcolo del riordino)
Ubicazione magazzinoPosizione (corridoio / scaffale / ripiano)

📐 Tab Dimensioni (caratteristiche fisiche)

CampoA cosa serve
Peso lordo / netto (kg)Per il calcolo dei costi di spedizione e del peso totale dei documenti di trasporto
Volume (l/m³)Per stimare l'ingombro e il riempimento di colli/pallet
Contenuto netto + unitàQuanto contiene la confezione: 500 g, 75 cl, 1,5 l, 6 pz. Unità: g, kg, ml (millilitri), cl, l, cm, m, m², m³, pz. Da qui il cartellino calcola il prezzo per unità di misura, obbligatorio per i prodotti preconfezionati (D.Lgs. 206/2005, art. 14-17): 75 cl a 6,90 € → 9,20 €/l. La scheda mostra subito quanto verrà. Quantità e unità vanno insieme: una senza l’altra non si salva. Non serve a chi si vende sfuso (unità di misura kg, l, m): lì il prezzo è già per unità. Il campo Volume non viene usato per questo: dice «litri o m³» e non si sa quale. Si importa anche da CSV (colonne contenutoNetto, unitaContenuto).
Larghezza / Altezza / Profondità (cm)Dimensioni del prodotto per imballo e logistica

🏷️ Varianti e catalogazione

CampoA cosa serve
Modello / Colore / Taglia / MaterialeDistinguere le varianti di prodotto (utile per abbigliamento, ferramenta, ricambi)
OriginePaese di provenienza (dogana, Intrastat, etichetta "Made in")
Classificazione merceologicaCodice merceologico (es. ATECO / NC) per statistiche e adempimenti
Note / TagAppunti interni liberi ed etichette per filtrare e raggruppare i prodotti

Con il pacchetto Taglie & Colori, in fondo alla scheda di un articolo già salvato c'è il pulsante Taglie e colori…: apre la griglia su quell'articolo, da cui diventa il modello e genera una combinazione (un articolo vero) per ogni taglia e colore. Su un modello il pulsante si chiama Griglia taglie e colori; una combinazione non ce l'ha. Senza il pacchetto il pulsante non c'è. Vedi il Manuale Taglie & Colori.

6Gestione KIT

Una voce di tipo KIT e composta da una distinta base di componenti. Ogni componente e a sua volta una voce di catalogo (FARMACO, ARTICOLO, PRESTAZIONE, ecc.) e nel kit si indica la sua quantità. Unità di misura, prezzo, aliquota IVA e sconto vengono dalla scheda del prodotto: si cambiano lì, e il kit (e i documenti fatti da quel momento) li prende da solo. Non serve togliere e rimettere il componente.

Creazione della distinta base

  1. Aprire la scheda della voce KIT e selezionare, a sinistra, la scheda 🧰 Componenti.
  2. Nella casella «Cerca voce da aggiungere…» scrivere almeno parte del codice o della descrizione (oppure * per vederle tutte) e cliccare la voce: diventa un componente. Il pulsante 📋 accanto apre l'elenco completo del catalogo da sfogliare.
  3. Impostare la quantità del componente nella sua riga. È l'unico valore del componente che si sceglie nel kit.
  4. Per togliere un componente: il pulsante ✕ in fondo alla riga.
  5. Premere Salva: si salvano la voce e i suoi componenti. Se i componenti non si possono salvare (per esempio per un permesso mancante) compare un avviso.
  6. Il totale del KIT viene calcolato automaticamente come somma dei componenti (quantita x prezzo - sconto, per ciascuna riga).
ColonnaDescrizione
ComponenteVoce di catalogo selezionata tramite overlay
QuantitaNumero di unita del componente nel KIT
ProduttoreProduttore del prodotto (dalla sua scheda; se manca, la marca)
U.M.Unità di misura del prodotto (dalla sua scheda, sola lettura)
Prezzo unitarioPrezzo del prodotto (dalla sua scheda, sola lettura)
Aliquota IVAIVA del prodotto (dalla sua scheda, sola lettura)
Sconto %Sconto del prodotto (dalla sua scheda, sola lettura)
Totale rigaCalcolato: quantita x prezzo unitario x (1 - sconto/100)
⚠ Lo scarico magazzino dei KIT avviene a livello dei singoli componenti: il KIT stesso non ha giacenza propria. Quando un KIT viene inserito in un documento, il sistema scarica le quantita di ciascun componente con gestione magazzino attiva.
7KIT nei documenti

Quando si inserisce un KIT in un documento (fattura, ordine, DDT), il sistema offre 3 modalita di inserimento:

ModalitaComportamentoCaso d'uso
Riga singolaIl KIT appare come un'unica riga documento con descrizione e totale complessivo (prezzoDefault della voce KIT — bundle price). I componenti non sono visibili nel documento.Preventivi e fatture semplificate dove il cliente vede solo il pacchetto.
Esplodi componentiI singoli componenti vengono inseriti come righe separate nel documento. La riga KIT non appare.DDT e documenti di magazzino dove serve il dettaglio di ogni prodotto.
Esplodi con intestazioneViene inserita una riga di intestazione (tipo TESTO_LIBERO) con il nome del KIT, seguita dalle righe dei singoli componenti.Fatture dettagliate dove si vuole raggruppare visivamente i componenti sotto il nome del pacchetto.

Opzione “Mantieni prezzo bundle”

Nel popup di inserimento KIT è presente la checkbox “Mantieni prezzo bundle del kit — distribuisci lo sconto sui componenti”. Quando attiva (e si sceglie una delle due modalità di esplosione), i prezzi dei componenti vengono scalati proporzionalmente in modo che la loro somma resti uguale al prezzo bundle del KIT.

Formula: fattore = prezzoBundleKit / sommaPrezziComponenti, applicato a ogni prezzoUnitario di riga esplosa.

💡 Quando usarla: quando il cliente richiede il dettaglio merceologico (per appalti PA, gare, rendicontazioni analytics) ma lo sconto bundle già concordato deve essere preservato. Senza questo flag l'esplosione riporta i prezzi di listino pieni dei componenti e il bundle discount viene perso.
ⓘ In tutte e tre le modalita, lo scarico magazzino avviene sempre a livello dei singoli componenti. La modalita di visualizzazione nel documento non influisce sulla movimentazione di magazzino.
8Contenuti extra catalogo

Oltre ai dati standard, ogni voce di catalogo puo essere arricchita con contenuti extra configurabili dall'amministratore.

Configurazione

L'amministratore definisce i campi extra da Impostazioni → Configurazione Catalogo → Contenuti Extra. Per ogni campo extra e possibile specificare:

  • Nome del campo e etichetta visualizzata
  • Tipo di dato (testo, numero, data, lista valori, booleano)
  • Obbligatorieta e valore predefinito
  • Tipi di voce a cui si applica (es. solo FARMACO, oppure tutti)

Visualizzazione

I contenuti extra appaiono nella scheda della voce di catalogo in una sezione dedicata sotto le tab standard. Sono visibili anche nella griglia di lista tramite colonne configurabili e possono essere utilizzati come criteri di filtro e ricerca.

ⓘ I contenuti extra sono particolarmente utili per gestire attributi specifici del settore (es. codice REV per dispositivi sanitari, numero registrazione ministeriale, temperatura di conservazione) senza modificare la struttura del catalogo.
9Filtri persistenti

La lista del catalogo prodotti/servizi supporta filtri persistenti salvati nel localStorage del browser. Questo significa che i filtri impostati dall'utente vengono mantenuti tra una sessione e l'altra.

  1. Nella lista catalogo, impostare i filtri desiderati: tipo di voce, stato (attivo/inattivo), categoria, testo libero.
  2. I filtri vengono salvati automaticamente nel localStorage del browser al momento dell'applicazione.
  3. Alla successiva apertura della pagina, i filtri vengono ripristinati automaticamente.
  4. Per azzerare tutti i filtri, premere il pulsante Azzera filtri.
⚠ I filtri persistenti sono legati al browser e al dispositivo in uso. Cambiando browser o svuotando la cache, i filtri salvati vengono persi. Non sono sincronizzati tra dispositivi diversi.
10Posologia

Per le voci di tipo FARMACO, e disponibile il flag Richiede Posologia nella tab Dettaglio.

Funzionamento

  • Quando il flag e attivo, il sistema visualizza un avviso ogni volta che il farmaco viene inserito in un documento o in una ricetta, ricordando all'operatore di indicare la posologia.
  • L'avviso non e bloccante: l'operatore puo proseguire anche senza compilare la posologia, ma l'avviso resta visibile fino alla compilazione.
  • La posologia viene registrata come nota di riga nel documento ed e stampata nella ricetta o nel documento consegnato al paziente.
ⓘ Si consiglia di attivare il flag Richiede Posologia per tutti i farmaci con obbligo di ricetta (RR, RNR) e per quelli il cui uso richiede indicazioni specifiche al paziente, a garanzia della corretta informazione sanitaria.
11Integrazione Magazzino

Gli articoli del catalogo con flag Gestione Magazzino attivo vengono tracciati nelle giacenze. L'integrazione prevede:

FunzioneDescrizione
Giacenza automaticaI movimenti di carico/scarico aggiornano automaticamente la quantità disponibile
Scorte minime/massimeSoglie configurabili per ogni articolo con alert automatici in dashboard
Punto di riordino (ROP)Calcolo automatico basato su consumo medio giornaliero × lead time + scorta minima
Analisi ABC / ParetoClassificazione articoli per valore: A (80%), B (15%), C (5%) — accessibile dal tab ABC in Magazzino
Rotazione e obsolescenzaIndice di rotazione, giorni di copertura, stato (Veloce/Normale/Lento/Obsoleto)
ValorizzazioneCosto medio ponderato, FIFO e LIFO selezionabili dalla Dashboard Magazzino
Scarico da documentiL'emissione di DDT e fatture scarica automaticamente le quantità dal magazzino
ⓘ Per gli articoli con gestione lotti, è possibile tracciare il numero di lotto e la data di scadenza. Il sistema genera alert 30 giorni prima della scadenza.
12Import / Export catalogo

Il catalogo può essere importato ed esportato tramite Impostazioni → Import / Export → Catalogo Prodotti.

  1. Selezionare il modulo Catalogo Prodotti nella griglia.
  2. Premere Configura Campi per scegliere quali dei 59+ campi includere.
  3. Assegnare alias personalizzati alle intestazioni se necessario.
  4. Esportare in CSV o Excel, oppure importare da file con mappatura automatica.
⚠ Il campo descrizione è obbligatorio per l'importazione. Gli articoli senza descrizione vengono scartati. Il campo attiva accetta SI/NO.

Anche dalla lista del catalogo si esporta e si importa in CSV. Il file esportato si reimporta così com'è: le colonne (Codice, Descrizione, Tipo, UM, Prezzo, IVA %, Natura IVA, Attiva) si riconoscono senza badare a maiuscole e accenti, e i prezzi si leggono con la virgola o col punto. Le voci il cui codice è già a catalogo non vengono toccate: NOX le conta a parte («già a catalogo»).

13Categorie e classificazione

Gli articoli possono essere organizzati in categorie gerarchiche per facilitare la navigazione e l'analisi.

  1. Le categorie si gestiscono dalla sezione Parametri → Gestione Tabelle.
  2. Ogni articolo può appartenere a una categoria.
  3. Le categorie alimentano i filtri nella lista catalogo, l'analisi ABC per categoria in Magazzino, e il report per categoria nella Dashboard.
13bTipo e Categoria: che differenza c'è?

Sono due concetti diversi che spesso vengono confusi. Il Tipo definisce cosa è una voce e cambia il funzionamento del software; la Categoria è solo un'etichetta tua per raggrupparla.

TIPO (Tipo voce)

È una classificazione di sistema, a elenco fisso (Farmaco, Integratore, Omeopatico, Fitoterapico, Vitamina, Prodotto/Articolo, Prestazione, Parcella, Kit, Testo libero…). Definisce la natura della voce e cambia il comportamento del software:

  • determina quali campi e tab compaiono nella scheda — ad esempio un Articolo ha la tab Magazzino/giacenze, un Kit ha i componenti, un Farmaco ha AIC e posologia, una Prestazione è un servizio senza magazzino;
  • determina come la voce si comporta nei documenti;
  • determina quali voci appaiono nel catalogo in base al profilo attività.

Non si inventa: si sceglie da una lista predefinita. È obbligatorio.

CATEGORIA

È un'etichetta libera creata dall'utente (col pulsante ⚙️ Gestisci Categorie), puramente organizzativa. Serve a raggruppare, filtrare e cercare le voci senza cambiare nulla nel funzionamento. È opzionale. Esempi: “Vitamine gruppo B”, “Antinfiammatori naturali”, “Creme viso”, “Consulenze”.

AspettoTIPOCATEGORIA
Cos'èLa natura della voceUn raggruppamento tuo
ValoriFissi, di sistemaLiberi, li crei tu
EffettoCambia campi e comportamentoSolo organizzazione / filtro
Obbligatorio?SìNo
💡 Esempio pratico: una voce con Tipo = Integratore (l'app le dà i campi da integratore) e Categoria = “Difese immunitarie” (la tua etichetta per ritrovarla insieme ad altri prodotti simili).

Dove si imposta la Categoria

Nella scheda della voce, tab Dati base.

🖨 Assegnazione categoria di massa: per assegnare la stessa categoria a tante voci insieme, usa la selezione multipla (checkbox nella lista) → nella barra blu in basso premi il pulsante 🖨 Categoria… → scegli la categoria dal menu a tendina e applicala a tutte le voci selezionate.
14Barcode e codici EAN

Ogni articolo del catalogo supporta tre codici identificativi per l'integrazione con sistemi di scansione:

CampoFormatoUtilizzo
CodiceAlfanumerico liberoCodice interno aziendale, usato nella ricerca rapida
Codice EANEAN-13 / EAN-8Barcode standard per scanner, stampato sulle etichette magazzino
Codice FornitoreAlfanumericoCodice dell'articolo nel listino del fornitore

Nel modulo Magazzino, il campo scanner barcode nella toolbar cerca per tutti e tre i codici. La stampa etichette genera etichette con barcode Code 128 leggibili dagli scanner.

15Novità della v2.1

Aggiornamento strutturale del modulo Catalogo: validazione codici, tracciamento modifiche, statistiche di vendita automatiche, operazioni massive e cestino con soft-delete.

Controlli fiscali al salvataggio

Una voce si inserisce una volta e finisce su mille fatture: se l'IVA è sbagliata, sono sbagliate tutte, e non lo si scopre inserendo — lo si scopre dallo SdI, mesi dopo. Perciò al salvataggio il sistema verifica:

  • Aliquota IVA: sono ammesse solo quelle che esistono in Italia — 4, 5, 10 e 22 — più lo zero per le operazioni senza IVA. Il 20% e il 21% restano accettati perché un documento vecchio si può ancora ristampare.
  • Natura IVA: deve essere uno dei codici del tracciato (da N1 a N7).
  • Aliquota e natura si escludono: o l'IVA c'è e la natura no, o l'IVA è zero e la natura dice perché. Averle tutte e due è lo scarto 00400; non averne nessuna con IVA a zero è lo 00401.
  • Prezzi: non possono essere negativi (uno sconto si fa sulla riga, non sul listino).
  • Unità di misura entro 10 caratteri e descrizione entro 1000: sono i limiti del tracciato della fattura elettronica.
  • Articolo tenuto a magazzino: senza unità di misura le giacenze sono numeri senza nome, quindi viene richiesta.
  • Kit: non può contenere se stesso, né componenti in quantità zero.
💡
In modifica si controlla solo ciò che cambia. In archivio ci sono migliaia di voci inserite prima che questi controlli esistessero: bloccarle tutte vorrebbe dire non poter più correggere nemmeno una descrizione. Cambiare nome o prezzo si può sempre; toccare l'IVA obbliga a metterla a posto. E si controlla la voce come resterà, non solo quello che si manda: cambiare la sola natura IVA di un articolo al 22% viene rifiutato (sarebbe lo scarto 00400), mentre una modifica del solo prezzo passa anche se non si rimanda la descrizione.

Gli stessi controlli valgono per l'import da foglio di calcolo — anzi soprattutto lì, perché da un file entrano centinaia di voci in un colpo — e per il cambio massivo di aliquota, che prima accettava qualunque numero e non guardava se le voci toccate avessero una natura incompatibile.

Validazione EAN-13 e blocco duplicati

Al salvataggio il sistema verifica:

  • Codice a barre: EAN-13, EAN-8 o UPC-A (12 cifre), sempre con il controllo della cifra finale (mod 10). Codici non conformi vengono rifiutati con errore 400. Vale per la scheda e anche per Scansiona e associa dal telefono: un codice che nessun lettore può leggere non si associa.
  • Duplicati EAN: se esiste già un'altra voce viva — combinazioni di taglie e colori comprese — con lo stesso codice a barre il salvataggio viene bloccato (errore 409) e il sistema indica la voce già presente. Un UPC-A e lo stesso codice a 13 cifre con lo zero davanti sono considerati lo stesso codice.
  • Aliquote: su una voce si scrivono 4, 5, 10 e 22% (0 con la natura), più quelle che l'azienda ha aggiunto nella tabella delle aliquote IVA. Il 20 e il 21% storici restano sulle voci vecchie che li hanno, ma non si assegnano più.
  • Duplicati codice interno: analogo blocco sul campo codice. Se il codice appartiene a una voce che sta nel cestino, il messaggio lo dice: conviene ripristinarla invece di rifarla, perché così si porta dietro giacenze, listini e storico.

Audit log automatico delle modifiche

Ogni modifica alla scheda voce viene registrata nella tabella log_modifiche_voci_catalogo con valore precedente, valore nuovo, utente e data/ora. I campi tracciati sono 21, tra cui codice, descrizione, tipo voce, categoria, prezzi (default, acquisto, ingrosso, dettaglio), aliquota IVA, EAN, fornitore, stato, marca. La lista storica è accessibile via API GET /api/catalogo/:id/audit-log.

Statistiche di vendita automatiche

I campi di riepilogo della voce sono aggiornati automaticamente ad ogni operazione sui documenti che contengono la voce (creazione, modifica, cambio stato, duplicazione, cancellazione):

  • Unità vendute anno corrente e anno precedente: solo le fatture di vendita (la nota di credito toglie) e i DDT di vendita non ancora fatturati; acquisti, ordini, preventivi, bozze, annullati e documenti nel cestino non contano
  • Numero vendite (righe documento totali)
  • Data ultimo movimento
  • Prezzo medio di vendita

È possibile forzare il ricalcolo globale con POST /api/catalogo/ricalcola-stats (utile dopo importazioni massive).

Timeline cronologica della voce

L'endpoint GET /api/catalogo/:id/timeline restituisce una vista aggregata degli eventi della voce: righe documento in cui è stata usata, movimenti di magazzino e modifiche registrate nell'audit, ordinati per data decrescente. Utile per ricostruire lo storico di utilizzo e variazioni del prodotto.

Selezione multipla e azioni massive

Nella lista catalogo è ora disponibile una colonna di checkbox per la selezione multipla:

  • Checkbox in intestazione: seleziona/deseleziona tutte le voci visibili nella pagina corrente.
  • Checkbox per ogni riga: selezione singola; cliccare sulla spunta non apre la scheda.
  • Quando almeno una voce è selezionata compare una barra azioni blu in fondo alla lista.

Azioni disponibili:

  • Attiva / Disattiva: cambio massivo del flag attiva. Un modello di taglie e colori si porta dietro le sue combinazioni; una voce nel cestino non si attiva (va prima ripristinata). Lo stesso vale per l'interruttore sulla riga.
  • Categoria…: assegnazione in blocco di una categoria (vuoto per rimuoverla).
  • % IVA…: aggiornamento massivo dell'aliquota IVA di default.
  • Tipo…: una voce con giacenza o movimenti di magazzino non diventa prestazione, kit, bollo o testo libero: resta com'è, e NOX dice quali e perché. Per lo stesso motivo nella scheda non si spegne «Gestione magazzino» su una voce che ha movimenti: si riscriverebbero i movimenti dei documenti già emessi.
  • Elimina: sposta le voci nel cestino (soft-delete, reversibile), con gli stessi controlli della cancellazione singola: un modello di taglie e colori che ha ancora combinazioni resta dov'è, e NOX dice quali voci non ha cestinato e perché.

Cestino e soft-delete

L'eliminazione di una voce (singola o massiva) è ora una cancellazione logica: la voce scompare dalla lista attiva ma resta nel database con le colonne cancellatoIl e cancellatoDa valorizzate. Le righe documento storiche non vengono toccate.

  • Pulsante 🗑 Cestino nel footer della lista: entra in modalità cestino e mostra solo le voci cancellate.
  • Per ogni riga del cestino sono disponibili due azioni:
    • ↺ Ripristina: annulla la cancellazione, la voce torna attiva.
    • ✗ Definitivo: eliminazione fisica irreversibile. Blocca se la voce è ancora usata in righe documento. Disponibile solo per utenti ADMIN o SUPERADMIN.
  • In modalità cestino il clic sulla riga non apre la scheda; vengono mostrati data e autore della cancellazione.
?Domande frequenti (FAQ)
Posso cambiare il tipo di una voce di catalogo dopo la creazione?
Il tipo puo essere modificato solo se la voce non e ancora stata utilizzata in alcun documento. Se la voce e gia presente in documenti emessi, e necessario creare una nuova voce con il tipo corretto e disattivare quella precedente, per preservare l'integrita dei documenti storici.
Come funziona lo scarico magazzino per i KIT?
Il KIT non ha giacenza propria. Quando un KIT viene inserito in un documento che movimenta il magazzino (es. DDT, fattura accompagnatoria), il sistema scarica automaticamente le quantita dei singoli componenti che hanno gestione magazzino attiva (FARMACO e ARTICOLO). Le PRESTAZIONI e le altre voci non movimentano il magazzino.
Cosa succede se un componente del KIT e esaurito?
Il sistema segnala la giacenza insufficiente al momento dell'inserimento del KIT nel documento. L'operatore puo decidere se procedere comunque (generando giacenza negativa, se consentito dalla configurazione) oppure sospendere l'operazione in attesa del riapprovvigionamento.
Come posso cercare un prodotto per codice AIC o codice EAN?
Nella barra di ricerca della lista catalogo e nell'overlay Sfoglia catalogo, e possibile digitare il codice AIC (farmaci) o il codice EAN (articoli). Il sistema cerca automaticamente nei campi codice, descrizione, AIC e EAN. E anche possibile utilizzare un lettore di codici a barre per inserire direttamente il codice EAN.
I filtri della lista catalogo si perdono se cambio pagina?
No. I filtri sono salvati nel localStorage del browser e vengono ripristinati automaticamente alla riapertura della pagina del catalogo. I filtri persistono anche dopo la chiusura del browser. Per rimuoverli, utilizzare il pulsante Azzera filtri.
Come posso configurare i contenuti extra del catalogo?
Accedere a Impostazioni, Configurazione Catalogo, Contenuti Extra. Da qui e possibile aggiungere campi personalizzati specificando nome, tipo di dato, obbligatorieta e i tipi di voce a cui si applicano. I nuovi campi saranno disponibili immediatamente nella scheda delle voci interessate.
Ho eliminato una voce per errore. Posso recuperarla?
Si. L'eliminazione dalla lista o dalla barra azioni massive è un soft-delete: la voce finisce nel cestino. Dalla lista catalogo premere il pulsante “🗑 Cestino” nel footer, individuare la voce e premere “↺ Ripristina”. La voce torna attiva con tutti i dati originali e con i collegamenti alle righe documento storiche intatti.
Come posso aggiornare il prezzo o l'aliquota IVA di 50 voci in una volta sola?
Nella lista catalogo spuntare le caselle delle voci da aggiornare (o usare il checkbox in testata per selezionare tutte le visibili). Comparirà una barra blu in fondo alla pagina con le azioni massive: Attiva, Disattiva, Categoria…, % IVA…, Elimina. L'azione scelta viene applicata a tutte le voci selezionate in una sola operazione.
Che differenza c'e tra eliminare dalla lista e eliminare definitivamente dal cestino?
L'eliminazione dalla lista è un soft-delete: la voce sparisce dalla lista attiva ma resta nel database, è ripristinabile e non rompe i documenti storici. L'eliminazione dal cestino “✗ Definitivo” è fisica e irreversibile, blocca se la voce è ancora usata in righe documento e è riservata ad utenti ADMIN o SUPERADMIN.
I campi “unita vendute anno corrente” e “numero vendite” si aggiornano da soli?
Si. Ad ogni creazione, modifica, cambio stato o eliminazione di un documento contenente la voce, il sistema aggiorna automaticamente i campi denormalizzati: unità vendute nell'anno corrente e precedente, numero vendite, data ultimo movimento, prezzo medio di vendita. Non è più necessario lanciare un ricalcolo manuale; resta disponibile l'endpoint di ricalcolo globale per migrazioni o importazioni massive.
Il sistema verifica il codice EAN che inserisco?
Si. Il sistema valida l'EAN-13 (13 cifre) controllando il check-digit secondo l'algoritmo mod 10 standard. Codici a 8 cifre (EAN-8) o 12 cifre (UPC-A) sono accettati senza controllo di checksum. Se il codice non rispetta il formato o il check-digit è errato, il salvataggio viene bloccato. Se il codice è già assegnato a un'altra voce attiva, il sistema blocca il salvataggio con errore 409 e indica la voce già esistente.
✓Certificazione v 2.2 — Presidi di compliance
🔑 Visibilità — Questo modulo è accessibile solo se:
• il pacchetto BASE è compreso nella licenza dell’azienda
• il modulo è acceso nella Aziende & Licenze, per l’azienda e per l’utente
Spento vuol dire bloccato, non solo nascosto. Dettagli in Licenza e Aziende & Licenze.

A partire dalla versione 2.2, il modulo Catalogo adotta lo standard di certificazione NOX con i seguenti presidi:

Cestino e soft-delete

Gli elementi cancellati non vengono rimossi fisicamente ma spostati in un cestino interno (campi cancellatoIl / cancellatoDa). Dalla toolbar il pulsante Cestino alterna tra vista attivi e vista cestino. Dal cestino è possibile:

  • Ripristinare l'elemento (riportarlo nella lista attiva) — operazione riservata ad amministratori.
  • Eliminare definitivamente con motivazione obbligatoria — azione irreversibile, riservata ad amministratori, tracciata nell'audit log.

Azioni massive (bulk)

È possibile selezionare più elementi con le checkbox della prima colonna. Appare una barra inferiore con le azioni disponibili: Attiva, Disattiva, Soft-delete. Vincoli su righe documento e movimenti magazzino. La risposta indica N operazioni riuscite / M fallite; i dettagli delle fallite compaiono nella console browser (F12).

Storico modifiche (audit log)

L'icona history nelle azioni di riga apre un modal con la storia completa delle modifiche: data, campo, valore precedente, valore nuovo, operatore, eventuale motivazione. I record di audit non sono modificabili né eliminabili via UI. Conservazione: indefinita (art. 2220 c.c. — 10 anni minimo).

Mascheramento dati sensibili (GDPR art. 32)

Se i campi modificati contengono dati sensibili (IBAN, Codice Fiscale, Partita IVA, password/token), l'audit log salva il valore mascherato anziché in chiaro:

CampoEsempio originaleNel log
IBANIT60X0542811101000000123456IT60****3456
Codice Fiscale (PF)RSSMRA80A01H501ZRSSMRA****501Z
Partita IVA12345678901123****901
Password / token(qualsiasi)***REDACTED***

Timeline aggregata

Per ciascun elemento è disponibile una vista Timeline che aggrega in ordine cronologico audit, eventi del ciclo di vita ed eventuali entità collegate (es. documenti, movimenti, storni).

RBAC uniforme

Tutte le azioni distruttive o massive (soft-delete, ripristino, eliminazione definitiva, bulk, storno) richiedono il ruolo ADMIN o superiore. Gli operatori possono continuare a creare / modificare / consultare secondo le proprie abilitazioni.

ⓘIl DOCX di certificazione formale per questo modulo è disponibile: certificazione-catalogo.docx (cartella manuali).

📊 Aggiornamenti

Ricerca catalogo più veloce (server-side)

Il filtro di ricerca nella lista catalogo lavora ora direttamente sul database: ricerca istantanea anche con cataloghi di migliaia di voci. Il backend cerca su:

I filtri Tipo / Stato (attiva / cancellate) sono anch'essi serverizzati e combinabili con la ricerca testuale.

Modale "Sfoglia Catalogo" nelle righe documento — layout a colonne

Aprendo il selettore catalogo dalle righe di un documento, le voci appaiono ora incolonnate con layout fisso: icona | descrizione | posologia | produttore. L'allineamento rimane corretto anche quando una voce non ha indicazioni o produttore. Su schermi piccoli (< 900px) la colonna produttore si nasconde per evitare l'overflow.

📊 Aggiornamenti

Salvataggio rapido voce da documento — tipo voce visibile nel profilo

Quando da una riga di documento si salva al volo nel catalogo una voce non ancora presente (banner "questa voce non è nel catalogo"), la voce viene ora creata con un tipo voce effettivamente visibile nel profilo dell'attività.

In precedenza la voce poteva essere salvata con un tipo non abilitato per il profilo — ad esempio una consulenza su uno studio naturopatico veniva registrata come ARTICOLO anziché come PRESTAZIONE, e quindi non compariva nel catalogo. Ora il sistema sceglie automaticamente un tipo tra quelli abilitati per il profilo, così la voce risulta sempre raggiungibile.

Niente voci duplicate — verifica per descrizione

Il salvataggio rapido controlla ora la descrizione: se nel catalogo esiste già una voce con la stessa descrizione, il banner "non è nel catalogo" non ricompare e non viene creata una voce duplicata. Inserire più volte la stessa voce in documenti diversi non genera più copie nel catalogo.

⬅ Freccia "Torna indietro"

Nell'header della lista e della scheda Catalogo è stata aggiunta la freccia ← Torna indietro per tornare rapidamente alla videata precedente.