Catalogo Prodotti / Servizi

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

v 2.2 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 da Amministrazione Sistema → Audit Log).

🔒 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 Amministrazione di Sistema » Permessi per Ruolo (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 medici, 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 tab Kit 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 venditaNoPrezzo unitario IVA esclusa
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
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 o EAN-8
Categoria merceologicaClassificazione per analisi e reportistica
Marca / ProduttoreRiferimento al produttore
Classe dispositivo medicoClasse I, IIa, IIb, III (se applicabile)

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 attualeQuantita disponibile in magazzino (calcolata automaticamente)
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.
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.) con quantita, prezzo unitario, aliquota IVA e sconto specifici.

Creazione della distinta base

  1. Aprire la scheda della voce KIT e selezionare la tab Kit.
  2. Premere Aggiungi componente per inserire una nuova riga nella distinta base.
  3. Utilizzare il pulsante Sfoglia catalogo per aprire l'overlay di ricerca: e possibile cercare per codice, descrizione o tipo e selezionare la voce desiderata.
  4. Impostare la quantita del componente all'interno del KIT.
  5. Verificare o modificare prezzo unitario, aliquota IVA e sconto % del componente.
  6. Ripetere per ogni componente della distinta base.
  7. 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
Prezzo unitarioPrezzo del singolo componente (modificabile)
Aliquota IVAIVA applicata al componente
Sconto %Eventuale sconto sul componente
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 medici, 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.
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?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.

15Novita Aprile 2026 (v2.1)

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

Validazione EAN-13 e blocco duplicati

Al salvataggio il sistema verifica:

  • Codice EAN-13: 13 cifre con controllo del check-digit (mod 10). Codici a 8 o 12 cifre (EAN-8, UPC-A) sono accettati senza checksum. Codici non conformi vengono rifiutati con errore 400.
  • Duplicati EAN: se esiste già un'altra voce con lo stesso codice a barre il salvataggio viene bloccato (errore 409) e il sistema indica la voce già presente.
  • Duplicati codice interno: analogo blocco sul campo codice.

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 (esclusi BOZZA e ANNULLATO)
  • 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.
  • Categoria…: assegnazione in blocco di una categoria (vuoto per rimuoverla).
  • % IVA…: aggiornamento massivo dell'aliquota IVA di default.
  • Elimina: sposta le voci nel cestino (soft-delete, reversibile).

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à condizionata (certificazione v 2.2) — Questo modulo è accessibile solo se:
Pacchetto BASE attivo sul workspace (configurabile da SUPERADMIN in /admin/pacchetti)
Profilo attività compatibile: Tutti i profili
Permesso utente abilitato in Modifica Utente → Moduli
I tre livelli si applicano in intersezione. Dettagli completi in Gerarchia Pacchetti+Profilo+Utente.

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.