From 0f1ba0826ee3e8f7d6a119ed139f023cb324d1e1 Mon Sep 17 00:00:00 2001 From: cammo22 Date: Tue, 22 Sep 2026 03:25:42 +0200 Subject: [PATCH] Versione 1.3.0: AGENTS.md e README aggiornati MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Versione 1.3.0. - AGENTS.md: §10.12-§10.19 (impostazioni, documenti, richieste, riepilogo dell'azienda, Personale, Area fiscale, Marginalità, interfaccia), la sezione della versione 1.3.0, i punti aperti 12-16. - README: novità della 1.3.0, le viste nuove, cosa c'è nella demo, il telefono com'è adesso, la roadmap su GitHub; parte tecnica con l'interfaccia nuova e i motori verificati su conti fatti a mano. Co-Authored-By: Claude Opus 5 --- AGENTS.md | 48 ++++++++++++++++++ README.md | 121 +++++++++++++++++++++++++++++++++++++++------- package-lock.json | 4 +- package.json | 2 +- 4 files changed, 154 insertions(+), 21 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 66a81a9..7bb1534 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -222,6 +222,36 @@ Il lavoro del **consulente** su ogni azienda, non i conti dell'azienda: per ques - **Ore per settimana** (ultime 8, fatturabili e no), **tariffa oraria** per azienda, **registro ore** giorno per giorno. - Tabelle `tasks`, `time_entries`, `activity_settings` (migrazione 007), stessi campi di sync di tutto il resto (§6). Il riepilogo è una funzione pura (`shared/engine/activities.ts`, con test). Cancellare un'attività lascia le sue ore nel registro, senza attività. - **Non fa** (di proposito, per ora): fatture, tracciamento automatico di app/siti o schermate (Ever Teams lo fa; in uno studio è invadente e non richiesto), più persone dello studio con i propri timer — vedi §14 punto 10. +- **1.3.0**: timer con un tasto grande e attività a pastiglie, *Registra ore* con durate rapide (due tocchi), bacheca/registro/andamento in tre schede, sul telefono una colonna alla volta, pulsanti *Inizia / Da rivedere / Fatta*, voci del registro correggibili (`PUT /time-entries/:id`). + +### 10.12 Impostazioni, utenti e accessi (versione 1.3.0) +Il consulente è l'amministratore. *Impostazioni* (menu in basso) ha le schede Generale (tema, colore d'accento, avvisi, backup automatico giornaliero con quante copie tenere, controllo aggiornamenti, dati dello studio mostrati alle aziende), Moduli (interruttori: documenti, richieste, personale, fiscale, marginalità, simulazioni, attività), Utenti e accessi (consulenti e accessi delle aziende: crea, disattiva, cambia password, elimina — non si disattiva l'ultimo consulente né sé stessi), Il mio profilo, Informazioni (crediti open source). Per ogni azienda, *Impostazioni dell'azienda* decide **cosa vede** (viste condivisibili: panoramica, conto economico, stato patrimoniale, circolante, tesoreria, banche, simulazioni, personale, fiscale, marginalità) e **cosa può fare** (mandare documenti, chiedere chiamate, scrivere). Il server lo fa rispettare (`middleware/portal.ts`, 403 con un messaggio chiaro), non solo il menu. Un accesso disattivato esce subito. Tabella `settings` (migrazione 008) con ambiti `app` / `user` / `company`, valori JSON normalizzati in `shared/settings.ts`. + +### 10.13 Cassetto documenti (versione 1.3.0) +File per azienda, caricati da studio e azienda (trascinati o scelti, 50 MB sul computer, 15 sul telefono). Si aprono **dentro il programma**: PDF (PDF.js), Excel e CSV (ExcelJS), Word (docx-preview in un iframe senza script), PowerPoint (pptx-glimpse, SVG in ``, caratteri Carlito e Arimo inclusi), immagini, testo, audio e video; oppure col programma del computer (i programmi, .exe e simili, non si aprono con un clic). Lo studio può tenere documenti riservati; l'azienda vede quando lo studio ha aperto ciò che ha mandato. File su disco in `aziende//documenti//` (controllo di percorso nel servizio e nell'IPC), sul telefono in IndexedDB. Tabella `documents` (migrazione 009). `.xls`, `.ods`, `.doc` si aprono solo col programma del computer (§14 punto 16). + +### 10.14 Richieste e chiamate (versione 1.3.0) +Il filo fra azienda e studio: **chiamata** (motivo, numero, quando preferisce, urgente), **domanda**, **documenti**; lo studio può aprirne una ("mi servono gli estratti conto"). Stati: inviata → vista → presa in carico → in attesa dell'azienda → risolta (o annullata), con la storia di chi ha fatto cosa (`request_events`). Lo studio risponde anche solo per scritto e ha i pulsanti *Chiamo ora* (apre `tel:`), *Richiamo…*, *Chiamata fatta* (esito e minuti, che finiscono in Attività e Tempi), *Non risponde*, *Prendo in carico*, *Aspetto l'azienda*, *Risolta*, *Affida a…*. Chiamate in arrivo: riquadro con squillo, notifica di sistema e finestra che lampeggia (riducibile a una pastiglia); campanello con le novità (sondaggio ogni 8 secondi). Tabelle `requests`, `request_events` (migrazione 009). + +### 10.15 Riepilogo dell'azienda (versione 1.3.0) +La prima pagina dell'accesso Azienda: chi la segue (studio e consulenti), i pulsanti per chiedere una chiamata, mandare documenti, scrivere; i numeri principali delle sole viste condivise (cassa oggi e fra 30 giorni, ricavi e risultato dell'ultimo mese), le tasse da mettere da parte (se l'Area fiscale è condivisa), le richieste e i documenti nuovi. Lo calcola il server (`portal.service.ts`): un numero di una vista spenta non parte nemmeno. + +### 10.16 Personale (versione 1.3.0) +Persone con mansione, reparto, contratto (indeterminato, determinato, apprendistato, collaborazione), ore settimanali, RAL, mensilità (12-14), contributi e INAIL propri se diversi da quelli dell'azienda, altri costi, diretto/indiretto, assunzione e fine. **Costo aziendale** = RAL + contributi INPS azienda (30% di partenza) + INAIL (1%) + TFR (RAL/13,5; non per i collaboratori) + altri costi; **costo orario** = costo / ore lavorate in un anno (1.720 per un tempo pieno, in proporzione alle ore). Riepilogo per reparto, diretti/indiretti, costo orario medio dei diretti (è la manodopera della Marginalità), confronto col costo del personale nel conto economico degli ultimi 12 mesi. **Tesoreria** (interruttore, spento di partenza): netto il giorno scelto del mese dopo, F24 (trattenute + contributi) il 16, tredicesima e quattordicesima nei loro mesi, INAIL il 16 febbraio; il TFR non esce di cassa. Motore `shared/engine/personale.ts`, tabella `employees` (migrazione 010). Condivisibile con l'azienda, spento di partenza (sono stipendi). + +### 10.17 Area fiscale e contributi (versione 1.3.0) +Una **stima** per mettere da parte i soldi giusti, non la dichiarazione (niente detrazioni personali né crediti d'imposta). Regime indovinato dalla forma giuridica e cambiabile: società di capitali (IRES 24% sull'utile rettificato, IRAP 3,9% sul reddito operativo), società di persone (IRAP; reddito diviso fra i soci, ognuno IRPEF a scaglioni 2026 23/33/43, addizionali, INPS sulla sua quota), ditta individuale (IRPEF, addizionali, INPS; niente IRAP), forfettario (ricavi × coefficiente meno contributi, imposta sostitutiva 15% o 5%, riduzione INPS del 35%). INPS artigiani/commercianti: fissi sul minimale e percentuale oltre fino al massimale (valori 2025, da aggiornare); gestione separata. Parte dall'utile degli ultimi 12 mesi (`bilancio.service.ts`) o dall'ultimo anno, o da un reddito scritto a mano; rettifiche in aumento/diminuzione e IRAP. **Scadenze** col metodo storico: acconti 40/60 (50/50 con gli ISA) al 30 giugno e 30 novembre, saldo il 30 giugno dopo, INPS fissi in quattro rate, INPS oltre il minimale 50/50. Accantonamento mensile = totale / 12. **Tesoreria** con interruttore. Motore `shared/engine/fiscale.ts`; impostazioni nella tabella `settings`, chiave `fiscale`. + +### 10.18 Marginalità (versione 1.3.0) +Prende la forma dell'attività (indovinata dal *tipo di attività* dell'anagrafica): **ristorazione** (ricette, ingredienti, food cost, menu engineering di Kasavana e Smith: stelle, cavalli da lavoro, enigmi, cani), **produzione** (distinta base), **commercio** (ricarico), **servizi ed edilizia** (commesse con preventivo e consuntivo). Listino con unità, costo e scarto (costo utile = costo / (1 − scarto)); ogni voce è fatta di materiali, manodopera (costo orario dal Personale, per persona o medio dei diretti, o scritto nelle impostazioni), lavorazioni esterne, altro. Costo diretto, costi generali in % del diretto, costo pieno, margine di contribuzione e netto, food cost %, ricarico, prezzo consigliato per stare nell'obiettivo; ricette e prodotti per porzione (resa). Prezzi IVA esclusa, l'IVA serve solo al prezzo in carta. Motore `shared/engine/marginalita.ts`; tabelle `margin_materials`, `margin_items`, `margin_lines` (migrazione 011). Resta aperto l'uso delle % di costo diretto per conto nel conto economico (§14 punto 15). + +### 10.19 L'interfaccia (versione 1.3.0) +- **Comandi rapidi** da ogni schermata (Ctrl+K): aziende, sezioni, azioni. Pulsante *Nuovo* con le azioni della schermata (sul telefono il tondo in basso a destra). Registro in `lib/comandi.tsx`; le azioni per schermate non ancora aperte passano da `richiediAzione`/`useAzione` (valide 6 secondi). +- **Intestazione**: cambio d'azienda con le recenti (si resta sulla stessa sezione), ricerca, *Nuovo*, timer, campanello, menu utente (profilo, impostazioni, tema, esci). +- **Menu laterale** richiudibile a icone (Ctrl+B) e da allargare trascinando il bordo; **pannelli** da comprimere e nascondere, rimessi dal menu *Pannelli*. +- **Telefono**: barra delle sezioni in basso (Analisi, Cassa, Piani, Lavoro, Dati / per l'azienda Riepilogo, Documenti, Richieste, Numeri), sezioni vicine in pastiglie, periodo e scenario in un foglio dal basso, barra di stato nel menu, finestre che salgono dal basso, tabelle che scorrono dentro il riquadro. +- **Aspetto**: colore d'accento (blu, turchese, viola, indaco), icone SVG al posto delle emoji (`components/icone.tsx`), avvisi brevi (`Avvisi.tsx`), scheletri di caricamento. +- **Velocità**: sezioni pesanti con `React.lazy`, dati già letti mostrati subito (`lib/memoria.ts`), la pagina dell'azienda riparte da zero cambiando azienda. --- @@ -728,6 +758,19 @@ esistono. - **Provarla senza telefono**: `npm run android:web` e `npm run android:preview`, poi il browser su `http://localhost:4173` (ridotto a larghezza di telefono). +### Versione 1.3.0 — interfaccia più semplice, portale dell'azienda, costi, margini e tasse + +Quattro pezzi, una PR ciascuno (#21, #22, #40, #41), roadmap su GitHub nell'issue fissata #39. + +| Pezzo | Cosa c'è | +|---|---| +| Impostazioni e accessi | §10.12. `shared/settings.ts`, migrazione 008, `settings.service.ts`, `middleware/portal.ts`, `SettingsPage`, `CompanySettingsView`, backup automatico (`lib/auto-backup.ts`) | +| Documenti, richieste, riepilogo | §10.13-§10.15. Migrazione 009, `documents.service.ts`, `requests.service.ts`, `portal.service.ts`, `components/viewer/*`, `RequestsBoard`, `IncomingCalls`, `CompanyHome`; file dimostrativi veri generati da `db/demo-files.ts` | +| Interfaccia | §10.19. `Guscio.tsx`, `TavolozzaComandi.tsx`, `lib/comandi.tsx`, `Sidebar` richiudibile, `Pannelli` con nascosti/compressi, Simulazioni e Attività rifatte, tabelle che scorrono, `lib/memoria.ts` | +| Personale, fiscale, marginalità | §10.16-§10.18. Motori in `shared/engine/`, migrazioni 010-011, `bilancio.service.ts` (conto economico degli ultimi 12 mesi), flussi di tesoreria calcolati con fonti `personale` e `fiscale` | + +Controlli: 146 test (i motori nuovi su conti fatti a mano), `verify:schema` 86/86 su un database nuovo, anteprime provate in Electron compilato e nella versione web (stesso codice dell'APK), a 375 e a 1440 px. + --- ## 14. Punti aperti @@ -751,6 +794,11 @@ esistono. 8. **Nome dell'app Cliente**: per coerenza con `IrideeCRM` / `IrideeCRM Satellite`, proposta `DaProdFinanza` / `DaProdFinanza Cliente` — confermare. 10. **Attività e Tempi per più persone**: oggi il timer e le ore sono del consulente (uno solo). Se nello studio lavorano più persone, servono ore per persona e magari una vista "chi sta facendo cosa" (come in Ever Teams). E l'azienda cliente deve poter vedere le attività che la riguardano (es. "documenti da mandare")? Da chiedere al consulente. 11. **Demo Android**: provata nel browser a larghezza di telefono e l'APK della CI sull'emulatore (Android 14: installazione, accesso demo, cruscotto, menu, Attività e Tempi). Va provata su qualche telefono vero, con versioni di Android diverse. +12. **LibreOffice facoltativo**: per aprire e modificare `.xls`, `.ods`, `.doc` anche dove Office non c'è. Non si include nell'installazione (circa 350 MB): da valutare lo scaricamento su richiesta (issue #38). +13. **Chiamate vocali dentro il programma**: oggi la chiamata richiesta si fa col telefono (`tel:`). Chiamare dal programma richiede il collegamento fra studio e aziende della fase 8 (issue #37). +14. **Aliquote e minimali**: l'Area fiscale parte dai valori INPS 2025 e dagli scaglioni IRPEF 2026; vanno aggiornati ogni anno (sono impostazioni dell'azienda, ma i valori di partenza stanno in `shared/engine/fiscale.ts`). +15. **% di costo diretto per conto**: salvate da sempre (`direct_cost_pct`, `company_section_settings`) ma lo schema "a margine di contribuzione" usa ancora la divisione per sezione. Da decidere col consulente se usarle conto per conto. +16. **Anteprima di `.xls` e `.ods`**: la libreria che le legge (SheetJS) si installa solo dal suo sito, e la configurazione npm dello sviluppatore rifiuta i pacchetti da indirizzi remoti — di proposito, e resta così. Oggi quei file si aprono col programma del computer. --- diff --git a/README.md b/README.md index 1f4562b..83e2b4f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Un gestionale desktop per consulenti finanziari aziendali: riclassifica il bilan calcola gli indici che contano, previene le tensioni di cassa prima che arrivino, e risponde a "cosa succede se" senza toccare un foglio Excel. -![stato](https://img.shields.io/badge/versione-1.2.2-3ddbff) +![stato](https://img.shields.io/badge/versione-1.3.0-3ddbff) ![piattaforma](https://img.shields.io/badge/Windows-x64-3ddbff) ![demo mac](https://img.shields.io/badge/demo-macOS-3ddbff) ![demo android](https://img.shields.io/badge/demo-Android-3ddbff) @@ -131,7 +131,31 @@ I due programmi si parlano su una rete privata (Tailscale, con un collegamento d riserva per quando un'azienda non riesce a configurarlo). Nessun server pubblico, nessun dominio da comprare, nessun dato che passa da terzi per l'uso quotidiano. -## Le sette viste +## Novità della 1.3.0 + +- **Più semplice, su Windows e sul telefono.** Da qualsiasi schermata **Ctrl+K** (o la + lente in alto) cerca un'azienda, una sezione o un'azione e la esegue: "carica un + documento", "registra ore", "report PDF", "nuova azienda". Il pulsante **Nuovo** ha + le azioni della schermata in cui si è; l'azienda si cambia dall'intestazione, fra + le recenti. Il menu laterale si richiude a icone (Ctrl+B) e si allarga trascinando + il bordo; ogni pannello si comprime o si nasconde. Colore d'accento a scelta. +- **Sul telefono** una barra delle sezioni in basso come le app, le sezioni vicine a + portata di pollice, periodo e scenario in un foglio che sale dal basso, le + simulazioni in due schede (Leve e Risultati) con il riassunto sempre in vista. +- **Personale**, **Area fiscale e contributi**, **Marginalità**: tre sezioni nuove, + qui sotto. +- **Cassetto documenti**: studio e azienda ci mettono file e li aprono al volo dentro + il programma — PDF, Excel, Word, PowerPoint — anche dove Office non c'è. +- **Richieste e chiamate**: l'azienda chiede una chiamata, fa una domanda o manda + documenti e vede se lo studio l'ha presa in carico; lo studio risponde anche solo + per scritto e ha i pulsanti per la chiamata (*Chiamo ora*, *Richiamo*, *Chiamata + fatta*…). +- **L'azienda come utente**: entra su un riepilogo con i suoi numeri principali, chi + la segue e le sue richieste, e vede solo le sezioni che il consulente le ha + condiviso. I consulenti sono gli amministratori: **Impostazioni** con interruttori + per moduli, accessi, backup automatico, aggiornamenti, tema. + +## Le viste - **Panoramica** — la situazione del mese in un colpo d'occhio, con gli avvisi che si accendono da soli quando qualcosa peggiora @@ -143,8 +167,16 @@ nessun dominio da comprare, nessun dato che passa da terzi per l'uso quotidiano. - **Tesoreria** — quanti soldi ci saranno in banca fra una settimana, un mese, tre mesi - **Banche e Finanziamenti** — fidi, mutui e leasing, e quanto pesano sulla cassa futura - **Analisi & Simulazioni** — "cosa succede se": assumo, investo, alzo i prezzi -- **Attività e Tempi** *(nuova nella 1.2.0)* — il lavoro del consulente su ogni - azienda: le cose da fare, il tempo che ci si spende e quanto vale +- **Marginalità** *(1.3.0)* — quanto costa fare ciò che si vende e quanto resta: il + food cost delle ricette, la distinta base dei prodotti, il costo di una commessa a + preventivo e a consuntivo +- **Personale** *(1.3.0)* — quanto costa davvero ogni persona e un'ora del suo lavoro +- **Area fiscale e contributi** *(1.3.0)* — imposte e contributi dell'anno, quanto + mettere da parte ogni mese, quando si paga +- **Documenti** e **Richieste e chiamate** *(1.3.0)* — il cassetto dei file e il filo + diretto fra azienda e studio +- **Attività e Tempi** *(1.2.0)* — il lavoro del consulente su ogni azienda: le cose + da fare, il tempo che ci si spende e quanto vale In più, su ogni schermata: @@ -165,6 +197,28 @@ In più, su ogni schermata: - **Aggiornamenti con un clic**: il programma controlla da solo se su GitHub c'è una versione nuova, la scarica, la verifica e si aggiorna. +## Marginalità, Personale, Area fiscale + +**Marginalità** prende la forma dell'attività. Per un ristorante sono **ricette e +ingredienti**: ogni pizza con i suoi grammi di farina e mozzarella (con lo scarto), i +minuti del pizzaiolo, e subito il **food cost**, quanto resta, il **prezzo consigliato** +per stare nell'obiettivo; il **menu engineering** divide il menu in stelle, cavalli da +lavoro, enigmi e cani, con cosa fare per ognuno. Per chi lavora **a commessa** +(edilizia, impianti, servizi) sono commesse con **preventivo e consuntivo** di +materiali, ore e lavorazioni esterne, e lo scostamento fra i due. Per produzione e +commercio, **distinta base** e **ricarico**. + +**Personale**: per ogni persona contratto, ore, retribuzione annua lorda e mensilità; +il programma calcola il **costo aziendale** (retribuzione, contributi, INAIL, TFR, altri +costi) e il **costo di un'ora di lavoro** — che è la manodopera usata dalla +Marginalità. Per reparto, diretti e indiretti, e il confronto col costo del personale +scritto nel bilancio. Stipendi, F24 e INAIL possono entrare nella previsione di cassa. + +**Area fiscale e contributi**: una **stima** (non la dichiarazione) di IRES, IRAP, +IRPEF, addizionali e contributi INPS — o dell'imposta sostitutiva del forfettario — +partendo dall'utile degli ultimi dodici mesi. Dice **quanto mettere da parte ogni +mese** e le **scadenze** di acconti e saldi, che possono entrare nella tesoreria. + ## Attività e Tempi Una schermata per il lavoro **del consulente**, non per i conti dell'azienda: la vede @@ -172,12 +226,14 @@ solo lui. L'idea viene da [Ever Teams](https://github.com/ever-co/ever-teams), u programma open source per organizzare il lavoro di un gruppo; qui è ridotta a quello che serve a uno studio. +- **Timer** — un tasto grande per partire, l'attività si sceglie a pastiglie; resta + visibile in alto in ogni schermata e se ne avvii un altro, il primo si ferma da solo. +- **Registra ore** — oggi o ieri, 15 minuti, mezz'ora, un'ora, due: due tocchi. Le voci + del registro si correggono con un clic. - **Bacheca a colonne** — *Da fare, In corso, Da verificare, Fatto*: ogni attività ha priorità, scadenza (rossa quando è passata), una stima e il tempo già speso. Si - sposta trascinandola, o con le frecce. -- **Timer** — si avvia su un'attività con un clic e resta visibile in alto in ogni - schermata; se ne avvii un altro, il primo si ferma da solo. Le ore si possono anche - scrivere a mano ("1:30", "1,5"). + sposta trascinandola o con i pulsanti *Inizia / Da rivedere / Fatta*; sul telefono + una colonna alla volta. - **Quanto vale** — con la tariffa oraria dell'azienda, le ore fatturabili del mese diventano un importo. Più il grafico delle ultime otto settimane e il registro giorno per giorno. @@ -226,7 +282,9 @@ finanziamento) e si vede subito l'effetto su utile, cassa e debito, scenario sal ed esportabile in Excel. Tutte e sette le viste esistono. Dalla versione 1.0.0 i dati si inseriscono direttamente nel programma, c'è il report PDF, il cruscotto a widget con i riquadri spostabili e l'aggiornamento automatico da GitHub. Con la 1.2.0 arrivano -**Attività e Tempi** e la **demo per telefoni Android**. Manca il collegamento fra i +**Attività e Tempi** e la **demo per telefoni Android**; con la 1.3.0 un'interfaccia +più semplice, le impostazioni, il cassetto documenti, richieste e chiamate fra azienda +e studio, **Personale**, **Area fiscale** e **Marginalità**. Manca il collegamento fra i due programmi. | | Fase | Stato | @@ -242,18 +300,21 @@ due programmi. | 1.0 | Aggiornamenti automatici, dati nel programma, report PDF, cruscotto, riquadri spostabili | ✅ Versione 1.0.0 | | 1.1 | Pannelli liberi e ridimensionabili, zoom, scenari pronti, demo per Mac | ✅ Versione 1.1.0 | | 1.2 | Attività e Tempi (bacheca, timer, ore), demo per Android | ✅ Versione 1.2.0 | +| 1.3 | Interfaccia più semplice (Ctrl+K, telefono), impostazioni, documenti, richieste e chiamate, Personale, Area fiscale, Marginalità | ✅ Versione 1.3.0 | | 8-9 | Collegamento fra i due programmi (senza account), import Excel più tollerante | ⬜ Prossima | | 10 | Eseguibili: installer, portable, demo | 🟡 Pubblicati a ogni aggiornamento importante; mancano le varianti Consulente/Azienda | -La roadmap completa, con il dettaglio di cosa c'è dentro ogni fase, è in -[`AGENTS.md` §13](./AGENTS.md). +La roadmap viva sta su GitHub, nell'issue fissata +**[Roadmap](https://github.com/cammo22/DaProdFinanza/issues/39)**; il dettaglio di +cosa c'è dentro ogni fase è in [`AGENTS.md` §13](./AGENTS.md). ## Provarlo Il modo più rapido per vederlo all'opera è la **versione demo**: `DaProdFinanza-Demo-x.y.z-portable.exe`. Si lancia senza installare niente e parte già con una pizzeria di esempio, due anni di bilanci, lo scadenziario, le previsioni -di cassa, le banche e i finanziamenti. Si entra come +di cassa, le banche e i finanziamenti, il personale, le ricette col food cost, i +documenti e una chiamata in arrivo. Si entra come consulente con **`cammo` / `1234`**, oppure come azienda con **`Pizzeria DaProd` / `1234`**. I suoi dati restano in una cartella a parte e non si mescolano mai con quelli di un'installazione vera. @@ -279,12 +340,13 @@ il pulsante *Aggiornamenti* apre la pagina da cui scaricare il DMG nuovo. **Su Android c'è solo la demo.** Si scarica l'APK dal telefono e lo si apre: Android chiede il permesso di installare app da quella fonte (il browser o *File*), si concede e si installa. È lo stesso programma, con gli stessi dati di esempio, lo -stesso accesso (`cammo` / `1234`) e il menu che si apre dal tasto ☰. In ogni schermata -l'intestazione dell'azienda è richiusa in una riga (▾ per aprire periodo, scenario e -report), e l'avviso della demo si chiude con la ×. I pannelli partono **bloccati**, -così scorrendo col dito non si ridimensionano per sbaglio: il lucchetto 🔒/🔓 in alto li -sblocca e li blocca con un tocco. Sul telefono non -ci sono import/export Excel, report PDF e backup. Per aggiornarla si installa l'APK +stesso accesso (`cammo` / `1234`), le sezioni nella barra in basso e il resto nel +menu. Periodo, scenario e report si aprono dal pulsante col calendario in alto; il +tondo in basso a destra ha le azioni rapide; l'avviso della demo si chiude con la ×. I +pannelli partono **bloccati**, così scorrendo col dito non si ridimensionano per +sbaglio: il lucchetto in alto li sblocca con un tocco. Sul telefono non ci sono +import/export Excel, report PDF e backup, e i documenti si aprono solo dentro il +programma. Per aggiornarla si installa l'APK nuovo sopra quello vecchio: i dati di esempio restano. Dalla 1.0.0 non serve più scaricarli a mano: il pulsante **Aggiornamenti** (in basso @@ -353,6 +415,10 @@ src/ ├── web/ versione Android: backend in pagina, sql.js, sostituti di Node/Electron └── shared/ ├── engine/ il motore di calcolo: funzioni pure, zero dipendenze + │ (bilancio, indici, tesoreria, finanziamenti, simulazioni, + │ attività, personale, fiscale, marginalità) + ├── settings.ts impostazioni di programma, utente e azienda + ├── documents.ts documenti e richieste └── types.ts tipi condivisi ``` @@ -395,6 +461,21 @@ e le chiamate `fetch` all'indirizzo del backend restano nella pagina (`.github/workflows/android-demo.yml`), a ogni release. Dettagli in [`AGENTS.md`](./AGENTS.md), versione 1.2.0. +### L'interfaccia (1.3.0) + +- **Comandi rapidi** (`renderer/src/lib/comandi.tsx`): chi sa fare qualcosa lo + dichiara con `useRegistraComandi`; la tavolozza (Ctrl+K) e il pulsante *Nuovo* li + leggono. Un'azione che vive in una schermata non ancora aperta si chiede con + `richiediAzione` e la schermata la raccoglie con `useAzione`. +- **Guscio** (`components/Guscio.tsx`, `Sidebar.tsx`): menu richiudibile e + ridimensionabile, cambio d'azienda con le recenti, barra delle sezioni del telefono. +- **Pannelli**: nascosti e compressi per schermata, in `localStorage`. +- **Anteprime dei documenti** (`components/viewer/`): PDF.js, ExcelJS, docx-preview in + un iframe senza script, pptx-glimpse con i caratteri Carlito e Arimo inclusi. + Caricate solo quando servono. +- Le sezioni pesanti si caricano alla prima apertura (`React.lazy`); i dati già letti + si mostrano subito mentre si aggiornano (`lib/memoria.ts`). + ## Comandi ```bash @@ -421,6 +502,10 @@ principale: **i tre schemi di riclassificazione devono arrivare allo stesso EBIT stesso utile**, perché sono tre presentazioni dello stesso risultato. Se una formula viene trascritta male, lì si spacca. +Lo stesso vale per le sezioni della 1.3.0: costo aziendale e orario del personale, +imposte e contributi di ogni regime, acconti e saldi, food cost e menu engineering +sono verificati su **conti fatti a mano** (`src/shared/engine/*.test.ts`). + Due test girano sul file Excel reale del consulente quando è presente nella cartella di lavoro; in CI vengono saltati, perché quel file non sta nella repo. diff --git a/package-lock.json b/package-lock.json index 6d5983b..ff6ebcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "daprodfinanza", - "version": "1.2.2", + "version": "1.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "daprodfinanza", - "version": "1.2.2", + "version": "1.3.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index b428a62..6a0c572 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daprodfinanza", - "version": "1.2.2", + "version": "1.3.0", "description": "Gestionale desktop di controllo di gestione per consulenti finanziari aziendali", "main": "./out/main/index.js", "author": "DaProdProduzioni",