Fatt. servizi funebri committenti esteri

CASO 1

Fatturazione di servizi da fornitori ITALIANI a SOCIETA’ X che rifattura a committenti ITALIANI o ESTERI

La posizione espressa dall’Amministrazione Finanziaria nelle fattispecie relative al riaddebito del costo all’interno dei rapporti tra mandante (committente) e mandatario (SOCIETA’ X) è quella per cui non muta la natura del costo stesso il quale mantiene la configurazione che lo stesso ha nei rapporti tra mandatario (SOCIETA’ X) e il terzo che fornisce il servizio al mandatario (trasporto di persone, servizi funebri, servizi medici, autosoccorso, albergo, ecc…).

ES:SERVIZIO FUNEBRE    fatturazione →                SOCIETA’ X                                   fatturazione →                    COMMITTENTE ITA o ESTEROEsente ex art. 10, n. 27), D.P.R. 633/72                              Esente ex art. 10, n. 27), D.P.R. 633/72 HOTEL                               fatturazione →               SOCIETA’ X                                    fatturazione →     COMMITTENTE ITA o ESTEROImponibile con aliquota IVA 10%                                              Imponibile con aliquota IVA 10% 

Diverso è però il caso in cui l’oggetto dell’attività del mandatario (SOCIETA’ X) è proprio quello della ricerca e organizzazione dei servizi (singoli o aggregati) che se fossero semplicemente riaddebitati al committente seguirebbero la regola di cui sopra ma una volta riorganizzati (a seguito della ricerca del fornitore, contatto dello stesso e organizzazione del servizio stesso) assumono una natura nuova che non può essere assimilata alla natura del servizio originariamente offerto dal terzo al mandatario.

In tali circostanze il riaddebito del servizio (singolo o dei servizi aggregati) al proprio mandante costituisce l’oggetto proprio dell’attività di impresa della SOCIETA’ X assumendo quindi un nuovo e distinto connotato rispetto alla natura del servizio a monte acquistato.

Il servizio, nuovo e diverso rispetto a quello acquisito dal mandatario, deve essere fatturato al mandante applicando il regime proprio della prestazione globalmente eseguita con risultati anche ai fini dell’applicazione del principio di territorialità dell’imposta o dell’imponibilità dell’operazione.

ES:SERVIZIO FUNEBRE    fatturazione →                       SOCIETA’ X                      fatturazione →          COMMITTENTE ITALIANOEsente ex art. 10, n. 27), D.P.R. 633/72                              Imponibile con aliquota IVA ordinaria 22% SERVIZIO FUNEBRE   fatturazione →                         SOCIETA’ X                     fatturazione →          COMMITTENTE (UE)Esente ex art. 10, n. 27), D.P.R. 633/72                                  Applicazione art. 7ter – REVERSE CHARGE – SERVIZIO FUNEBRE   fatturazione →                        SOCIETA’ X                        fatturazione →       COMMITTENTE EXTRA-UEEsente ex art. 10, n. 27), D.P.R. 633/72                                   Applicazione art. 7ter – OPERAZIONE NON SOGGETTA –

Bilancio, Errori non rilevanti

La correzione di errori non rilevanti commessi in esercizi precedenti è contabilizzata nel Conto economico dell’esercizio in cui si individua l’errore (documento OIC 29, § 48).
Un errore è rilevante se può, individualmente o insieme ad altri errori, influenzare le decisioni economiche che gli utilizzatori assumono in base al bilancio. La rilevanza di un errore dipende dalla dimensione e dalla natura dell’errore stesso ed è valutata a seconda delle circostanze (§ 46).
Le scritture contabili relative alla correzione di errori che determinano la riduzione di un’attività o l’incremento di una passività oppure l’incremento di un’attività o la riduzione di una passività sono le seguenti:




Sopravvenienze passiveaAttività/passività





Attività/passivitàaSopravvenienze attive


