Fatturazione elettronica B2B

di il
1159 risposte

1159 Risposte - Pagina 56

  • Re: Fatturazione elettronica B2B

    Buongiorno, mi scuso se la domanda è già stata fatta...
    E' possibile avere metodi diversi per trasmettere e ricevere le fatture?
    Mi spiego: per la trasmissione vorrei usare lo SDIFTP, le fatture ricevute dovrebbero andare al Commercialista.
    Pensavo quindi di accreditare il mio canale aziendale per la trasmissione via SDIFTP e comunicare ai miei fornitori il codice univoco del Commercialista in modo che riceva lui le fatture.
    Qualcuno mi sa dire se è possibile?
    Grazie mille.
  • Re: Fatturazione elettronica B2B

    Certo. Puoi anche usare le Pec in ricezione indicandolo nel sito agenzia entrate. Chiunque ti spedisca qualcosa (cioè al tuo codice fiscale) verrebbe consegnata alla pec che specifichi (che può essere anche il commercialista)
  • Re: Fatturazione elettronica B2B

    +m2+ ha scritto:


    1 quando vuoi, tanto fa fede data invio e non quanto ci scrivi
    2 non lo so, penso di si
    3 sembrerebbe che sia così, MA c'è la questione della conservazione. Tutte quelle che ho visto, finora, erano firmate cades
    Grazie... i dubbi insomma rimangono...

    avrei un ulteriore domanda... la marcatura temporale e' obbligatoria? va messo su ogni singola file?

    Ultima domanda una cosa piu facile e meno incasinata non la potevano fare?
  • Re: Fatturazione elettronica B2B

    La marcatura temporale no, perché fa testo quella che appone ade. È inutile in quanto attesta la data di esistenza del file, non quella di spedizione e tantomeno di consegna

    Che sia una porcheria penso sia opinione condivisibile : dubito che chi ci ha lavorato abbia mai emesso anche solo una fattura
  • Re: Fatturazione elettronica B2B

    +m2+ ha scritto:


    Certo. Puoi anche usare le Pec in ricezione indicandolo nel sito agenzia entrate. Chiunque ti spedisca qualcosa (cioè al tuo codice fiscale) verrebbe consegnata alla pec che specifichi (che può essere anche il commercialista)
    Grazie, il commercialista mi ha "ordinato" di comunicare il suo Codice Univoco, e quindi farò così
    Qualcuno ha già attivato lo SDIFTP?
  • Re: Fatturazione elettronica B2B

    Buongiorno, segnalo questo thread
    https://www.iprogrammatori.it/forum-programmazione/programmatori/fatturazione-elettronica-b2b-programmi-t36534.html
  • Re: Fatturazione elettronica B2B

    daspa ha scritto:


    Buongiorno a tutti! Il mio gestionale adattato a questa nuova fatturazione è pronto in tutto meno che le notifiche...
    Volvevo chiederVi se c'è qualcuno qui generoso da darmi una dritta su come sviluppare
    in VBA le notifiche ricevute dallo SDI. Spedirei tutti i file in xml tramite SMTP alla PEC di SDI
    E la gestione delle notifiche ??!! Mahhh
    Ringrazio tutti coloro che suggeriranno un consiglio, un po' di codice...
    Buona giornata, Davide
    ciao
    io ho utilizzato la libreria Chilkat per scaricare le ricevute via pop3 dalla PEC, ho estratto l'allegato sempre con Chilkat, e poi estrapolato i dati con il parser XML di microsoft.

    ti copio incollo la funzione che mi son fatto, codice VB6
    Private Function ProcXMLReceipt(ByVal FileName As String) As Boolean
        ' processa il file XML ed estrae il contenuto
        Dim IDXML As Long                   ' puntatore colonna ID tabella FatturePAExp, ricavato dal file XML ricevuta
        Dim ADOrsPAExp As ADODB.Recordset   ' recorset per tabella FatturePAExp
        Dim XMLReceiptType As String        ' tipo file ricevuta (vedi http://www.fatturapa.gov.it/export/fatturazione/sdi/Specifiche_tecniche_SdI_v1.1.pdf  pag. 32)
                    ' RC        Ricevuta di consegna
                    ' NS        Notifica di scarto
                    ' MC        Notifica di mancata consegna
                    ' NE        Notifica esito cedente / prestatore
                    ' MT        File dei metadati
                    ' EC        Notifica di esito cessionario / committente
                    ' SE        Notifica di scarto esito cessionario / committente
                    ' DT        Notifica decorrenza termini
                    ' AT        Attestazione di avvenuta trasmissione della fattura con impossibilità di recapito
        Dim XMLEsito As String              ' esito ricezione per receipttype = NE
        Dim InvoiceState As InvoiceStates   ' stato ricevuta
                    ' IS0_NoXML = 0           ' fattura presente su MagoXP ma XML non ancora generato
                    ' IS1_NotSent = 1         ' fattura presente su MagoXP e XML generato ma non ancora inviato al SdI
                    ' IS2_NotifScarto = 2     ' notifica di scarto da parte del SdI
                    ' IS3_AcceptSdI = 3       ' accettazione da parte dello SdI
                    ' IS4_RifiutataDest = 4   ' notifica di rifiuto da parte del destinatario
                    ' IS5_AcceptDest = 5      ' accettata dal destinatario
        Set ADOrsPAExp = New ADODB.Recordset          ' recorset per tabella FatturePAExp
        
        ' ****** dichiarazione oggetti XML per apertura file
        Dim oXML As DOMDocument60
        Dim nameXML As IXMLDOMNodeList
        Dim elemXML As IXMLDOMElement
        Set oXML = New DOMDocument60
        
        If FileName = "" Then Exit Function
        oXML.async = False
        If Not oXML.Load(XMLRecPath + FileName) Then
            Err.Raise oXML.parseError.errorCode, , oXML.parseError.reason
            GoTo ExitProcXMLReceipt
        Else
            ' ok, file aperto
            ' ricava numeratore progressivo fattura PA
            Set elemXML = oXML.documentElement
            Set nameXML = elemXML.selectNodes("NomeFile")
            ' se da errore 91 perchè non esiste il campo NomeFile
            If nameXML.length = 0 Then
                GoTo ExitProcXMLReceipt
            End If
            ' ricava l'id
            IDXML = Val(Mid$(nameXML.Item(0).text, 15, 5))
            ' ricava il tipo di documenti
            p1under = InStr(FileName, "_")
            p2under = InStr(p1under + 1, FileName, "_")
            XMLReceiptType = UCase$(Mid$(FileName, p2under + 1, 2))
            ' apre il recordset fatture esportate e cerca la fattura in oggetto
            Select Case DBActive
                Case 0:     ' verde
                    ADOrsPAExp.Open "SELECT * FROM FatturePAExp WHERE ID =" + Str$(IDXML), ADOconn, adOpenStatic, adLockOptimistic
                Case 1:     ' rosso
                    ADOrsPAExp.Open "SELECT * FROM FatturePAExp WHERE ID =" + Str$(IDXML), ADORedConn, adOpenStatic, adLockOptimistic
            End Select
            If Not (ADOrsPAExp.BOF = True And ADOrsPAExp.EOF = True) Then
                ' ok la ricevuta ha una corrispondenza di fattura emessa nella tabella
                ' aggiorna la tabella FatturePAExp con i dati della ricevuta XML
                ADOrsPAExp.Fields("ReceiptFileName") = Var2dbField(FileName, dbCTString)
                ADOrsPAExp.Fields("ReceiptType") = Var2dbField(XMLReceiptType, dbCTString)
                ADOrsPAExp.Fields("IdentificativoSdI") = Var2dbField(GetXMLNode(elemXML, "IdentificativoSdI"), dbCTString)
                Select Case XMLReceiptType
                    Case "RC"       ' ricevuta consegna
                        InvoiceState = IS3_AcceptSdI
                        ' 2018-07-04T14:58:32.000+02:00
                        ADOrsPAExp.Fields("DataOraRicezione") = DateXMLAgenziaEntrate2Date(Var2dbField(GetXMLNode(elemXML, "DataOraRicezione"), dbCTString))
                        ADOrsPAExp.Fields("DataOraConsegna") = DateXMLAgenziaEntrate2Date(Var2dbField(GetXMLNode(elemXML, "DataOraConsegna"), dbCTString))
                        ADOrsPAExp.Fields("DestinatarioDescr") = Var2dbField(GetXMLNode(elemXML, "Destinatario/Descrizione"), dbCTString)
                        ADOrsPAExp.Fields("ReceiptNote") = Var2dbField(GetXMLNode(elemXML, "Note"), dbCTText)
                    Case "NS"       ' notifica scarto
                        InvoiceState = IS2_NotifScarto
                        ' 2018-07-04T14:58:32.000+02:00
                        ADOrsPAExp.Fields("DataOraRicezione") = DateXMLAgenziaEntrate2Date(Var2dbField(GetXMLNode(elemXML, "DataOraRicezione"), dbCTString))
                        ADOrsPAExp.Fields("ReceiptNote") = Var2dbField(GetXMLNode(elemXML, "ListaErrori/Errore/Descrizione"), dbCTText)
                    Case "NE"       ' notifica esito
                        XMLEsito = GetXMLNode(elemXML, "EsitoCommittente/Esito")
                        Select Case XMLEsito
                            Case "EC01"     ' accettazione
                                InvoiceState = IS5_AcceptDest
                            Case "EC02"     ' rifiuto
                                InvoiceState = IS4_RifiutataDest
                        End Select
                        'ADOrsPAExp.Fields("NE-Esito") = Var2dbField(XMLEsito, dbCTString)
                        ADOrsPAExp.Fields("ReceiptNote") = Var2dbField(GetXMLNode(elemXML, "EsitoCommittente/Descrizione", True), dbCTText)
                    Case "DT"       ' decorrenza termini
                        InvoiceState = IS5_AcceptDest
                        ADOrsPAExp.Fields("ReceiptNote") = Var2dbField(GetXMLNode(elemXML, "Descrizione") + vbCrLf + " - Note: " + GetXMLNode(elemXML, "Note"), dbCTText)
                End Select
                ADOrsPAExp.Fields("InvoiceState") = Var2dbField(InvoiceState, dbCTNumMoney)
                ADOrsPAExp.Update
                ProcXMLReceipt = True
            Else
                ' manca la fattura corrispondente
                ProcXMLReceipt = False
            End If
            ADOrsPAExp.Close
        End If
    ExitProcXMLReceipt:
        Set ADOrsPAExp = Nothing
        Set elemXML = Nothing
        Set nameXML = Nothing
        Set oXML = Nothing
    End Function
    
    ovviamente questa è customizzata per il mio gestionale, te la dovrai adattae a seconda delle tue esigenze.
  • Re: Fatturazione elettronica B2B

    Grazie mille andwork!
    Gentilissimo. Poi vedrò di adattarlo...
    La libreria Chilkat è gratuita ??
  • Re: Fatturazione elettronica B2B

    daspa ha scritto:


    Grazie mille andwork!
    Gentilissimo. Poi vedrò di adattarlo...
    La libreria Chilkat è gratuita ??
    Costa circa 300 euro
  • Re: Fatturazione elettronica B2B

    Grazie +m2+! Qualcosa di open source in giro, no ?!!
    Ciao
  • Re: Fatturazione elettronica B2B

    daspa ha scritto:


    Grazie +m2+! Qualcosa di open source in giro, no ?!!
    Ciao
    Si, per togliere la firma uso openssl (gratis).
    la libreria (quella o altre) indispensabile per firmare
  • Re: Fatturazione elettronica B2B

    +m2+ ha scritto:


    1 quando vuoi, tanto fa fede data invio e non quanto ci scrivi
    2 non lo so, penso di si
    3 sembrerebbe che sia così, MA c'è la questione della conservazione. Tutte quelle che ho visto, finora, erano firmate cades
    I miei clienti le inviano firmate,però è successo la scorsa settimana che una fattura è stata inviata non firmata(per sbaglio).Ebbene è stata accettata dall'ade e consegnata al destinatario.Misteri???.
  • Re: Fatturazione elettronica B2B

    cpm ha scritto:


    +m2+ ha scritto:


    1 quando vuoi, tanto fa fede data invio e non quanto ci scrivi
    2 non lo so, penso di si
    3 sembrerebbe che sia così, MA c'è la questione della conservazione. Tutte quelle che ho visto, finora, erano firmate cades
    I miei clienti le inviano firmate,però è successo la scorsa settimana che una fattura è stata inviata non firmata(per sbaglio).Ebbene è stata accettata dall'ade e consegnata al destinatario.Misteri???.
    Le aziende private non hanno obbligo di firmarle
    l'obbligo esiste(va?) solo per fatture ad aziende pubbliche.
    Tu stavi parlando di aziende che fatturano a PA?
  • Re: Fatturazione elettronica B2B

    Puoi inviarle non firmare ai privati.
    ma, poi, come le conservi?
    Tra l'altro cosa succede se le invia un intermediario, magari attraverso altro intermediario? (commercialista + software House)
  • Re: Fatturazione elettronica B2B

    +m2+ ha scritto:


    daspa ha scritto:


    Grazie +m2+! Qualcosa di open source in giro, no ?!!
    Ciao
    Si, per togliere la firma uso openssl (gratis).
    la libreria (quella o altre) indispensabile per firmare
    Grazie +m2+. Io fatturo solo B2B & B2C quindi non mi interessa la firma. Esistono che tu sappia degli esempi di utilizzo con openssl in VBA?
    Che tu sappia. Ciao grazie ancora. Davide
Devi accedere o registrarti per scrivere nel forum
1159 risposte