In questo articolo
Banana Contabilità utilizza i dati della contabilità e della pianificazione per generare automaticamente saldi, valori di Preventivo, report e confronti tra Preventivo e Consuntivo.
Questa pagina descrive la logica con cui il programma elabora questi dati e permette di comprendere come vengono generati i valori previsionali.
Il giornale di calcolo
La base delle elaborazioni contabili e previsionali è il giornale di calcolo.
Si tratta di una struttura dati interna che Banana Contabilità crea automaticamente per elaborare le informazioni presenti nel file. Il giornale di calcolo viene utilizzato per calcolare, tra gli altri:
- Bilancio
- Conto economico
- Schede conto
- Rendiconti IVA
- valori di Preventivo
- confronti tra Preventivo e Consuntivo.
Il giornale di calcolo contiene i movimenti necessari alle elaborazioni, compresi i saldi iniziali, le registrazioni effettive e i movimenti previsionali.
Il processo può essere rappresentato in modo semplificato così:
Dati contabili e di Preventivo → Giornale di calcolo → Valori calcolati → Report e confronti
Per gli sviluppatori, i movimenti del giornale di calcolo sono accessibili anche tramite l'API contabile con la funzione Journal.
Creazione del giornale di calcolo
Per elaborare contabilità e previsioni, Banana Contabilità crea automaticamente un giornale di calcolo interno basato sui dati inseriti dall'utente.
Nel giornale vengono generate le righe necessarie a rappresentare gli effetti contabili di ogni movimento, compresi i saldi iniziali.
Ogni riga contiene le informazioni necessarie alle elaborazioni, tra cui:
- origine del movimento, per distinguere i dati correnti dai dati di Preventivo
- tipo di operazione, come saldo iniziale, registrazione, riporto o compensazione
- data di competenza
- descrizione
- conto
- tipo di conto, ad esempio conto normale, centro di costo o centro di profitto
- importo in moneta base
- importo nella moneta del conto
- eventuali informazioni aggiuntive provenienti dalla registrazione.
Nel giornale di calcolo gli importi positivi rappresentano movimenti in Dare, mentre gli importi negativi rappresentano movimenti in Avere.
Il giornale di calcolo viene ricreato automaticamente durante il ricalcolo. Il programma:
- genera le righe relative alla contabilità effettiva
- genera le righe relative al Preventivo
- esegue i calcoli necessari
- utilizza i risultati per aggiornare valori, report e stampe.
Per le elaborazioni previsionali Banana Contabilità utilizza un motore di calcolo basato sulla partita doppia. Questo permette di elaborare i dati secondo una logica uniforme anche quando la pianificazione viene utilizzata con diversi tipi di contabilità.
Generazione dei valori correnti (effettivi)
Per calcolare i valori correnti, Banana Contabilità aggiunge automaticamente al giornale di calcolo le righe relative alla contabilità effettiva.
I valori correnti vengono generati utilizzando:
- i saldi iniziali presenti nella tabella Conti
- le registrazioni contabili inserite nella tabella Registrazioni.
Saldi iniziali
Per ogni conto che contiene un saldo iniziale, il programma crea automaticamente una riga nel giornale di calcolo con:
- la data di apertura della contabilità
- il conto
- l'importo del saldo iniziale.
Queste righe rappresentano la situazione iniziale della contabilità e costituiscono la base per i calcoli successivi.
Movimenti contabili
Successivamente il programma aggiunge le righe generate dalle registrazioni contabili effettive.
Ogni registrazione può produrre più righe nel giornale di calcolo, ad esempio per:
- conto Dare
- conto Avere
- conto IVA
- centri di costo
- centri di profitto
- segmenti.
Per ogni conto interessato viene generata una riga con il relativo importo:
- positivo per i movimenti in Dare
- negativo per i movimenti in Avere.
Questo metodo permette al programma di elaborare in modo uniforme saldi, movimenti, bilanci, report e confronti con il Preventivo.
Generazione dei valori di Preventivo
Per elaborare i valori previsionali, Banana Contabilità crea automaticamente le righe di Preventivo all'interno del giornale di calcolo.
Le righe di Preventivo vengono generate utilizzando:
- i saldi iniziali presenti nella tabella Conti
- i movimenti inseriti nella tabella Preventivo
- oppure i valori della colonna Preventivo delle tabelle Conti e Categorie, se la tabella Preventivo non è presente.
Saldi iniziali
Come per i valori correnti, anche per il Preventivo il programma utilizza i saldi iniziali presenti nella tabella Conti.
Per ogni conto con un saldo iniziale viene generata automaticamente una riga di Preventivo che rappresenta la situazione iniziale della pianificazione finanziaria.
Movimenti di pianificazione
Quando viene utilizzata la tabella Preventivo, il programma genera automaticamente le righe previsionali partendo dai movimenti inseriti nella pianificazione.
La logica è simile a quella delle registrazioni effettive: per ogni movimento vengono generate le righe necessarie a rappresentarne gli effetti sui conti interessati.
Possono essere elaborati:
- movimenti con importi inseriti manualmente
- movimenti con formule di calcolo
- movimenti basati su quantità e prezzi
- movimenti ripetitivi.
Se un movimento interessa più conti o altri elementi contabili, il programma genera le relative righe nel giornale di calcolo.
Movimenti ripetitivi
Per le operazioni ricorrenti, Banana Contabilità permette di utilizzare i movimenti ripetitivi nella tabella Preventivo.
Sulla base del codice di ripetizione, il programma genera automaticamente i movimenti futuri per il periodo necessario alla previsione.
Le ripetizioni vengono determinate utilizzando:
- la data iniziale
- la data finale
- il codice di ripetizione.
Ad esempio, se nel mese di gennaio viene inserito un affitto con ripetizione mensile, il programma genera automaticamente i relativi movimenti per i mesi successivi.
Se un movimento è impostato al giorno 31, nei mesi che non dispongono di 31 giorni il programma utilizza automaticamente l'ultimo giorno disponibile del mese.
Allo stesso modo, se un movimento è definito come operazione di fine mese, le date successive vengono adattate automaticamente all'ultimo giorno di ciascun mese.
I movimenti ripetitivi possono inoltre contenere:
- formule di calcolo
- quantità
- prezzi unitari
- centri di costo
- segmenti
- codici IVA.
Questo meccanismo permette di costruire proiezioni anche su periodi estesi senza inserire manualmente ogni singolo movimento futuro.
Preventivo annuale senza tabella Preventivo
Se la tabella Preventivo non viene utilizzata, Banana Contabilità genera automaticamente le righe previsionali a partire dai valori presenti nella colonna Preventivo delle tabelle Conti e Categorie.
In questo caso il programma:
- determina il numero di mesi del periodo contabile
- genera i valori previsionali per ogni mese
- suddivide il valore annuale nei diversi periodi.
Eventuali differenze dovute agli arrotondamenti vengono corrette automaticamente nell'ultimo periodo.
Questo meccanismo permette di utilizzare nei report anche il Preventivo inserito direttamente nei conti, senza disporre del dettaglio movimento per movimento della pianificazione di precisione.
Al termine della generazione, le righe previsionali vengono ordinate cronologicamente per consentire la corretta elaborazione dei calcoli.
Calcolo della colonna Importo
Per ogni movimento della tabella Preventivo, Banana Contabilità determina l'importo da utilizzare nel calcolo della previsione.
L'importo viene determinato secondo il seguente ordine di priorità:
- Formula
- Quantità × Prezzo unitario
- Importo inserito manualmente
Se è presente una formula, il programma utilizza il risultato della formula.
Se non è presente una formula, ma sono indicati quantità e prezzo unitario, l'importo viene calcolato moltiplicando i due valori.
Negli altri casi viene utilizzato il valore inserito nella colonna Importo.
Questa priorità permette di utilizzare nella stessa tabella movimenti con importi fissi, importi calcolati sulla base di quantità e prezzi oppure valori determinati dinamicamente tramite formule.
Risoluzione delle formule in JavaScript
Le formule della tabella Preventivo vengono elaborate mediante un interprete JavaScript integrato in Banana Contabilità.
Quando viene creato il giornale di calcolo, il programma inizializza l'ambiente necessario all'esecuzione delle formule previsionali.
Inizializzazione dell'interprete
Prima di eseguire le formule, l'interprete JavaScript viene inizializzato caricando:
- gli script predefiniti di Banana Contabilità
- il contenuto del file
_budget.js, se presente nella tabella Documenti.
Il file _budget.js può essere utilizzato per:
- inizializzare variabili personalizzate
- definire funzioni di calcolo specifiche
- definire automatismi personalizzati per la pianificazione.
Sequenza di elaborazione delle formule
Le formule vengono elaborate progressivamente seguendo l'ordine temporale dei movimenti.
Se più movimenti hanno la stessa data, viene mantenuto il relativo ordine di elaborazione.
Durante il calcolo, lo stato dell'interprete JavaScript viene mantenuto, permettendo alle formule successive di utilizzare valori o variabili determinati dalle elaborazioni precedenti.
Anche le formule contenute nei movimenti ripetitivi vengono elaborate secondo la sequenza cronologica dei movimenti generati.
L'ordine dei movimenti può quindi influenzare il risultato delle formule che dipendono da valori calcolati precedentemente.
Gestione multi-moneta e IVA
Nelle contabilità multi-moneta:
- viene prima calcolato l'importo nella moneta del conto
- successivamente viene calcolato il controvalore in moneta base.
Se non è presente una formula specifica per la moneta base, Banana Contabilità utilizza il cambio previsto dal sistema per calcolare il controvalore.
Nelle registrazioni con IVA, il programma ricalcola automaticamente l'imposta sulla base dell'importo definitivo del movimento.
Calcoli progressivi nel tempo
Le formule vengono elaborate progressivamente lungo la sequenza temporale della pianificazione.
Questo significa che ogni movimento può utilizzare saldi, valori e risultati calcolati fino a quel momento.
Ad esempio, se un movimento di febbraio contiene una formula che legge il saldo di un conto, il programma considera i movimenti elaborati fino a quel momento e non quelli dei mesi successivi.
Questo approccio permette di ottenere simulazioni finanziarie coerenti con l'evoluzione temporale della pianificazione.
Calcolo della colonna Totale della tabella Preventivo
La colonna Totale della tabella Preventivo viene calcolata automaticamente e indica l'importo complessivo del movimento previsionale riferito al periodo contabile impostato nelle proprietà del file.
- Per un'operazione unica, il valore della colonna Totale corrisponde all'importo del movimento.
- Per un'operazione ricorrente, il Totale corrisponde alla somma delle ripetizioni che rientrano nel periodo contabile.
- La colonna Totale rimane vuota quando il movimento è precedente o successivo al periodo contabile definito nel file.
Calcolo dei valori per periodo
Una volta generato il giornale di calcolo, Banana Contabilità lo utilizza per calcolare Bilancio, Conto economico, Schede conto e le altre elaborazioni.
Per ciascun periodo richiesto vengono determinati sia i valori correnti sia quelli di Preventivo.
Per ogni conto possono essere calcolati:
- saldo iniziale del periodo
- movimenti Dare
- movimenti Avere
- movimento complessivo del periodo
- saldo finale.
Il saldo finale deriva dal saldo iniziale e dai movimenti compresi nel periodo.
Poiché ogni movimento del giornale di calcolo ha una data, gli stessi dati possono essere elaborati per periodi diversi, ad esempio mese, trimestre, semestre o anno.
Confronto tra Preventivo e Consuntivo
Poiché i dati correnti e quelli di Preventivo vengono elaborati secondo una struttura coerente, Banana Contabilità può confrontarli direttamente.
Nei report è possibile visualizzare:
- valore corrente o Consuntivo
- valore di Preventivo
- scostamento assoluto
- scostamento percentuale.
Gli scostamenti rappresentano la differenza tra i valori previsti e quelli effettivamente registrati e permettono di verificare in quale misura l'andamento reale corrisponde alla pianificazione.
Il confronto consente di:
- verificare il raggiungimento degli obiettivi
- individuare differenze tra valori previsti ed effettivi
- analizzare gli scostamenti di costi e ricavi
- confrontare la liquidità prevista con quella effettiva
- monitorare l'evoluzione economica e finanziaria.
Il dettaglio sulla visualizzazione e sull'analisi di questi valori è disponibile nella pagina Report previsionali.
Proiezioni miste
Banana Contabilità permette anche di creare elaborazioni che combinano dati effettivi e dati previsionali.
In una proiezione mista:
- fino a una determinata data vengono utilizzati i dati effettivi della contabilità
- dalla data successiva vengono utilizzati i dati di Preventivo.
Si ottiene così una previsione aggiornata che combina i risultati già registrati con la pianificazione del periodo futuro.
Ad esempio, durante l'anno è possibile utilizzare i dati effettivi dei mesi già trascorsi e completare l'anno con i valori previsionali dei mesi successivi.
Le proiezioni miste sono una funzionalità avanzata e possono essere ottenute tramite:
- script
- Web Server
- API di Banana Contabilità.
Ricalcolo dei dati previsionali
I valori previsionali dipendono dai dati presenti nel file. Quando questi dati cambiano, Banana Contabilità ricalcola le elaborazioni necessarie e aggiorna i risultati.
Ricalcolo automatico
Il ricalcolo viene normalmente eseguito automaticamente quando vengono modificati dati che influenzano la pianificazione o quando viene richiesta un'elaborazione.
Il ricalcolo può avvenire, ad esempio, quando:
- vengono modificati i movimenti della tabella Preventivo
- cambia il periodo contabile
- viene modificata la tabella Conti
- vengono aggiornate le registrazioni contabili
- viene richiesto un report o una stampa.
Dopo il ricalcolo vengono aggiornati i valori che dipendono dalla pianificazione, tra cui:
- valori di Preventivo nelle tabelle Conti e Categorie
- colonna Totale della tabella Preventivo
- report previsionali
- confronti tra Preventivo e Consuntivo.
Quando è necessario il ricalcolo manuale
Alcune modifiche utilizzate indirettamente dalle formule possono richiedere un ricalcolo manuale.
Questo può avvenire, ad esempio, quando vengono modificati:
- la tabella Codici IVA
- il file
_budget.js - altri file JavaScript utilizzati nelle formule previsionali.
In questi casi è necessario utilizzare il comando Ricontrolla e ricalcola contabilità.
Prestazioni nelle pianificazioni complesse
Il tempo necessario per il ricalcolo dipende dalla quantità e dalla complessità dei dati da elaborare, in particolare da:
- numero di conti e gruppi
- numero di movimenti di Preventivo
- numero di movimenti ripetitivi generati
- presenza e complessità delle formule
- durata del periodo di pianificazione.
Più esteso è il periodo di pianificazione, maggiore può essere il numero di movimenti che Banana Contabilità deve generare ed elaborare.
Nelle pianificazioni particolarmente estese o complesse, il ricalcolo automatico continuo può rallentare l'inserimento dei dati. In questi casi è possibile attivare il ricalcolo manuale da File > Proprietà file > Opzioni > Ricalcolare i totali manualmente.
Quando questa opzione è attiva, i valori vengono aggiornati utilizzando il comando Ricalcola Totali.