Gestione Sconti
Regole sconto per articolo e soggetto, sconto a catena, priorità e integrazione documenti
Riferimenti normativi
- Art. 13 DPR 633/72 — Base imponibile: La base imponibile è il corrispettivo pattuito, al netto degli sconti previsti contrattualmente. Gli sconti riducono l'imponibile IVA.
- Art. 21 DPR 633/72 — Indicazione sconto: La fattura deve indicare gli sconti applicati. Il sistema riporta lo sconto percentuale (o la catena) per ogni riga.
- Circ. AdE 26/E/2023 — Sconto in fattura: Chiarimenti sullo sconto in fattura per bonus fiscali (ristrutturazioni, superbonus). Lo sconto riduce l'importo totale della fattura.
- L. 190/2014 — Regime forfettario: Per i forfettari, lo sconto riduce il compenso ma non modifica il trattamento IVA (già esente).
Il modulo Sconti gestisce regole di sconto automatiche applicabili nelle righe dei documenti. Le regole possono essere per articolo, per soggetto o combinazioni.
| Tipo | Formato | Esempio | Risultato |
|---|---|---|---|
| Percentuale | N% | 10% | Prezzo ridotto del 10% |
| Importo fisso | N € | 5,00 € | Riga ridotta di 5 € (per riga, non a pezzo) |
| Prezzo netto | N € | 150,00 € | Ogni pezzo costa 150 €: lo sconto è la differenza col prezzo |
| Catena | N+N+N | 10+10+5 | Sconto equivalente 23,05% (applicati in cascata) |
Lo sconto a catena applica sconti successivi sul prezzo residuo:
Prezzo finale = Prezzo × (1 − 0,10) × (1 − 0,10) × (1 − 0,05)
Esempio su 100 €: 100 × 0,90 × 0,90 × 0,95 = 76,95 € (sconto equivalente 23,05%).
Importante
10+10+5 non è uguale a 25%. Lo sconto a catena è sempre inferiore alla somma aritmetica. Il sistema preserva la notazione originale “10+10+5” e la rivisualizza al rientro nel documento.
Nella voce catalogo: campi scontoDefault (sconto base per tutti) e scontoMultiplo (catena predefinita). Quando l'articolo viene inserito in un documento, lo sconto viene pre-compilato.
Nell'anagrafica soggetto: campo scontoMultiplo per assegnare uno sconto fisso a quel cliente. Applicato automaticamente a tutte le righe dei suoi documenti.
Quando più sorgenti forniscono sconti, la priorità è:
- Sconto multiplo catalogo (scontoMultiplo della voce)
- Sconto default catalogo (scontoDefault della voce)
- Sconto soggetto (dal soggetto del documento)
- Sconto da API/listino
- Sconto da listino base
Lo sconto manuale digitato dall'utente nella riga ha sempre priorità massima e sovrascrive qualsiasi regola automatica.
Come si combinano le regole
- Esclusiva: se scatta, vale da sola: sulla sua riga non si applicano le altre regole, né il «prendi N paga M», né i bundle (la riga non conta per completare il set). Fra più esclusive vince quella con la priorità più alta; a parità, quella che sconta di più.
- Cumulabile: senza esclusive, si somma alle altre regole.
- A cascata: la percentuale si calcola sul prezzo già scontato dalle regole con priorità più alta.
- Lo sconto totale non supera mai il valore della riga.
Quando una regola scatta
- Validità dal/al: conta il giorno del documento, e l'ultimo giorno vale fino a mezzanotte (ora italiana). Lo stesso per le promozioni a soglia, i «prendi N paga M» e i bundle.
- Destinatari: tutti, un cliente, una categoria di clienti o un gruppo.
- Primo acquisto (
true): il cliente non ha ancora vendite emesse (fatture, DDT o scontrini emessi al banco a suo nome; bozze, annullati, note di credito e scontrini resi per intero non contano). Confalsevale al contrario: solo per chi ha già comprato. Senza cliente sul documento la condizione non scatta. - Giorno della settimana: quello italiano del documento (0 = domenica … 6 = sabato).
- Articolo (codice) e Categoria articolo (nome): la regola vale solo per quell'articolo o per gli articoli di quella categoria.
- Gruppo: conta l'appartenenza nel giorno del documento; chi è uscito dal gruppo non ne prende più gli sconti.
- Una regola che aveva destinatari precisi non può restare senza: senza destinatari varrebbe per tutti. Per non applicarla più la si disattiva.
- Gli sconti di vendita non si applicano a fatture e DDT del fornitore, ordini a fornitore, note di credito e soggetti che sono solo fornitori.
Massimali
- Massimale di riga: quanto la regola può togliere su una riga, anche a cascata. Zero vuol dire zero.
- Massimale di documento: quanto la regola può togliere in tutto il documento; le righe successive prendono quello che resta.
Omaggio
Una regola Omaggio non toglie niente dalla riga: regala un articolo. Nella regola si sceglie l'articolo regalato dal catalogo e la quantità (vuota = 1). Quando la regola scatta, la scheda documento aggiunge da sola la riga sotto quella che la fa scattare, segnata 🎁 nome della regola:
- di norma è uno sconto merce (colonna Omaggio S/M): la merce data in sconto secondo le condizioni del contratto è esclusa dalla base imponibile (art. 15 c.1 n.2 DPR 633/72). La riga porta il prezzo normale, lo sconto del 100% e l'aliquota dell'articolo: imponibile e IVA zero. In fattura elettronica esce con ScontoMaggiorazione al 100%, PrezzoTotale 0, l'aliquota (senza natura) e la dicitura dell'art. 15;
- se l'articolo regalato ha un'aliquota IVA più alta della merce venduta, la stessa norma non lo esclude: la riga diventa un omaggio con rivalsa (C/R), la merce non si paga ma l'IVA sul suo valore sì, e la scheda lo dice. Si può cambiare dalla colonna Omaggio;
- la riga si può togliere: non torna finché la riga che la fa scattare resta com'è (quantità, prezzo, sconto). Se la regola smette di valere, la riga aggiunta se ne va da sola.
- Aprire il modulo Sconti dal menu.
- Premere + Nuova Regola.
- Selezionare il tipo: percentuale, importo fisso, catena.
- Specificare l'ambito: per articolo, per soggetto, per categoria, globale.
- Inserire il valore dello sconto.
- Opzionale: periodo di validità (dal/al) e quantità minima.
- Premere Salva.
Per i bonus fiscali (ristrutturazione, superbonus), lo sconto in fattura riduce l'importo totale. La fattura mostra l'importo originale, lo sconto applicato e il netto da pagare.
Alla selezione di un articolo in un documento, il sistema applica automaticamente lo sconto dalla regola con priorità più alta. L'utente può sempre sovrascrivere manualmente il valore.
Nella tab Listino & Sconti del documento: panoramica degli sconti applicabili con fonte e valore.
Lo sconto in euro sulla riga
Le regole, i «prendi N paga M» e i bundle si scrivono sulla riga come sconto in euro, che si toglie dopo lo sconto %. Accanto al prezzo compare il riquadro −20,00 €: passandoci sopra si legge da dove viene (regole, promozione, bundle). In fattura elettronica la riga riporta lo sconto a importo e il prezzo totale esatto.
- Le regole si applicano solo alle righe senza un loro sconto % (di catalogo, del cliente o scritto a mano).
- Il prendi N paga M vale sul prezzo già scontato: 7 pezzi a 10 € in 3x2 sono 2 pezzi gratis, 20,00 € esatti. Non vale sulla riga dove scatta una regola esclusiva.
- Se cambiano prezzo, quantità, sconto %, cliente o data, lo sconto si ricalcola da solo; se la promozione non vale più, si toglie.
- Applica (riquadro Sconti applicabili) mette una regola sulle righe senza sconto che ne soddisfano date, destinatari e condizioni; l'importo fisso è per riga.
- Sconto massimo: il limite di chi scrive il documento (Listini → Regole di margine) conta solo lo sconto a mano. Lo sconto in euro che mettono regole, «prendi N paga M» e bundle non conta: al salvataggio NOX lo ricalcola con le stesse regole, e conta solo quello che va oltre.
Promozioni a soglia e bundle
- Soglia: raggiunta la spesa, il documento propone lo sconto globale (se ce n'è già uno scritto a mano, chiede prima di sostituirlo). Se il totale scende sotto la soglia, lo sconto messo dalla promozione si toglie (non se nel frattempo è stato cambiato a mano).
- Bundle: lo sconto vale sui set completi (10 pezzi di A e 1 di B fanno un set: si sconta 1 A + 1 B); l'importo fisso vale per set. Si divide sulle righe dei componenti al centesimo e si somma agli altri sconti; una riga prende un bundle solo. Una riga con una regola esclusiva non entra nei bundle. Se il set si rompe, il bundle si toglie.
- Limiti: percentuali fra 0 e 100; niente valori o soglie negativi; lo sconto fisso di una promozione a soglia non supera la soglia; nel «prendi N paga M» N è almeno 2 e M va da 1 a N−1; la categoria deve esistere fra le categorie del catalogo.
Aggiornamento strutturale del modulo Sconti con operazioni massive, tracciamento modifiche e soft-delete. Pensato per le campagne promozionali ricorrenti e per la gestione coerente delle date di validita.
Soft-delete + Cestino
L'eliminazione di una regola sconto e ora una cancellazione logica: lo sconto viene nascosto dalle liste correnti ma resta nel database. Dal footer della lista Sconti si apre il pulsante 🗑 Cestino che mostra gli sconti cancellati con:
- ↺ Ripristina: lo sconto torna com’era: attivo se era attivo, spento se era spento.
- ✗ Definitivo: eliminazione fisica irreversibile (con cascade su condizioni/valori/target).
Audit log delle modifiche
Ogni modifica alla testata dello sconto (codice, nome, priorita, combinazione, validita, attiva, note) viene registrata nella tabella log_modifiche_sconti con valore precedente, valore nuovo, utente e timestamp. Endpoint: GET /api/sconti/:id/audit-log.
Il registro segna anche i cambi di valori, condizioni e destinatari (una riga leggibile per gruppo), le azioni in blocco (attiva, disattiva, priorità, proroga, cestino), la cancellazione e il ripristino.
Timeline sconto
L'endpoint GET /api/sconti/:id/timeline restituisce la cronologia delle modifiche ordinate per data decrescente.
Operazioni massive
Nella lista Sconti compare una colonna checkbox per la selezione multipla. Con una o piu righe selezionate si apre una barra blu con le azioni:
- Attiva / Disattiva in blocco.
- Priorita: imposta la stessa priorita su N sconti.
- 📋 Duplica: clona gli sconti selezionati come template (copia completa di condizioni, valori, target). Il duplicato nasce con
attiva=falseper permettere modifiche prima dell'attivazione. Il riferimentoscontoPadreIdtraccia la provenienza. - 📅 Proroga scadenza: imposta una nuova
dataFinesu N sconti contemporaneamente. La proroga e audit-tracciata. - 🗑 Cestino: soft-delete in blocco.
Esempio: prolungare la campagna Black Friday
- Nella lista, filtra per codice “BLACK”.
- Spunta il checkbox in testata per selezionare tutti i risultati.
- Premi 📅 Proroga scadenza, inserisci la nuova data.
- Il sistema aggiorna
dataFinesu tutti gli sconti e registra ogni modifica nell'audit log.
Esempio: creare “SALDI-2026” dal modello “SALDI-2025”
- Selezionare lo sconto “SALDI-2025”.
- Premi 📋 Duplica con suffisso a scelta.
- Il nuovo sconto viene creato con stesso set di condizioni/valori/target,
attiva=false. - Aprilo, aggiorna le date e attivalo quando e il momento.
• il pacchetto
FATTURAZIONE è 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 Sconti 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, Cambio percentuale, Soft-delete. 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:
| Campo | Esempio originale | Nel log |
|---|---|---|
| IBAN | IT60X0542811101000000123456 | IT60****3456 |
| Codice Fiscale (PF) | RSSMRA80A01H501Z | RSSMRA****501Z |
| Partita IVA | 12345678901 | 123****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.