Il documento OIC 29, a differenza della precedente versione (2014) del principio contabile, non fornisce indicazioni precise in merito alla classificazione delle sopravvenienze derivanti dalla correzione di errori non rilevanti (posto che si fa genericamente riferimento al Conto economico dell’esercizio).
La dottrina che si è occupata della materia ha, quindi, ipotizzato di classificare tali componenti di reddito, sulla base della loro natura, nella voce di Conto economico interessata dall’errore.
Tale impostazione risulta però in contrasto con gli emendamenti recentemente apportati al documento OIC 12 (rilasciati in data 29.12.2017 e applicabili ai bilanci con esercizio avente inizio a partire dall’1.1.2017 o da data successiva).
Pertanto, si potrebbe ipotizzare di rilevare la correzione di errori non rilevanti attinenti ai ricavi delle vendite e delle prestazioni (voce A.1) nella voce “A.5 – Altri ricavi e proventi” oppure nella voce “B.14 – Oneri diversi di gestione”.

Contributo integrativo e soggettivo Cassa previdenziale

Domanda – Sono un architetto iscritto all’ordine degli Architetti di Padova e conseguentemente anche all’Inarcassa, ovvero la Cassa Nazionale di Previdenza ed Assistenza per gli Architetti.
Annualmente pago il contributo integrativo nella misura del 4% sul volume d’affari ed il contributo soggettivo in relazione al reddito professionale complessivamente determinato e dichiarato sia in sede di Modello Dichiarazione Redditi che di Dichiarazione Annuale alla Cassa di Previdenza.
Quando emetto la fattura addebito al mio cliente il 4% del contributo integrativo determinato sul compenso; alla fine dell’anno il cliente mi rilascia idonea certificazione attestante le ritenute effettuata e versate nei termini di legge.
Sulla Certificazione Unica viene indicato esclusivamente il compenso e non già l’imponibile IVA (comprensivo quindi anche del 4% di contributo integrativo).
Volevo sapere se la Certificazione così come predisposta dal mio cliente è corretta e se il contributo integrativo posso indicarlo tra gli oneri deducibili alla voce contributi previdenziali.

Risposta – Così come evidenziato in sede di quesito i liberi professionisti iscritti alle Casse di Previdenza e di Assistenza professionali in relazione alla loro iscrizione ad Albi, Ruoli o Collegi, devono versare due tipi di contribuzione:
il contributo integrativo: calcolato nella misura del 4% dell’onorario; è imponibile IVA; è addebitato a titolo di rivalsa al cliente in occasione della fatturazione del compenso; non è imponibile ai fini della Ritenuta d’Acconto IRPEF del 20% trattenuta in occasione del pagamento del corrispettivo al professionista;
il contributo soggettivo: calcolato sul reddito libero professionale (individuale o anche in forma associata).

Per ciascuno dei due sopraddetti contributi le Casse hanno stabilito dei limiti (di volume d’affari e di reddito professionale) “minimali” per i quali sono stabiliti dei contributi fissi; superati tali limiti si dovrà conguagliare i contributi in relazione alle aliquote stabilite, calcolate sulle eccedenze rispetto agli importi minimali.

Il contributo integrativo addebitato a titolo di rivalsa in fattura al cliente non costituisce reddito imponibile ai fini IRPEF (non è infatti neppure assoggettato a Ritenuta d’Acconto del 20% in sede di pagamento) e non va dichiarato nella Certificazione Unica che il cliente rilascia al fine di attestare le ritenute d’acconto effettuate e versate.

In tal senso si esprimono anche le istruzioni per la compilazione della Certificazione le quali precisano che al punto 4 della sezione – Dati relativi alle somme erogate – in deroga alla previsione generale dell’indicazione dell’ammontare lordo del compenso corrisposto, precisa che non va indicato il contributo integrativo (del 2% o del 4%) destinato alle Casse professionali, in quanto non fa parte del compenso.

