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 € | Prezzo ridotto di 5 € |
| 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.
- 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.
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 attivo.
- ✗ 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.
Nota: l'audit e limitato alla testata dello sconto. Le modifiche granulari a condizioni, valori e target non sono tracciate singolarmente (sarebbero 4 tabelle audit aggiuntive).
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.
• Pacchetto
FATTURAZIONE attivo sul workspace (configurabile da SUPERADMIN in /admin/pacchetti)
• Profilo attività compatibile: Farmacia, Ferramenta, Elettronica (commercio con promozioni)
• 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 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.