Tratto dallo speciale:

Gestione dei compensi professionali con Access

di Nicola Santangelo

Pubblicato 16 Aprile 2014
Aggiornato 23 Luglio 2021 17:25

logo PMI+ logo PMI+
Come realizzare un database per la contabilità dei compensi per le prestazioni di professionisti: dal ricevimento fattura alla stampa delle certificazioni.

L’impresa che riceve prestazioni professionali con ritenuta d’acconto, è obbligata a presentare ogni anno la relativa certificazione dei compensi, dal quale si evincono tutti i pagamenti effettuati per conto del professionista, le trattenute operate sui compensi e il successivo versamento all’Erario.

Di fondamentale importanza, quindi, diviene l’utilizzo di un gestionale o, in alternativa, la realizzazione di un database. L’obiettivo finale sarà proprio lo sviluppo delle certificazioni dei compensi, che curi la gestione dei professionisti nel loro insieme: dalla ricezione delle fatture attive fino al loro pagamento e dai versamenti delle ritenute all’Erario allo sviluppo delle certificazioni per ciascun professionista. Per fare questo creiamo un nuovo database Access che chiameremo Certificazione_compensi.

Scarica l’esempio

Iniziamo con l’inserimento della tabella Professionisti che dovrà contenere i dati anagrafici dei percipienti; quindi i campi Ragione_sociale di tipo testo, chiave primaria, indicizzato con duplicati non ammessi, Indirizzo, Citta, Cap, Prov, Partita_IVA di tipo testo indicizzato con duplicati non ammessi. Infine, per completare la tabella potremmo aggiungere i campi Telefono e Email.

Completata la tabella relativa ai professionisti si dovrà inserire quella chiamata Fatture, in cui dovranno essere indicati i dati contenuti nelle fatture dei professionisti e le informazioni relative a: pagamento fattura stessa, ritenute lavoratori autonomi e date di versamento a Erario. Sarà composta dai seguenti campi: IDFattura di tipo Contatore, Chiave Primaria, Indicizzato con duplicati non ammessi, Numero di tipo numerico, dimensione intero lungo, non indicizzato, Data_Fattura di tipo Data/Ora formato Data in cifre, Ragione_Sociale di tipo testo indicizzato con duplicati ammessi.

Per permettere un collegamento tra il campo Ragione_Sociale della tabella Fatture con l’omonimo campo della tabella Professionisti bisognerà indicare nelle proprietà di ricerca la visualizzazione di una casella combinata associata alla tabella Professionisti. Altra indicazione di fondamentale importanza è la colonna associata contenente il valore a cui è impostato il controllo, il numero di colonne da visualizzare con la relativa intestazione.

Completeremo la tabella Fatture con il campo Descrizione di tipo testo e con i campi Onorario, CPA, IVA, Spese_NI (nel quale saranno indicate le eventuali spese non imponibili) e Ritenuta_Acconto che saranno di tipo numerico, precisione doppia. Infine dovranno essere inseriti l’importo pagato al professionista e quello versato all’Erario con le relative date, e un ulteriore campo che chiameremo IDOpzione di tipo numerico, indicizzato con duplicati ammessi e che abbia un valore predefinito pari a 1. Questo campo tornerà utile al momento della stampa delle certificazioni.

Le due tabelle appena create dovranno essere relazionate tramite il campo Ragione_Sociale. La relazione dovrà essere di uno a molti e, ad essa, dovrà essere applicata l’integrità referenziale e il contestuale aggiornamento campi ed eliminazione record correlati a catena.

Per completare l’architettura del nostro database è necessario creare la tabella Opzioni che conterrà un record modificabile. Questo perché, nel momento della stampa delle certificazioni, è necessario indicare un range temporale (solitamente dal 01/01 al 31/12). La tabella Opzioni sarà composta da soli tre campi: IDOpzione di tipo numerico con valore predefinito 1, Dal e Al di tipo Data/Ora. Anche in questo caso il campo IDOpzione della tabella Opzioni dovrà essere relazionato con l’omonimo campo della tabella Fatture. Per rendere il database più user friendly applicheremo le maschere alle tabella appena create utilizzando l’autocomposizione, funzione che permette di creare maschere sulla base dei campi e delle indicazioni selezionate.

