In questo articolo

Modelli Banana Contabilità

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.

Inizia con questo modello

Documentazione del modello

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

    Conti
    Gruppo Conto Descrizione Gr
        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
           
        PASSIVI  
      FORNIT Fornitori / crediti 2
      PREST Prestito 2
      CAPITALE Capitale proprio 2
    UP   Utile o Perdita d'esercizio 2
    2   TOTALE PASSIVI 00
           
        CONTO PERDITE E PROFITTI  
        RICAVI  
      VENDITE Vendite 4
      INTATT Interessi attivi bancari 4
    4   TOTALE RICAVI 02
           
        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
           
    02   Utile (-) o Perdita (+) da Conto economico UP
           
    00   Differenza deve essere zero  
           

    Aiutaci a migliorare la documentazione

    Sono benvenuti suggerimenti per come migliorare questa pagina.

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

    Condividi questo articolo: Twitter | Facebook | LinkedIn | Email