Fatturazione elettronica B2B

di il
1159 risposte

1159 Risposte - Pagina 65

  • Re: Fatturazione elettronica B2B

    In attesa del 1.1.2019 ed avendo ormai ultimato tutti i test , compreso la lettura della casella di posta in automatico, volevo verificare l'utilità di inserire direttamente sul file xml, che contiene la fattura, anche il pdf in base64.
    Però quando faccio il controllo ricevo l'avviso di file non conforme.
    Ripeto era solo una verifica personale. Qualcuno di voi l'ha fatto (vb6) ed ha avuto riscontri positivi?
    Grazie
    Dario
  • Re: Fatturazione elettronica B2B

    Io sì. Attenzione cr lf
  • Re: Fatturazione elettronica B2B

    dario46 ha scritto:


    In attesa del 1.1.2019 ed avendo ormai ultimato tutti i test , compreso la lettura della casella di posta in automatico, volevo verificare l'utilità di inserire direttamente sul file xml, che contiene la fattura, anche il pdf in base64.
    Però quando faccio il controllo ricevo l'avviso di file non conforme.
    Ripeto era solo una verifica personale. Qualcuno di voi l'ha fatto (vb6) ed ha avuto riscontri positivi?
    Grazie
    Dario
    No volevo farlo pure io ma sono ancora fermo alla possibilità di aggiungere più righe nel dettaglio. Ti chiedo una info così se finisco posso dedicarmici pure io al pdf anche se uso C# ma, almeno possiamo capire la causa della tua bocciatura. Il mio file XML con una sola riga di dettaglio passa il test Online ma, non riesco proprio a capire come poter aggiungere un secondo/Terzo etc etc TAG DatiBeniServizi. Ti chiedo scusa ma, per me il mondo dell'XML inizia ora quindi comprendimi se dirò delle cretinate.
    Io ho fatto la classica dichiarazione iniziale dei nodi e sotto nodi in classi vedi codice semplificato per l'esempio.

    public class FatturaElettronicaBody
    {
    //NODI non menzionati per far prma

    public DatiGenerali DatiGenerali;

    public DatiBeniServizi DatiBeniServizi;
    }



    public class DatiBeniServizi
    {
    #region FatturaElettronicaBody: Elemento Dati Beni/Servizi

    #region DatiBeniServizi

    #region DatiBeniServiziType

    public string Descrizione = string.Empty;
    public string Importo = string.Empty;

    #region DettaglioLinee

    #region DettaglioLineeType


    #endregion

    #endregion

    #region DatiRiepilogo

    #region DatiRiepilogoType

    #endregion

    #endregion

    #endregion

    #endregion



    #endregion

    public DatiIVA DatiIVA;
    }


    // dichiaro la classe che ospiterà tutti i campi
    DatiBeniServizi datibeniservizi = new DatiBeniServizi();


    // MI richiamo la mia Funzione/Metodo per avere il codice più ordinato dove andrò nel dettaglio sulla compilazione per singola riga
    try
    {
    Datibeniservizi(datibeniservizi);
    }
    catch (Exception ex)
    {
    MyLog mylog = new MyLog();
    mylog.log("WriteFatturaXML", ex.ToString());
    }

    // Dichiaro la mia classe che ospiterà tutti i nodi
    FatturaElettronicaSemplificata fatturaxml = new FatturaElettronicaSemplificata();
    //nodo non menzionato per far prima
    //nodo non menzionato per far prima
    //nodo non menzionato per far prima
    fatturaxml.FatturaElettronicaBody.DatiBeniServizi = datibeniservizi;

    A questo punto della parte del Body come si fa per poter aggiungere un secondo nodo con lo stesso nome per poi inserire le eventuali righe di dettaglio?
  • Re: Fatturazione elettronica B2B

    +m2+ ha scritto:


    Io sì. Attenzione cr lf
    Avevo notato che dopo aver inserito il pdf base64 tutti i LF erano preceduti da CR ed ora mi confermi il mio dubbio.
    Grazie
  • Re: Fatturazione elettronica B2B

    70076541 ha scritto:


    dario46 ha scritto:


    In attesa del 1.1.2019 ed avendo ormai ultimato tutti i test , compreso la lettura della casella di posta in automatico, volevo verificare l'utilità di inserire direttamente sul file xml, che contiene la fattura, anche il pdf in base64.
    Però quando faccio il controllo ricevo l'avviso di file non conforme.
    Ripeto era solo una verifica personale. Qualcuno di voi l'ha fatto (vb6) ed ha avuto riscontri positivi?
    Grazie
    Dario
    Io le righe multiple dettaglio le inserisco come <Dettagliorighe>
    descrizione
    con qta=0.00
    prezzo=0.00
    aliquotaiva 22 (o natura)


    No volevo farlo pure io ma sono ancora fermo alla possibilità di aggiungere più righe nel dettaglio. Ti chiedo una info così se finisco posso dedicarmici pure io al pdf anche se uso C# ma, almeno possiamo capire la causa della tua bocciatura. Il mio file XML con una sola riga di dettaglio passa il test Online ma, non riesco proprio a capire come poter aggiungere un secondo/Terzo etc etc TAG DatiBeniServizi. Ti chiedo scusa ma, per me il mondo dell'XML inizia ora quindi comprendimi se dirò delle cretinate.
    Io ho fatto la classica dichiarazione iniziale dei nodi e sotto nodi in classi vedi codice semplificato per l'esempio.

    public class FatturaElettronicaBody
    {
    //NODI non menzionati per far prma

    public DatiGenerali DatiGenerali;

    public DatiBeniServizi DatiBeniServizi;
    }



    public class DatiBeniServizi
    {
    #region FatturaElettronicaBody: Elemento Dati Beni/Servizi

    #region DatiBeniServizi

    #region DatiBeniServiziType

    public string Descrizione = string.Empty;
    public string Importo = string.Empty;

    #region DettaglioLinee

    #region DettaglioLineeType


    #endregion

    #endregion

    #region DatiRiepilogo

    #region DatiRiepilogoType

    #endregion

    #endregion

    #endregion

    #endregion



    #endregion

    public DatiIVA DatiIVA;
    }


    // dichiaro la classe che ospiterà tutti i campi
    DatiBeniServizi datibeniservizi = new DatiBeniServizi();


    // MI richiamo la mia Funzione/Metodo per avere il codice più ordinato dove andrò nel dettaglio sulla compilazione per singola riga
    try
    {
    Datibeniservizi(datibeniservizi);
    }
    catch (Exception ex)
    {
    MyLog mylog = new MyLog();
    mylog.log("WriteFatturaXML", ex.ToString());
    }

    // Dichiaro la mia classe che ospiterà tutti i nodi
    FatturaElettronicaSemplificata fatturaxml = new FatturaElettronicaSemplificata();
    //nodo non menzionato per far prima
    //nodo non menzionato per far prima
    //nodo non menzionato per far prima
    fatturaxml.FatturaElettronicaBody.DatiBeniServizi = datibeniservizi;

    A questo punto della parte del Body come si fa per poter aggiungere un secondo nodo con lo stesso nome per poi inserire le eventuali righe di dettaglio?
  • Re: Fatturazione elettronica B2B

    dario46 ha scritto:


    70076541 ha scritto:


    dario46 ha scritto:


    In attesa del 1.1.2019 ed avendo ormai ultimato tutti i test , compreso la lettura della casella di posta in automatico, volevo verificare l'utilità di inserire direttamente sul file xml, che contiene la fattura, anche il pdf in base64.
    Però quando faccio il controllo ricevo l'avviso di file non conforme.
    Ripeto era solo una verifica personale. Qualcuno di voi l'ha fatto (vb6) ed ha avuto riscontri positivi?
    Grazie
    Dario
    Io le righe multiple dettaglio le inserisco come <Dettagliorighe>
    descrizione
    con qta=0.00
    prezzo=0.00
    aliquotaiva 22 (o natura)


    No volevo farlo pure io ma sono ancora fermo alla possibilità di aggiungere più righe nel dettaglio. Ti chiedo una info così se finisco posso dedicarmici pure io al pdf anche se uso C# ma, almeno possiamo capire la causa della tua bocciatura. Il mio file XML con una sola riga di dettaglio passa il test Online ma, non riesco proprio a capire come poter aggiungere un secondo/Terzo etc etc TAG DatiBeniServizi. Ti chiedo scusa ma, per me il mondo dell'XML inizia ora quindi comprendimi se dirò delle cretinate.
    Io ho fatto la classica dichiarazione iniziale dei nodi e sotto nodi in classi vedi codice semplificato per l'esempio.

    public class FatturaElettronicaBody
    {
    //NODI non menzionati per far prma

    public DatiGenerali DatiGenerali;

    public DatiBeniServizi DatiBeniServizi;
    }



    public class DatiBeniServizi
    {
    #region FatturaElettronicaBody: Elemento Dati Beni/Servizi

    #region DatiBeniServizi

    #region DatiBeniServiziType

    public string Descrizione = string.Empty;
    public string Importo = string.Empty;

    #region DettaglioLinee

    #region DettaglioLineeType


    #endregion

    #endregion

    #region DatiRiepilogo

    #region DatiRiepilogoType

    #endregion

    #endregion

    #endregion

    #endregion



    #endregion

    public DatiIVA DatiIVA;
    }


    // dichiaro la classe che ospiterà tutti i campi
    DatiBeniServizi datibeniservizi = new DatiBeniServizi();


    // MI richiamo la mia Funzione/Metodo per avere il codice più ordinato dove andrò nel dettaglio sulla compilazione per singola riga
    try
    {
    Datibeniservizi(datibeniservizi);
    }
    catch (Exception ex)
    {
    MyLog mylog = new MyLog();
    mylog.log("WriteFatturaXML", ex.ToString());
    }

    // Dichiaro la mia classe che ospiterà tutti i nodi
    FatturaElettronicaSemplificata fatturaxml = new FatturaElettronicaSemplificata();
    //nodo non menzionato per far prima
    //nodo non menzionato per far prima
    //nodo non menzionato per far prima
    fatturaxml.FatturaElettronicaBody.DatiBeniServizi = datibeniservizi;

    A questo punto della parte del Body come si fa per poter aggiungere un secondo nodo con lo stesso nome per poi inserire le eventuali righe di dettaglio?
    Si okay ma, continua a sfuggirmi come fare a richiamare la classe istanziata per la creazione del TAG iniziale che sia un nome o l'atro poco importa perché quando arrivo al punto in cui passo: fatturaxml.FatturaElettronicaBody.DatiBeniServizi = datibeniservizi; la classe è già stata dichiara e non ho più modo di richiamare il public nomeClasse
  • Re: Fatturazione elettronica B2B

    Scusate se mi permetto, ma questo è, a mio parere, un classico caso in cui conviene lasciar perdere tecniche più o meno sofisticate a favore di "molto rozzo, ma che funziona molto bene".

    Posto di avere una struttura dati qualsiasi (lista di stringhe) nelle quali si possono aggiungere righe una alla volta,
    basta "rifare" esattamente il file di esempio dell'agenzia delle entrate.
    A quel punto diventa pressochè immediato "iniettarvi" i dati propri (presi da db tipicamente), con la certezza di aver ottenuto un XML conforme.

    Io, almeno, ho fatto così e in un'oretta tutto compreso ho "sfornato" le fatture.
  • Re: Fatturazione elettronica B2B

    Biagio De Franco ha scritto:


    Scusate, ho una domanda: lo Spesometro che avevamo fatto deve rimanere ancora attivo per la comunicazione delle fatture 2° semestre 2018 o le fatture del 2° semestre 2018 non si dovranno comunicare più?
    Grazie
    Per quello che so io i dati del 2° semestre 2018 vanno inviati come fatto finora. Per quanto riguarda i dati del 2019 lo Spesometro rimarrà solo per l'invio dei dati delle fatture estere (attive e passive). Non mi ricordo però la frequenza di invio, non vorrei sbagliarmi ma mi sembra mensile...
  • Re: Fatturazione elettronica B2B

    +m2+ ha scritto:


    Scusate se mi permetto, ma questo è, a mio parere, un classico caso in cui conviene lasciar perdere tecniche più o meno sofisticate a favore di "molto rozzo, ma che funziona molto bene".

    Posto di avere una struttura dati qualsiasi (lista di stringhe) nelle quali si possono aggiungere righe una alla volta,
    basta "rifare" esattamente il file di esempio dell'agenzia delle entrate.
    A quel punto diventa pressochè immediato "iniettarvi" i dati propri (presi da db tipicamente), con la certezza di aver ottenuto un XML conforme.

    Io, almeno, ho fatto così e in un'oretta tutto compreso ho "sfornato" le fatture.
    Ho fatto così anche io.
    Il risultato non è bellissimo a vedersi ma è molto più semplice.
  • Re: Fatturazione elettronica B2B

    jugin ha scritto:


    +m2+ ha scritto:


    Scusate se mi permetto, ma questo è, a mio parere, un classico caso in cui conviene lasciar perdere tecniche più o meno sofisticate a favore di "molto rozzo, ma che funziona molto bene".

    Posto di avere una struttura dati qualsiasi (lista di stringhe) nelle quali si possono aggiungere righe una alla volta,
    basta "rifare" esattamente il file di esempio dell'agenzia delle entrate.
    A quel punto diventa pressochè immediato "iniettarvi" i dati propri (presi da db tipicamente), con la certezza di aver ottenuto un XML conforme.

    Io, almeno, ho fatto così e in un'oretta tutto compreso ho "sfornato" le fatture.
    Ho fatto così anche io.
    Il risultato non è bellissimo a vedersi ma è molto più semplice.
    Sicuramente avete pure ragione ma, essendo che a me mancava solo questa parte non volevo "buttare" via tutto e ricominciare da capo. Per chi dovesse servire ho risolto dichiarando la classe come List e allo stesso tempo per non avere la ripetizione del TAG padre ho aggiunto un XmlElement così:

    [XmlElement("DatiBeniServizi", Type = typeof(DatiBeniServizi))]
    public List<DatiBeniServizi> DatiBeniServizi = new List<DatiBeniServizi>();
  • Re: Fatturazione elettronica B2B

    Riformulo meglio la domanda. E' prevista la possibilità di poter annullare una FE semplificata?
  • Re: Fatturazione elettronica B2B

    dario46 ha scritto:


    In attesa del 1.1.2019 ed avendo ormai ultimato tutti i test , compreso la lettura della casella di posta in automatico, volevo verificare l'utilità di inserire direttamente sul file xml, che contiene la fattura, anche il pdf in base64.
    Però quando faccio il controllo ricevo l'avviso di file non conforme.
    Ripeto era solo una verifica personale. Qualcuno di voi l'ha fatto (vb6) ed ha avuto riscontri positivi?
    Grazie
    Dario
    anch'io. passa il controllo senza problemi
                    ' allegato 1
                    If Dir(Allegato1) <> "" And Allegato1 <> "" Then
                        Set objNode1 = XMLCreateNode(objDoc, objNodeHeader, "Allegati")
                            XMLCreateNode objDoc, objNode1, "NomeAttachment", Mid(Allegato1, InStrRev(Allegato1, "\") + 1, Len(Allegato1))
                            pdot = InStr(Allegato1, ".")
                            If pdot <> 0 Then Extn = Right$(Allegato1, Len(Allegato1) - pdot)
                            Select Case LCase(Extn)
                                Case "zip", "rar", "7z":
                                    XMLCreateNode objDoc, objNode1, "AlgoritmoCompressione", Extn
                            End Select
                            XMLCreateNode objDoc, objNode1, "FormatoAttachment", Extn
                            XMLCreateNode objDoc, objNode1, "DescrizioneAttachment", "allegato 1"
                            IFile = FreeFile
                            Open Allegato1 For Binary Access Read As #IFile
                                ReDim tmpAttachContent(0 To LOF(IFile) - 1)
                                Get #IFile, , tmpAttachContent
                            Close #IFile
                            XMLCreateNode objDoc, objNode1, "Attachment", Base64Encode(tmpAttachContent)
                    End If
    
    Private Function XMLCreateNode(XMLDoc As DOMDocument60, ParentNode As IXMLDOMNode, NodeName As String, Optional NodeValue As String = "") As IXMLDOMNode
        ' crea un nodo nel documento XML
        Dim objNode As IXMLDOMNode
        
        'Create the node
        Set objNode = XMLDoc.createElement(NodeName)
        'Add the text if it has any
        If NodeValue <> "" Then
            objNode.text = NodeValue
        End If
        'Add the node to the document
        If ParentNode Is Nothing Then
            XMLDoc.appendChild objNode
        Else
            ParentNode.appendChild objNode
        End If
        Set XMLCreateNode = objNode
        Set objNode = Nothing
    End Function
    
    ' A Base64 Encoder/Decoder.
    '
    ' This module is used to encode and decode data in Base64 format as described in RFC 1521.
    '
    ' Home page: www.source-code.biz.
    ' Copyright 2007: Christian d'Heureuse, Inventec Informatik AG, Switzerland.
    '
    ' This module is multi-licensed and may be used under the terms
    ' of any of the following licenses:
    '
    '  EPL, Eclipse Public License, V1.0 or later, http://www.eclipse.org/legal
    '  LGPL, GNU Lesser General Public License, V2.1 or later, http://www.gnu.org/licenses/lgpl.html
    '  GPL, GNU General Public License, V2 or later, http://www.gnu.org/licenses/gpl.html
    '  AGPL, GNU Affero General Public License V3 or later, http://www.gnu.org/licenses/agpl.html
    '  AL, Apache License, V2.0 or later, http://www.apache.org/licenses
    '  BSD, BSD License, http://www.opensource.org/licenses/bsd-license.php
    '  MIT, MIT License, http://www.opensource.org/licenses/MIT
    '
    ' Please contact the author if you need another license.
    ' This module is provided "as is", without warranties of any kind.
    
    Option Explicit
    
    Private InitDone       As Boolean
    Private Map1(0 To 63)  As Byte
    Private Map2(0 To 127) As Byte
    
    ' Encodes a string into Base64 format.
    ' No blanks or line breaks are inserted.
    ' Parameters:
    '   S         a String to be encoded.
    ' Returns:    a String with the Base64 encoded data.
    Public Function Base64EncodeString(ByVal s As String) As String
       Base64EncodeString = Base64Encode(ConvertStringToBytes(s))
    End Function
    
    ' Encodes a byte array into Base64 format.
    ' No blanks or line breaks are inserted.
    ' Parameters:
    '   InData    an array containing the data bytes to be encoded.
    ' Returns:    a string with the Base64 encoded data.
    Public Function Base64Encode(InData() As Byte)
       Base64Encode = Base64Encode2(InData, UBound(InData) - LBound(InData) + 1)
    End Function
    
    ' Encodes a byte array into Base64 format.
    ' No blanks or line breaks are inserted.
    ' Parameters:
    '   InData    an array containing the data bytes to be encoded.
    '   InLen     number of bytes to process in InData.
    ' Returns:    a string with the Base64 encoded data.
    Public Function Base64Encode2(InData() As Byte, ByVal InLen As Long) As String
       If Not InitDone Then Init
       If InLen = 0 Then Base64Encode2 = "": Exit Function
       Dim ODataLen As Long: ODataLen = (InLen * 4 + 2) \ 3     ' output length without padding
       Dim OLen As Long: OLen = ((InLen + 2) \ 3) * 4           ' output length including padding
       Dim Out() As Byte
       ReDim Out(0 To OLen - 1) As Byte
       Dim ip0 As Long: ip0 = LBound(InData)
       Dim ip As Long
       Dim op As Long
       Do While ip < InLen
          Dim i0 As Byte: i0 = InData(ip0 + ip): ip = ip + 1
          Dim i1 As Byte: If ip < InLen Then i1 = InData(ip0 + ip): ip = ip + 1 Else i1 = 0
          Dim i2 As Byte: If ip < InLen Then i2 = InData(ip0 + ip): ip = ip + 1 Else i2 = 0
          Dim o0 As Byte: o0 = i0 \ 4
          Dim o1 As Byte: o1 = ((i0 And 3) * &H10) Or (i1 \ &H10)
          Dim o2 As Byte: o2 = ((i1 And &HF) * 4) Or (i2 \ &H40)
          Dim o3 As Byte: o3 = i2 And &H3F
          Out(op) = Map1(o0): op = op + 1
          Out(op) = Map1(o1): op = op + 1
          Out(op) = IIf(op < ODataLen, Map1(o2), Asc("=")): op = op + 1
          Out(op) = IIf(op < ODataLen, Map1(o3), Asc("=")): op = op + 1
          Loop
       Base64Encode2 = ConvertBytesToString(Out)
    End Function
    
    ' Decodes a string from Base64 format.
    ' Parameters:
    '    s        a Base64 String to be decoded.
    ' Returns     a String containing the decoded data.
    Public Function Base64DecodeString(ByVal s As String) As String
       If s = "" Then Base64DecodeString = "": Exit Function
       Base64DecodeString = ConvertBytesToString(Base64Decode(s))
    End Function
    
    ' Decodes a byte array from Base64 format.
    ' Parameters
    '   s         a Base64 String to be decoded.
    ' Returns:    an array containing the decoded data bytes.
    Public Function Base64Decode(ByVal s As String) As Byte()
       If Not InitDone Then Init
       Dim IBuf() As Byte: IBuf = ConvertStringToBytes(s)
       Dim ILen As Long: ILen = UBound(IBuf) + 1
       If ILen Mod 4 <> 0 Then Err.Raise vbObjectError, , "Length of Base64 encoded input string is not a multiple of 4."
       Do While ILen > 0
          If IBuf(ILen - 1) <> Asc("=") Then Exit Do
          ILen = ILen - 1
          Loop
       Dim OLen As Long: OLen = (ILen * 3) \ 4
       Dim Out() As Byte
       ReDim Out(0 To OLen - 1) As Byte
       Dim ip As Long
       Dim op As Long
       Do While ip < ILen
          Dim i0 As Byte: i0 = IBuf(ip): ip = ip + 1
          Dim i1 As Byte: i1 = IBuf(ip): ip = ip + 1
          Dim i2 As Byte: If ip < ILen Then i2 = IBuf(ip): ip = ip + 1 Else i2 = Asc("A")
          Dim i3 As Byte: If ip < ILen Then i3 = IBuf(ip): ip = ip + 1 Else i3 = Asc("A")
          If i0 > 127 Or i1 > 127 Or i2 > 127 Or i3 > 127 Then _
             Err.Raise vbObjectError, , "Illegal character in Base64 encoded data."
          Dim b0 As Byte: b0 = Map2(i0)
          Dim b1 As Byte: b1 = Map2(i1)
          Dim b2 As Byte: b2 = Map2(i2)
          Dim b3 As Byte: b3 = Map2(i3)
          If b0 > 63 Or b1 > 63 Or b2 > 63 Or b3 > 63 Then _
             Err.Raise vbObjectError, , "Illegal character in Base64 encoded data."
          Dim o0 As Byte: o0 = (b0 * 4) Or (b1 \ &H10)
          Dim o1 As Byte: o1 = ((b1 And &HF) * &H10) Or (b2 \ 4)
          Dim o2 As Byte: o2 = ((b2 And 3) * &H40) Or b3
          Out(op) = o0: op = op + 1
          If op < OLen Then Out(op) = o1: op = op + 1
          If op < OLen Then Out(op) = o2: op = op + 1
          Loop
       Base64Decode = Out
    End Function
    
    Private Sub Init()
       Dim c As Integer, i As Integer
       ' set Map1
       i = 0
       For c = Asc("A") To Asc("Z"): Map1(i) = c: i = i + 1: Next
       For c = Asc("a") To Asc("z"): Map1(i) = c: i = i + 1: Next
       For c = Asc("0") To Asc("9"): Map1(i) = c: i = i + 1: Next
       Map1(i) = Asc("+"): i = i + 1
       Map1(i) = Asc("/"): i = i + 1
       ' set Map2
       For i = 0 To 127: Map2(i) = 255: Next
       For i = 0 To 63: Map2(Map1(i)) = i: Next
       InitDone = True
    End Sub
    
    Private Function ConvertStringToBytes(ByVal s As String) As Byte()
       Dim b1() As Byte: b1 = s
       Dim l As Long: l = (UBound(b1) + 1) \ 2
       If l = 0 Then ConvertStringToBytes = b1: Exit Function
       Dim b2() As Byte
       ReDim b2(0 To l - 1) As Byte
       Dim p As Long
       For p = 0 To l - 1
          Dim c As Long: c = b1(2 * p) + 256 * CLng(b1(2 * p + 1))
          If c >= 256 Then c = Asc("?")
          b2(p) = c
          Next
       ConvertStringToBytes = b2
    End Function
    
    Private Function ConvertBytesToString(b() As Byte) As String
       Dim l As Long: l = UBound(b) - LBound(b) + 1
       Dim b2() As Byte
       ReDim b2(0 To (2 * l) - 1) As Byte
       Dim p0 As Long: p0 = LBound(b)
       Dim p As Long
       For p = 0 To l - 1: b2(2 * p) = b(p0 + p): Next
       Dim s As String: s = b2
       ConvertBytesToString = s
    End Function
  • Re: Fatturazione elettronica B2B

    Forse non mi sono spiegato.
    Il mio tentativo era di inserire in coda al file xml il pdf in base 64, senza allegare fisicamento il file al messaggio
    Dario
  • Re: Fatturazione elettronica B2B

    dario46 ha scritto:


    Forse non mi sono spiegato.
    Il mio tentativo era di inserire in coda al file xml il pdf in base 64, senza allegare fisicamento il file al messaggio
    Dario
    Non credo sia possibile...
  • Re: Fatturazione elettronica B2B

    Buongiorno,
    è qualche giorno che vi seguo e per alcune cose riguardo la fatturazione elettronica..
    In particolare non riesco a capire dove sia l'errore nell'estrazione dell'allegato presente su di una fattura elettronica.

    Sto cercando di implementare nel mio applicativo, un sistema di "auto-import" della fattura elettronica passiva che mi arriva dai miei fornitori..
    In particolare, l'allegato, all'interno del file XML è una stringa codificata in base64 che, per recuperare il file effettivo, devo:
    - Decodificare la stringa da base64 a TBytes
    - convertire in TBytes in stringa
    - salvare le info in un file
    - gestire il file
    ...(che nell'esempio che sto trattando, contiene un file pdf di una riga, giusto per prova)..

    Tramite tool online, ho estratto l'allegato dalla fattura xml (e lo vedo correttamente). Non riesco invece ad estrarre l'allegato direttamente da codice (sviluppo in Delphi XE6).

    la conversione da TBytes (array di bytes) a stream (sotto forma di stringa), non sembra fare il suo lavoro (come invece funziona correttamente in altre parti della fattura elettronica)..

    Qualcuno si è imbattuto sullo stesso problema?
    Come estraete l'allegato dalle fatture passive? (se avete code-snippet anche in altri linguaggi, cerco di interpretare)

    Grazie mille
    A
Devi accedere o registrarti per scrivere nel forum
1159 risposte