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