In questo articolo

    Business planning e pianificazione finanziaria avanzata, con formule

    Universale
    Contabilità in partita doppia
    Formazione

    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.

    Aprire in Banana Contabilità Plus Web

    Provate Banana Contabilità Plus sul vostro browser senza alcuna installazione. Personalizzate il modello, inserite le registrazioni e salvate il file sul vostro computer.

    Apri il modello nel browser

    Documentazione 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:

    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 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.

    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

    Tabella: Conti
    Gruppo 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    
             

    Aiutaci a migliorare la documentazione

    Sono benvenuti suggerimenti per come migliorare questa pagina.

    Informaci quale tema necessita di una spiegazione migliore o come chiarire meglio un argomento.

    Condividi questo articolo: Twitter | Facebook | LinkedIn | Email