Applicazione desktop (Windows/Linux/macOS via Avalonia) per la stima delle imposte annue italiane, rivolta a:
- Lavoratori dipendenti privati
- Lavoratori dipendenti pubblici
- Titolari di Partita IVA in regime forfettario
L'utente inserisce i propri dati e ottiene un prospetto dettagliato e auditabile (voce per voce), con riepilogo di netto annuo, imposte, contributi e pressione fiscale. I calcoli vengono salvati in uno storico ed è possibile salvare profili riutilizzabili ed esportare il prospetto.
⚠️ Avviso: i risultati sono una stima semplificata a scopo informativo e non sostituiscono il calcolo di un commercialista o del CAF. Aliquote e soglie vanno sempre verificate sulle fonti ufficiali (Agenzia delle Entrate, INPS) per l'anno di riferimento.
Soluzione .slnx a strati (Clean Architecture):
src/
TaxManager.Domain # Dominio puro: regole fiscali come DATI per anno, calcolatori, esito auditabile
TaxManager.Application # Casi d'uso + astrazioni di persistenza (interfacce)
TaxManager.Infrastructure # EF Core SQLite + store JSON su disco + caricatore ruleset
TaxManager.App # UI Avalonia (MVVM con CommunityToolkit.Mvvm)
tests/
TaxManager.Domain.Tests # xUnit: engine, mapping, caricamento ruleset, non-divergenza JSON↔codice
data/
rulesets/2024.json, 2025.json # Parametri fiscali editabili (sorgente di verità a runtime)
Principi chiave:
decimalper il denaro ovunque; arrotondamenti centralizzati inDomain.Common.Money(all'euro per le imposte).- Regole come dati versionati per anno (
TaxYearRuleset): caricabili da JSON, con fallback in codice (SampleRulesets). I metodi di calcolo vivono sui tipi, così un ruleset deserializzato conserva la propria logica. - Esito = scomposizione passo-passo (
TaxResultcon vociTaxLineItem), non un solo numero. - Dominio senza dipendenze esterne; la persistenza è solo dietro le astrazioni di
Application.
Dipendenti (privato/pubblico): contributi previdenziali a carico del lavoratore (9,19% privato / 8,80% pubblico, con +1% oltre la prima fascia), imponibile IRPEF, IRPEF a scaglioni (23/35/43%), detrazione da lavoro dipendente, addizionali regionale/comunale, trattamento integrativo e — dal 2025 — il cuneo fiscale (somma integrativa non imponibile + ulteriore detrazione per redditi medi).
Forfettario: reddito forfettario (ricavi × coefficiente di redditività per gruppo ATECO), contributi previdenziali deducibili (Gestione Separata / artigiani / commercianti con riduzione 35% / cassa professionale), imposta sostitutiva 15% (o 5% start-up). Nessuna IRPEF/addizionale/IVA.
L'addizionale regionale (a scaglioni dove previsto) e quella comunale non si inseriscono a mano: si scelgono Regione → Provincia → Comune. I dati coprono tutte le regioni/province e ~7.900 comuni italiani, con aliquote a scaglioni e soglie di esenzione. data/addizionali/comuni-<anno>.json è generato da tools/AddizionaliImporter (elenco comuni + tabella MEF) — vedi tools/README.md. Per i rari comuni non in elenco resta l'inserimento manuale dell'aliquota.
Non sono modellati nel dettaglio: conguagli, familiari a carico (assegno unico), agevolazioni/detrazioni regionali condizionate, esonero contributivo 2024, condizioni puntuali del bonus/trattamento di fascia B e dei requisiti start-up. I valori dei ruleset sono frutto di ricerca verificata ma da confermare sulle fonti ufficiali.
- Database relazionale (SQLite, EF Core): storico dei calcoli in
%APPDATA%/TaxManager/taxmanager.db. - Disco (JSON): profili contribuente in
%APPDATA%/TaxManager/profiles.json; export del prospetto in TXT/JSON nel percorso scelto.
- .NET SDK 10.0.x
# dalla root del repo
dotnet build TaxManager.slnx
dotnet test tests/TaxManager.Domain.Tests/TaxManager.Domain.Tests.csproj
dotnet run --project src/TaxManager.AppEseguibile unico Windows, senza .NET preinstallato:
dotnet publish src/TaxManager.App -c Release -r win-x64 --self-contained true `
-p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:PublishReadyToRun=trueOutput in src/TaxManager.App/bin/Release/net10.0/win-x64/publish/: TaxManager.exe (~150 MB) con accanto le cartelle rulesets/ e addizionali/. L'icona e il logo (Assets/logo.ico, logo.png) sono generati da tools/IconGenerator (vedi tools/README.md).
- Modificare/creare
data/rulesets/<anno>.json. - Allineare il metodo corrispondente in
src/TaxManager.Domain/SampleRulesets.cs(un test verifica che JSON e codice diano gli stessi risultati). dotnet test.