In relazione a ciò quindi il contributo non dovrà essere indicato nel Quadro “RE” della Dichiarazione dei redditi in quanto non costituente compenso e quindi reddito professionale.

Per quanto concerne invece la deducibilità dei contributi previdenziali in sede di dichiarazione dei redditi mentre nessun dubbio o limite è da imputarsi al contributo soggettivo si deve operare diversamente per quanto attiene il contributo integrativo.

Infatti, nel caso in cui il professionista abbia emesso fatture per un importo di onorario complessivo uguale o superiore al limite minimo sul quale calcolare il contributo integrativo questo non potrà essere portato in deduzione dal reddito complessivo, essendo lo stesso oggetto di addebito a titolo di rivalsa in sede di fatturazione a carico del cliente mandante.

Viceversa nel caso in cui il professionista abbia emesso fatture per attività professionale d’importo inferiore al volume d’affari minimo la parte di contributo integrativo che non trova rivalsa nell’addebito al cliente, in quanto rimasto completamente a carico del contribuente potrà essere portato in deduzione in sede di dichiarazione dei redditi ai sensi dell’art. 10 comma 1 lettera e) del TUIR.

In tal senso si è espressa chiaramente l’Agenzia delle Entrate nelle sue Risoluzioni n. 69/E del 18.05.2006 e n. 25/E del 03.03.2011.
Ricapitolando quindi con riferimento al caso di specie:
la certificazione rilasciata dal Cliente e non indicante il contributo integrativo del 4% è corretta;
il Professionista potrà eventualmente portare in deduzione la quota parte di contributo integrativo, per la quota minimale, non addebitata, per assenza di fatturato sufficiente a titolo di rivalsa ai clienti, e pertanto rimasta effettivamente a suo carico. A tale proposito infatti si precisa che nel caso in cui il Libero Professionista “volutamente” non abbia esercitato il diritto di rivalsa sarà preclusa la deducibilità dello stesso.

Aiuti di Stato. CoronaVirus

Vi informo su quello che si puo’ fare, situazione fiscale:

Smart working, 730 e CU 2020, versamenti delle imposte, aiuti e bonus alle imprese, privacy

Per fronteggiare l’emergenza epidemiologica da Coronavirus, il Governo ha varato un articolato pacchetto di misure, alcune delle quali rivolte alle imprese ed ai professionisti della “zona rossa”, altre invece di interesse per tutto il territorio nazionale.

Per il lavoro
• Smart working: è consentito il ricorso allo smart working, fino al 31 luglio 2020, in tutto il territorio nazionale per ogni rapporto di lavoro subordinato, anche in assenza degli accordi individuali
• Ammortizzatori sociali: è previsto il potenziamento nella “zona rossa” e alle aziende situate nelle Regioni Lombardia, Veneto ed Emilia Romagna è data la possibilità di optare per la CIG in deroga per la durata di un mese. Vedremo in che modo in tutta ITALIA.
• Indennizzo mensile di 500 euro: a favore di lavoratori autonomi assicurati presso l’INPS, residenti o domiciliati in uno dei comuni della “zona rossa” o che, alla medesima data, svolgano attività lavorativa in uno dei medesimi comuni è previsto un indennizzo mensile esente da tassazione di 500 euro per un massimo di 3 mesi

Per le scadenze fiscali
• CU e 730: proroga dei termini di presentazione delle Certificazioni uniche 2020, del modello 730/2020 e dei dati necessari alla predisposizione della dichiarazione dei redditi precompilata, per tutti i contribuenti e sostituti d’imposta dell’intero territorio nazionale
• Versamenti sospesi: per il settore turistico-alberghiero (dell’intero territorio nazionale) e per i soggetti che hanno la residenza, la sede legale o la sede operativa nei comuni della “zona rossa”, ovvero che risiedono al di fuori della “zona rossa”, ma si avvalgono di intermediari che vi sono ubicati

