Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Home Blogs | Home | Login | Contact | My Profile | RSS | About | Cerca

C# - Come creare la Fattura Elettronica per la Pubblica Amministrazione (FatturaPA)

C# - Come creare la Fattura Elettronica per la Pubblica Amministrazione (FatturaPA) Vediamo un po prima che cosa è e come è formata e poi passiamo alla creazione degli oggetti e del file XML della FatturaPA .Cos'è la FatturaPALa FatturaPA è una fattura elettronica ai sensi dell'articolo 21, comma 1, del DPR 633/72 ed è la sola tipologia di fattura accettata dalle Amministrazioni che, secondo le disposizioni di legge, sono tenute ad avvalersi del  Sistema di Interscambio.La Fattura 
Leggi tutto il post...
Categoria: C#
giovedì, 22 mag 2014 Ore. 14.38

Scrivi un commento

Nome:
Blog:
E-Mail:
(l'indirizzo e-mail non verrà pubblicato, consente di essere avvertiti quando arrivano nuovi commenti a questo Post)
Codice:
Corpo:
Cookie:

Commenti

Autore: SimoneInviato il: 17 dic 2018 - 08.53
Buongiorno a tutti,
volevo sapere se c'era un modo per risolvere il problema del naspame p.. ho praticamente finito tutta l'estrazione del file xml, mi manca solo questo maledetto "p:" che non compare.
Qualcuno è riuscito a risolverlo?

Grazie

Autore: SimoneInviato il: 20 dic 2018 - 14.07
Ciao Davide,
ho provato a registrarmi sul tuo nuovo sito per provare a scaricare il progetto aggiornato, ma non ci sono riuscito.
Ho praticamente finito la creazione del file xml con questa classe e mi manca soltanto questo maledetto "p:" che non riesco in alcun modo a far comparire.
Riusciresti a dirmi se con questa classe è possibile farlo, oppure se mi devo riaggiornare tutto il mio progetto con un altra classe?

Scusami se ti rompo ma sono rimasto bloccato e vorrei riuscire a trovar una soluzione entro fine dell'anno.

Grazie

Ciao

Autore: mauroInviato il: 20 dic 2018 - 15.04
Io per serializzare la classe generata dal xsd dell'agenzia delle entrate ho fatto cosi ...

private static string Serialize(FatturaElettronicaType ft)
{
var invoice = string.Empty;

var namespaces = new XmlSerializerNamespaces();
namespaces.Add("ds", "http://www.w3.org/2000/09/xmldsig#");
namespaces.Add("p", "http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2");

var xmlSerializer = new System.Xml.Serialization.XmlSerializer(ft.GetType());
var settings = new XmlWriterSettings()
{
Encoding = new UnicodeEncoding(false, false), // no BOM in a .NET string
Indent = true,
OmitXmlDeclaration = false
};
using (var textWriter = new Utf8StringWriter())
{
xmlSerializer.Serialize(textWriter, ft, namespaces);
invoice = textWriter.ToString();
}

return invoice;
}
}

public class Utf8StringWriter : StringWriter
{
public override Encoding Encoding
{
get { return new UTF8Encoding(false); }
}
}
Autore: DavideInviato il: 20 dic 2018 - 15.33
È corretto il suggerimento di Mauro. Altrimenti ti posso scrivere in privato se vuoi, così capisco fino a dove sei arrivato e ti aiuto.

Ti segnalo il nuovo sito : http://fatturaelettronica.imaginsystems.it/

Saluti
Davide
Autore: SimoneInviato il: 20 dic 2018 - 15.36
Ok Mauro,
io ho lo stesso progetto ma in versione vb.net..
Perciò la classe master dove c'è la libreria rimane invariata, andiamo a modificare solo il codice in fase di creazione del file xml, serializzandpo il file xml come hai fatto tu.

Io ho il seguente codice in vb.net, ora cerco di capire le modifiche che hai fatto tu sul tuo

nodoPrincipale.FatturaElettronicaHeader = overviewHeader
nodoPrincipale.FatturaElettronicaBody = overviewBody
' SERIALIZZZA I NODI E SCRIVE L'XML
Dim XmlRoot As New XmlRootAttribute()
XmlRoot.Namespace = "http://www.fatturapa.gov.it/sdi/fatturapa/v1.0"
Dim myxmlAttribute As XmlAttributes = New XmlAttributes
myxmlAttribute.XmlRoot = XmlRoot
Dim xmlAttributeOverrides As XmlAttributeOverrides = New XmlAttributeOverrides
xmlAttributeOverrides.Add(GetType(FatturaElettronica), myxmlAttribute)
' in case you want to remove prefix from members
Dim emptyNsAttribute As New XmlAttributes()
Dim xElement1 As New XmlElementAttribute()
xElement1.Namespace = ""
emptyNsAttribute.XmlElements.Add(xElement1)
xmlAttributeOverrides.Add(GetType(FatturaElettronica), "FatturaElettronicaHeader", emptyNsAttribute)
xmlAttributeOverrides.Add(GetType(FatturaElettronica), "FatturaElettronicaBody", emptyNsAttribute)
' if you actual library type contains more members, then you have to list all of them
nodoPrincipale.versione = FORMATOTRASMISIONE
Dim ser As New XmlSerializer(nodoPrincipale.[GetType](), xmlAttributeOverrides)
Dim ns As New XmlSerializerNamespaces()
ns.Add("ds", "http://www.w3.org/2000/09/xmldsig#")
ns.Add("p", "http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2")
ns.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance")
Dim path = percorso & nome_file
Dim file As System.IO.FileStream = System.IO.File.Create(path)
ser.Serialize(New StreamWriter(file, New System.Text.UTF8Encoding()), file, ns)
file.Close()
esito = True

Grazie

Ciao

Autore: SimoneInviato il: 20 dic 2018 - 15.37
Ciao Davide,
si se puoi scrivermi in privato ti ringrazierei.
Riesci a recuperare la mia email dai messaggi?

Grazie

Ciao

Autore: DavideInviato il: 20 dic 2018 - 15.39
Grosso modo il codice di Mauro da C# in VB.NET vedi se è più comprensibile.

Private Shared Function Serialize(ByVal ft As FatturaElettronicaType) As String
Dim invoice = String.Empty
Dim namespaces = New XmlSerializerNamespaces()
namespaces.Add("ds", "http://www.w3.org/2000/09/xmldsig#")
namespaces.Add("p", "http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2")
Dim xmlSerializer = New System.Xml.Serialization.XmlSerializer(ft.[GetType]())
Dim settings = New XmlWriterSettings() With {
.Encoding = New UnicodeEncoding(False, False),
.Indent = True,
.OmitXmlDeclaration = False
}

Using textWriter = New Utf8StringWriter()
xmlSerializer.Serialize(textWriter, ft, namespaces)
invoice = textWriter.ToString()
End Using

Return invoice
End Function
Autore: lilloInviato il: 18 gen 2019 - 12.49
Buon giorno
sono nuovo del blog.

Vi chiedo aiuto, sto implementando la creazione della fattura elettronica in VB.NET, ma ho una serie di difficoltà, nel caricamento di .FatturaElettronicaBody. e nella scrirrura del XLM


nella scrittura del file XML lo trovo vuoto, uso queso codice:

NOMEXLM = rotfile & "IT01234567890_FPR12.xlm"


XLMFATMIA = XmlWriter.Create(NOMEXLM, New XmlWriterSettings())
Fatturael1.WriteXml(XLMFATMIA)


Qualcuno ha un esempio?
Grazie infinite
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003