Una volta creata la maschera della fattura sarà possibile personalizzarla con ulteriori informazioni che non erano state incluse nella tabella, come ad esempio il totale fattura e il totale da pagare al professionista. Poiché queste informazioni sono il risultato di una somma algebrica, sarà necessario inserire una casella di testo, che chiameremo Totale_Fattura e indicare nel campo Origine controllo delle proprietà del campo (è possibile richiamare la finestra delle proprietà selezionando la casella su cui bisogna agire e accedere al menu Visualizza, quindi Proprietà) la formula: =[ONORARIO]+[CPA]+[IVA]+[SPESE_NI]

La stessa tecnica sarà utilizzata per realizzare il campo contenente il netto da pagare al professionista inserendo nel campo Origine controllo la seguente formula:

=[TOTALE_FATTURA]-[RITENUTA_ACCONTO]

Durante la realizzazione della tabella Opzioni è necessario richiamare le proprietà della maschera e indicare No sui campi Consenti eliminazioni e Consenti aggiunte.

Conoscere le ritenute da versare all’Erario in tempo è utile all’impresa per adempiere correttamente ai propri obblighi fiscali. Entro il 16 del mese successivo, infatti, l’impresa deve versare all’Erario le trattenute sui compensi dei lavoratori autonomi. Per fare questo è necessario inserire una query, che chiameremo Q_Liquidazione_Trattenute con la seguente istruzione SQL:

SELECT DATA_PAGAMENTO, RAGIONE_SOCIALE, NUMERO, DATA_FATTURA, DESCRIZIONE, RITENUTA_ACCONTO FROM FATTURE WHERE TRIM(DATA_PAGAMENTO) “” AND DATA_VERSAMENTO IS NULL OR TRIM(DATA_VERSAMENTO) = “” ORDER BY DATA_PAGAMENTO ASC

In questo modo la query restituirà l’elenco di tutte le trattenute da versare all’Erario. Ad essa verrà associata un report che ci consentirà di ottenere una stampa da conservare fra i documenti contabili al fine di ottenere un immediato riscontro in sede di controllo di gestione. Per fare questo utilizzeremo l’autocomposizione report, utilizzando come base di dati la query appena creata. Nel piè di pagina report inseriremo un campo che conterrà la somma delle ritenute da versare all’Erario contenente la formula: =SOMMA([RITENUTA_ACCONTO])

Infine, dovremo realizzare la stampa delle certificazione dei compensi. La tecnica da utilizzare anche in questo caso prevede la realizzazione di una query e di un report. La query, che chiameremo Q_Certificazione_Compensi avrà la seguente istruzione SQL:

SELECT PROFESSIONISTI.RAGIONE_SOCIALE, PROFESSIONISTI.INDIRIZZO, PROFESSIONISTI.CITTA, PROFESSIONISTI.CAP, PROFESSIONISTI.PROV, PROFESSIONISTI.PARTITA_IVA, FATTURE.NUMERO, FATTURE.DATA_FATTURA, FATTURE.DESCRIZIONE, FATTURE.ONORARIO, FATTURE.CPA, FATTURE.IVA, FATTURE.SPESE_NI, FATTURE.DATA_PAGAMENTO, FATTURE.PAGAMENTO, FATTURE.DATA_VERSAMENTO, FATTURE.VERSAMENTO
FROM PROFESSIONISTI LEFT JOIN FATTURE
ON PROFESSIONISTI.RAGIONE_SOCIALE = FATTURE.RAGIONE_SOCIALE WHERE DATA_PAGAMENTO >= Forms![OPZIONI]![DAL] AND DATA_PAGAMENTO <= Forms![OPZIONI]![AL]
ORDER BY FATTURE.DATA_FATTURA

Poiché tale query filtra i dati in base ai valori delle opzioni, è indispensabile che la maschera Opzioni sia aperta al momento del lancio della query. In caso contrario, l’istruzione genererà un messaggio di errore. In tal caso sarà comunque possibile creare una Macro che, aprirà la maschera Opzioni prima del lancio della query. A questo punto possiamo associare un report alla query per la realizzazione delle certificazioni dei compensi ai professionisti. I dati del report da creare dovranno essere raggruppati per il campo RAGIONE_SOCIALE in modo da permettere lo sviluppo di singole pagine per ogni professionista. Per fare ciò è necessario indicare nelle proprietà del piè di pagina Ragione_Sociale il valore “Dopo sezione” nel campo Interruzione pagina. L’utilizzo di questo semplice database snellisce e ottimizza la gestione dei professionisti seguendo attentamente il percorso che va dal ricevimento della fattura fino alla stampa delle certificazioni.