Per le imprese
• Imprese turistiche: rimborso dei titoli di viaggio e dei pacchetti turistici cancellati per motivi legati all’emergenza
• Crisi d’impresa: differimento al 15 febbraio 2021 dell’entrata in vigore degli obblighi di segnalazione a carico degli organi di controllo e revisori legali dei conti, nonché dei creditori pubblici qualificati
• Fondo PMI: accesso gratuito e prioritario alla garanzia per le imprese operanti nella “zona rossa”, comprese quelle del settore agroalimentare, con possibile estensione ad altre aree e settori

Per i professionisti
• Formazione professionale: riduzione dei crediti obbligatori richiesti nel 2020

Per la privacy
• Raccolta dei dati: i datori di lavoro non possono raccogliere informazioni sulla presenza di sintomi da coronavirus dei propri dipendenti e dei loro contatti più stretti o, comunque, rientranti nella sfera extra lavorativa

Per la Pubblica amministrazione
• Smart working: il ricorso al lavoro agile diventa obbligatorio
• Retribuzione: obbligo di corrispondere la retribuzione in caso di malattia con ricovero ospedaliero o assenza per malattia dovuta al coronavirus, compresi i periodi di quarantena.

Per la giustizia
• Attività giudiziara: sospensione dei termini e il rinvio delle udienze processuali

Il CIN in python

Ho trovato questo link molto interessate con il dettaglio della composizione dei codici IBAN.

In particolare è interessante il meccanismo di calcolo del codice di controllo CIN che riporto qui:

Nel corso del calcolo si usano le due seguenti successioni numeriche:Successione per le posizioni dispari: 1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,14,16,10,22,25,24,23,27,28,26Successione per le posizioni pari: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28

Si parte dalla stringa di 22 caratteri ottenuta accostando ABI, CAB e conto corrente:

Scorrendo questa stringa da sinistra a destra, ogni carattere occupa in essa una posizione che è considerata dispari (caratteri primo, terzo, quinto, eccetera) oppure pari (caratteri secondo, quarto, sesto, eccetera). A ciascun carattere si attribuisce un peso, ricavato dall’una o dall’altra successione in base al criterio di parità, e tutti questi pesi vengono sommati.

Conviene chiarire il procedimento con un esempio.

Si prende il primo carattere, che di solito è numerico, ma in teoria potrebbe essere alfabetico. Se il carattere è 0 oppure A, gli si assegna come peso 1 (primo elemento della successione per le posizioni dispari), se è 1 oppure B gli si assegna il peso 0 (secondo elemento), se è 2 oppure C il peso 5 (terzo elemento) e così via.

Ciò fatto, si passa al secondo carattere della stringa e qui entra in gioco la successione per le posizioni pari. Quindi si assegna il peso 0 se il carattere è0 oppure A, il peso 1 se è 1 oppure B, il peso 2 se è 2 oppure C, eccetera.

Passando al terzo carattere si riprende la successione per le posizioni dispari e si procede fino a esaurire tutti i caratteri della stringa, alternando l’uso delle due successioni.

I pesi via via ottenuti vengono sommati e il risultato di questa somma viene diviso per 26, prendendo il resto di tale divisione.

In conclusione, il codice CIN è il carattere alfabetico che ha la posizione corrispondente a tale resto, cominciando a contare da 0, vale a dire A corrisponde a 0, B corrisponde a 1, C corrisponde a 2 e così via fino a Z che corrisponde a 25.

Calcolo del codice di controllo CIN in IBAN con Python

Ho fatto questa breve implementazione in Python che si può utilizzare in diverse modalità:

Questa, predefinita, prevede vengano passati da linea di comando, come argomenti, il codice Abi, Cab e il conto corrente.

# encoding: utf-8

import sys

