lunedì 7 dicembre 2015

FASE IX: INSERIRE I CALCOLI DELLE ALIQUOTE ED I TOTALI



Il nostro ultimo problema era che la ricevuta facesse i calcoli in automatico e, soprattutto, che fossero corretti, anche se abbiamo molte aliquote.
Andiamo quindi nella modalità struttura del nostro report RICEVUTA (se non riuscite, provate a cliccare sul report con il tasto destro) ed inseriamo delle nuove caselle di testo con l’apposito pulsante.
Io ho immaginato di inserire una falsa aliquota al 5% per i contributi previdenziali, che chiameremo PREV e una falsa IVA al 20%, poi ognuno la personalizzerà a seconda di quanto deve (purtroppo) versare.
Aggiungerò quindi 5 caselle di testo nel “piè di pagina IDRICEVUTA”, mettendole una sotto l’altra per il momento.
Ricordate che avevamo fatto copia e incolla della casella COSTO? Ora nell’etichetta della copia scriveremo “Costo totale” e nella finestra delle proprietà andremo anche a rinominare la casella di testo: “altro -> nome elemento -> COSTO_TOT”. Poi, al posto della scritta COSTO all’interno della casella di testo digiteremo:  =[QUANTITA]*[COSTO]
In questo modo la casella di testo calcolerà automaticamente il totale in base alla quantità per ogni singola prestazione.
A questo punto dobbiamo decidere se i nostri totali costituiscono l’imponibile, al quale vanno aggiunte le imposte o se sono il totale da pagare, al quale vanno sottratte le imposte.

CASO 1: TOTALE = IMPONIBILE
Chiamiamo la prima casella di testo IMPONIBILE (e la etichettiamo come Imponibile). Nel campo scriveremo =Somma([QUANTITA]*[COSTO]). Nel nostro esempio dovrebbe dare un totale di 500,00 euro.
La seconda casella sarà PREV e scriveremo =Round([IMPONIBILE]*5/100;2)
La funzione Round è fondamentale per dire ad Access di considerare per i calcoli solo le posizioni decimali decise da noi (in questo caso 2, che è l’ultimo numero della formula), altrimenti il programma utilizzerà tutti i numeri dopo la virgola per i calcoli, ma poi arrotonderà il risultato, sballando a volte i conti di qualche centesimo, cosa che potrebbe essere di poco conto ma sicuramente non gradita ai clienti, al commercialista e anche al fisco. Grazie alla funzione Round dovremmo invece riuscire ad ottenere delle somme esatte.
Compiliamo quindi le altre tre caselle che saranno:
TOTALE  =Round([IMPONIBILE]+[PREV];2)
IVA  =Round([TOTALE]*20/100;2)
TOTALE DA PAGARE  =Round([TOTALE]+[IVA];2)
Il campo TOTALE tra le due aliquote serve solo al programma per fare i calcoli e se vogliamo, possiamo non stamparlo nella ricevuta. Per renderlo non visibile nel report andiamo in finestra delle proprietà e clicchiamo “formato -> visibile -> no”.

Riassumendo:
Totale riga  =[QUANTITA]*[COSTO]
Totale imponibile  =Somma([QUANTITA]*[COSTO])
Totale aliquote   =Round([Totale]*”%aliquota”/100;2)
Totale generale   =Round([Casella1]+[Casella2];2)

CASO 2: TOTALE = TOTALE DA PAGARE
Chiamiamo l’ultima casella di testo TOT_PAG (e la etichettiamo come Totale da pagare). Nel campo scriveremo =Somma([QUANTITA]*[COSTO]). Nel nostro esempio dovrebbe dare un totale di 500,00 euro.
La penultima casella sarà IVA e scriveremo =Round([TOT_PAG]*100/120;2)
La funzione Round è fondamentale per dire ad Access di considerare per i calcoli solo le posizioni decimali decise da noi (in questo caso 2, che è l’ultimo numero della formula), altrimenti il programma utilizzerà tutti i numeri dopo la virgola per i calcoli, ma poi arrotonderà il risultato, sballando a volte i conti di qualche centesimo, cosa che potrebbe essere di poco conto ma sicuramente non gradita ai clienti, al commercialista e anche al fisco. Grazie alla funzione Round dovremmo invece riuscire ad ottenere delle somme esatte.
Compiliamo quindi le altre tre caselle che saranno (da sotto a sopra):
TOTALE  =Round([TOT_PAG]-[IVA];2)
PREV  =Round([TOTALE]*100/105;2)
IMPONIBILE  =Round([TOTALE]-[PREV];2)

Il campo TOTALE tra le due aliquote serve solo al programma per fare i calcoli e se vogliamo possiamo non stamparlo nella ricevuta. Per renderlo non visibile nel report andiamo in finestra delle proprietà e clicchiamo “formato -> visibile -> no”.

Riassumendo:
Totale riga  =[QUANTITA]*[COSTO]
Totale generale  =Somma([QUANTITA]*[COSTO])
Totale aliquote   =Round([Totale]*100/”%aliquota+100”;2)
Totale parziale   =Round([Casella1]-[Casella2];2)

Nessun commento:

Posta un commento