In questo articolo
Business planning e pianificazione finanziaria avanzata, con formule
Impara a usare quantità e formule nella pianificazione finanziaria. Calcola ammortamenti e interessi in modo automatico. Crea funzioni per calcoli complessi, come quello dell'imposta sull'utile. La possibilità di inserire formule è disponibile in Banana Contabilità Plus solo con il piano Advanced.
Apri in Banana WebApp
Prova Banana Contabilità Plus sul tuo browser senza alcuna installazione. Personalizza il modello, inserisci le registrazioni e salva il file sul tuo computer.
Apri il modello in Banana WebAppDocumentazione del modello
La possibilità di inserire formule è disponibile in Banana Contabilità Plus solo con il piano Advanced. Aggiorna ora!
Questo file contiene esempi di registrazione nella tabella Preventivo che fanno uso della colonna Formula e anche delle colonne Quantità e Prezzo unitario.
Per le spiegazioni relative alla tabella Preventivo e alle colonne si veda la pagina tabella Preventivo.
Ricordarsi in particolare che i calcoli sono effettuati in ordine di data e non nella sequenza in cui sono state inseriti i movimenti di preventivo.
Colonne Quantità e Prezzo unitario
Nella vista Formula si vede anche la colonna Quantità e Prezzo unitario.
Vedi Previsioni con quantità e prezzi.
- Doc 10. Nella colonna Qt. vi è il numero di caffè venduti in un mese e nella colonna Prezzo/Unità il ricavo per singolo caffè.
Il programma calcola l'importo (colonna Importo). - I valori della colonna Qt e Prezzo possono essere inseriti anche in negativo, ma l'importo è convertito in positivo.
Formula nel linguaggio JavaScript
Vedi anche:
- Formule in Javascript nella tabella Preventivo.
- Esempi dell'uso delle formule nelle previsioni finanziaria.
La colonna Formula permette di inserire delle espressioni di calcolo nel linguaggio JavaScript.
- Se il risultato della formula è un numero viene ripreso come Importo.
- Doc. 21, 22 e 23: Si possono indicare numeri o espressioni matematiche.
- Doc 40 e 41. Il "//" indica che il testo è un commento
- Doc 42. Il testo contenuto fra /* e */ è un commento è non viene considerato parte della formula.
Errori nelle formule
Se vi sono errori:
- La riga con l'errore viene indicata in rosso.
- Il testo dell'errore viene visualizzato nella finestra "messaggi"
Per evitare continue segnalazioni, nel file d'esempio gli errori sono commentati (iniziano con "//").
Separatore punto e virgola ";"
In JavaScript ogni comando si conclude con un ";". Si possono concatenare le espressioni su una riga. Il valore di ritorno è il risultato dell'ultima espressione.
Separatore virgola ","
In JavaScript la virgola viene usata per separare gli argomenti in una funzione. Il separatore di virgola in questo caso separa le diverse espressioni e il risultato è quello dell'ultima espressione.
Non usare la virgola come separatore di decimale, perché nella formula è considerato un separatore di argomenti e quindi il valore numerico è troncato.
Separatore punto decimale "."
JavaScript usa il punto "." come separatore decimale. Indipendentemente dalle impostazione dei decimali impostati nel sistema operativo, si usa sempre il punto.
Semplici calcoli matematici
Nella formula si possono inserire calcoli matematici composti da semplici numeri.
Testi
I testi sono valori compresi fra virgolette o apici. Di regola non sono utilizzati nelle formule perché sono considerati i risultati numerici.
Nell'immagine che segue:
- Doc 70.
"Banana" fra virgolette è un testo.
Variabili
Le variabili di Javascript sono gli elementi più potenti della programmazione in quanto permettono di accedere alla memoria del computer con un nome, salvare e riprendere dei valori.
- Il nome della variabile deve iniziare con una lettera o un underscore.
- Le variabili devono prima essere definite tramite un assegnamento "nomevariabile = 100"
Esempi
- Doc 101.
Alla variabile importo viene assegnato il valore 100. - Doc 102.
Il contenuto della variabile importo viene ripreso. - Doc 103
Il contenuto della variabile importo viene ripreso e poi viene aggiunto 10. - Doc 104.
Alla variabile importo viene assegnato il contenuto della variabile importo con l'aggiunta di 10.
La variabile importo sarà uguale a 110. - Doc 105.
Questa formula viene eseguita mensilmente "Ripeti = M".- La prima volta 110+10 = 120
- La seconda volta 120 + 10 = 130 e così di seguito.
- Doc 106.
Se si toglie il commento ci sarà una segnalazione che alla variabile importo1 non è stata definita. - Doc 110.
Assegniamo alla variabile nome il testo "Banana".
Uso di variabili per calcoli successivi
Le variabili sono molto utili per memorizzare valori, che servono poi per i calcoli successivi.
- Doc 700-704.
Le vendite sono indicizzate.- Doc 700.
Fissiamo l'indice a 1 (100%).
Non usiamo né conto dare né conto avere perché la riga ci serve solo per memorizzare l'indice. - Doc 702.
Le vendite sono 1000 moltiplicato il valore dell'indice.
Usiamo la variabile vendite anche per calcolare i costi di acquisto moltiplicandolo per 0.2 (20 %).. - Doc 704.
A partire dal 1 marzo l'indice viene incrementato di 0.1 ogni mese.
Da questa data in poi il valore delle vendite aumenterà progressivamente.
- Doc 700.
- Doc 720-722
Assegniamo alla variabile vmese (vendite mese) il valore delle vendite del mese.
Controlli di flusso if .. then .. else
Si possono usare tutte le espressioni condizionali di JavaScript. L'argomento è ampio e si rimanda alle documentazioni sul linguaggio JavaScript.
Si segnala unicamente al riguardo che in JavaScript:
- Il segno uguale "=" è usato per assegnare un valore a una variabile "a=10"
- Per il confronto si usano invece due uguali successivi "==". If (10==10) {1};
- Doc 200-203
Se la condizione indicata fra le parentesi rotonde dopo la parola "if" è vera "(10==10)", allora nell'importo sarà indicato il risultato dell'espressione successiva contenuta nelle parentesi graffe "{1}".
Se non è vera "(10==9)" il valore dell'importo sarà zero.
Proprietà e funzioni
Si possono usare le funzioni predefinite di JavaScript, come quelle per esempio della libreria Math.
Per chiamare una funziona si indica il nome, seguito dalle parentesi tonde, fra cui ci sono i parametri della funzione.
Il numero di parametri dipende dalla funzione.
- Doc 220.
Math.min(10, 30, 2) ritorna il valore minimo dei valori specificati e separati dalle virgole.
Oggetto riga corrente "row"
L'oggetto row del tipo Banana.Document.Row si riferisce alla riga corrente.
La funzione value specificando il nome colonna xml ritorna il contenuto della specifica colonna.
Funzione predefinita debit e credit
La formula accetta come dei risultati solo dei valori positivi.
- La funzione debit ritorna il valore passato come parametro se questo è positivo.
- La funzione credit ritorna il valore passato come parametro con il segno invertito se il valore passato è negativo.
Funzioni contabili per tutto il periodo
Se si usano le funzioni specifiche del budget senza periodo ritorna il valore relativo alla situazione attuale.
Si ricorda che le righe sono elaborate in sequenza di data, quindi non vi sono valori successivi alla data della riga in elaborazione.
Funzioni contabili limitate a un periodo
Qui le funzioni sono usate con il periodo.
La funzione budgetBalance per il periodo corrente è sempre uguale alla funzione senza periodo, perché la funzione budgetBalance ritorna il saldo alla fine del periodo e comunque la riga in elaborazione è l'ultima del periodo corrente.
Per le funzioni budgetOpening e budgetTotal invece sono considerate anche la data di inizio e quindi il periodo è importante.
Funzioni per il calcolo dell'interesse
La funzione budgetInterest calcola l'interesse sul conto indicato considerando i giorni effettivi (365/365) alla data delle registrazione indicata.
Se si calcola l'interesse del mese corrente, si deve indicare come data la fine del mese.
- Doc 500.
Il secondo parametro rappresenta il tasso di interesse. Il 5 significa il 5%. Quando è positivo calcola l'interesse per i giorni nei quali il saldo si trovava in dare. - Doc 520.
Qui il tasso di interesse è negativo, quindi calcola l'interesse sui giorni in cui il saldo si trovava in avere.
Funzioni per il calcolo dell'imposta sull'utile
- Doc 600.
L'imposta sull'utile viene calcolata sul movimento nel periodo "budgetTotal" del gruppo finale del Conto Economico (in questo caso il 02).
credit(budgetTotal("Gr=02","YC"))*0.10- Ottieni il movimento del gruppo nell'anno corrente
budgetTotal("Gr=02","YC") - La funzione credit() ritorna il valore solo se è negativo e lo converte in positivo.
credit(budgetTotal("Gr=02","YC")) - Il risultato viene moltiplicato per 0.10 (percentuale 10%)
- Nel conto dare si deve indicare il conto imposte del conto economico.
- Nel conto avere si deve indicare il conto banca o il conto creditore erario.
- Ottieni il movimento del gruppo nell'anno corrente
Funzioni definite dall'utente
Nella tabella Documenti è stato aggiunto un file "_budget.js" dove si possono definire delle funzioni in Javascript che possono essere chiamate nella colonna formula.
Calcolo dell'imposta sull'utile con aliquota progressiva
- Doc 610
Viene dapprima calcolato l'utile e assegnato alla variabile - Doc 611
L'utile viene passato alla funzione calcolaimposte() che applica la percentuale d'imposta in base all'importo e ritorna l'imposta da pagare.
Altre funzioni definite dall'utente
- Doc 620
Viene chiamata la funzione test(), pure definita nel documento _budget.js, che ritorna semplicemente un valore.
calcoliamo poi la commissione
Colonna JRepeatNumber
Nell'oggetto riga corrente "row" nel campo JRepeatNumber viena salvato il numero della ripetizione quando ci sono delle righe che hanno il ripeti.
- La prima ripetizione è 0.
- La seconda ripetizione è 1 e poi via di seguito.
Il valore di JRepeatNumber viene usato se non è possibile usare una variabile normale per via che la ripetizione ha già sovrascritto il valore.
Usando invece il JRepeatNumber come proprietà di un oggetto si possono salvare tutte le sequenze e riprenderli successivamente,
Anteprima modello
Bar Luca's
Divisa Base: .
Contabilità in partita doppia
Gruppo | Conto | Descrizione | Somma in | Gr1 |
---|---|---|---|---|
BILANCIO | ||||
ATTIVI | ||||
CASSA | Cassa | 1 | ||
BANCA | Conto corrente bancario | 1 | ||
CLIENTI | Conto clienti | 1 | ||
MOBILIO | Mobilio | 1 | ||
INVENT | Inventario merci | 1 | ||
1 | TOTALI ATTIVI | 00 | 1 | |
PASSIVI | ||||
FORNIT | Fornitori / crediti | 2 | ||
PREST | Prestito | 2 | ||
CAPITALE | Capitale proprio | 2 | ||
UP | Utile o Perdita d'esercizio | 2 | 1 | |
2 | TOTALE PASSIVI | 00 | 1 | |
CONTO PERDITE E PROFITTI | ||||
RICAVI | ||||
VENDITE | Vendite | 4 | ||
INTATT | Interessi attivi bancari | 4 | ||
4 | TOTALE RICAVI | 02 | 1 | |
COSTI | ||||
PERSON | Spese personale | 3 | ||
ACQUST | Acquisto merce | 3 | ||
AFFITTO | Affitto e altre spese | 3 | ||
SPESAM | Spese amministrative | 3 | ||
INTPAS | Interessi su prestiti | 3 | ||
AMMORT | Ammortamenti | 3 | ||
3 | TOTALE COSTI | 02 | 1 | |
02 | Utile (-) o Perdita (+) da Conto economico | UP | 1 | |
00 | Differenza deve essere zero | |||