def CalcolaCin(abi, cab, cc):
    checkiban = str(abi) + str(cab) + str(cc)

    alfa = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]

    posdis = [1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,14,16,10,22,25,24,23,27,28,26]
    pospar = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]

    ri = 0
    cr = 0
    cs = 0
    resto = 0
    i = 0

    for p in checkiban:
        i = i +1
        if p.isdigit(): #se numerico
            if i % 2 == 1: # dispari
                #print "-->POSIZIONE PARI: %s VAL:%s" % (i,str(p))
                cs = cs + posdis[int(p)]
                #print "RISULTATO:%s\n" % (str(posdis[int(p)]))

            if i % 2 == 0: # pari
                #print "-->POSIZIONE DISPARI: %s VAL:%s" % (i,str(p))
                cs = cs + pospar[int(p)]
                #print "RISULTATO:%s\n" %(str(pospar[int(p)]))
        else: # se alfanumerico
            if i % 2 == 1: # dispari
                #print "-->POSIZIONE PARI: %s VAL:%s" % (i,str(p))
                cs =  cs + posdis[int(alfa.index(p))]
                #print "RISULTATO:%s\n" % (str(posdis[int(p)]))

            if i % 2 == 0: # pari
                #print "-->POSIZIONE DISPARI: %s VAL:%s" % (i,str(p))
                cs =  cs + pospar[int(alfa.index(p))]

    #print "CHECKSUM: %s" % cs
    ri = cs /26
    #print "RISULTATO INTERO: %s" % ri

    cr = 26 * ri
    resto = cs - cr
    #print "RESTO: %s" % resto

    print "IL TUO CODICE CIN: %s" % alfa[resto]

#abi = raw_input("Inserire il codice ABI:")
#cab = raw_input("Inserire il codice CAB:")
#cc = raw_input("Inserire il numero di conto corrente:")

#CalcolaCin(abi,cab,cc)
CalcolaCin(sys.argv[1],sys.argv[2],sys.argv[3])

Ho commentato le parti di debug, che possono essere utili per la verifica della procedura, e la parte di input diretto che può essere usata per richiedere un input esplicito all’utente, in questo caso si possono modificare le ultime righe in questo modo:

abi = raw_input("Inserire il codice ABI:")
cab = raw_input("Inserire il codice CAB:")
cc = raw_input("Inserire il numero di conto corrente:")

CalcolaCin(abi,cab,cc)
#CalcolaCin(sys.argv[1],sys.argv[2],sys.argv[3])

Calcolo dei check digits (CIN Europeo) su IBAN in Python

#Il codice BBAN (Basic Bank Account Number) è un codice internazionale che contiene le coordinate bancarie nazionali.
    #In Italia esso è lungo 23 caratteri ed è costituito dal semplice accostamento di CIN, ABI, CAB e conto corrente. 

    #1 A destra del codice BBAN si aggiunge la stringa IT00.
    bban = cin + abi + cab + cc + "IT00"
    print "BBAN:%s" % (bban)

    #2 Nella stringa così ottenuta si sostituiscono i caratteri alfabetici con un numero di due cifre ottenuto dalla posizione della lettera nell'alfabeto a cui va sommato 9. 
    #Così, ad esempio, A diventa 10, B diventa 11, C diventa 12 e così via fino a Z, che diventa 35.
    sban = ''
    for adigit in bban:
        p = 0
        if adigit in alfa:
            for achar in alfa:
                p = p +1
                if adigit==achar:
                    cc = p + 9
        else:
            cc = adigit
        sban = sban + str (cc)
    
    #3 In questo modo si ottiene un numero di almeno 30 cifre e si considera il resto della divisione fra tale numero e 97. Il resto di tale divisione è un numero compreso fra 0 e 96.
    ci = int(sban) % 97
    resto = 98 - ci

    #4 Infine il resto ottenuto al punto 3 va sottratto da 98 e si ottiene così il codice desiderato, che è un numero compreso fra 2 e 98.
    #se il numero è di una sola cifra, occorre anteporre uno zero (così si hanno sempre due caratteri, cioè 02, 03 fino a 09), per fare questo utilizziamo la funzione zfill. 
    print "CHECK DIGITS:%s" % (str(resto).zfill(2))

Csv, fatture

Nel corso di un test per un cliente ho creato questo piccolo codice per leggere da un file csv, contenente delle date di fatturazione con relative condizioni di pagamento, di cui calcolare le corrette scadenze per alcuni casi.
E’ una problematica molto frequente nelle applicazioni gestionali, quindi calcolare i 30/60 giorni e così via.Calcolando anche il fine mese per alcune condizioni specifiche.

Ho pensato di pubblicarlo perchè contiene in poco codice diversi esempi di utilizzo delle funzioni, dei loop e soprattutto dell’utilizzo basico della programmazione a oggetti in python.

Il file csv

Il file csv si ipotizza sia nella stessa cartella di esecuzione del codice e contenga i dati in questo formato:

NrFattura;DataFattura;ModalitaDiPagamento
12440;01/01/2019;DF
12441;10/07/2019;DFFM
12442;19/02/2019;DF60
12443;21/12/2019;DF
12444;01/04/2019;DFFM
12445;12/04/2019;DF60
12446;25/04/2019;DFFM
12447;01/05/2019;DFFM
12448;22/06/2019;DF60

Il codice

# -*- coding: utf-8 -*-
from datetime import date, datetime, time, timedelta
from dateutil.relativedelta import relativedelta

#Definiamo la classe fatture
class Invoice():
    Number = 0
    Date = date.today()
    Modpag = ""

    def __init__(self, var1, var2, var3):
        self.Number = var1
        self.Date = var2
        self.Modpag = var3

#Prepariamo qualche utilità
class utils():

    def last_day_of_month(any_day):
        next_month = any_day.replace(day=28) + timedelta(days=4)
        return next_month - timedelta(days=next_month.day)

    def strToDatetime(strdate):
        return datetime.strptime(strdate, "%d/%m/%Y")

    def set_due_date(mode, invoice_date):
        due_date = utils.strToDatetime(invoice_date)
        if mode.strip() == "DFFM":
            due_date = utils.strToDatetime(invoice_date)  + timedelta(days=60)
            due_date = utils.last_day_of_month(due_date)
        elif mode.strip() == "DF60":
            due_date = utils.strToDatetime(invoice_date)  + timedelta(days=60)
        return due_date.strftime("%d/%m/%Y")

    def sort_and_calc(invoices):
        for inv in sorted(invoices, key=lambda date: utils.strToDatetime(date.Date)):
            due_date = utils.set_due_date(inv.Modpag,inv.Date)
            print ("DATA:%s  NUMERO:%s DATA CALCOLATA:%s PAGAMENTO:%s"%(str(inv.Date),str(inv.Number),due_date,str(inv.Modpag)))

def main():
    invoices = []
    c = 0
    """ Main """
    invoices_file = open('test_invoices.csv', 'r')
    line = invoices_file.readline()
    while line:
        c = c+1
        print(line)
        data = line.split(";")
        try:
            int(data[0]) #Verifichiamo sia una riga valida (Es.:Verificando il numero fattura sia valido)
            item = Invoice(data[0],data[1],data[2]) #Mettiamo i campi nella classe Invoice
            invoices.append(item) #Aggiungiamo alla lista di fatture
        except:
            print ("Riga non elaborata")
        line = invoices_file.readline()
    invoices_file.close()

    utils.sort_and_calc(invoices) #Eseguiamo l'ordinamento e il calcolo delle scadenze

if __name__ == "__main__":
    main()

Python: data

Semplice esempio di trattamento date in Python:

# Data e ora di oggi

order_date = datetime.now()

# Aggiungiamo 15 giorni
order_due = order_date + timedelta(days=15)

# Formattiamo in formato stringa all’occorrenza

order_due_date = order_due.strftime(“%Y-%m-%d”)

# Inviamo l’output a schermo

print(order_due_date)

# Output

2019-07-19