public void SerializeHeader() { var doc = new Spesometro.Spesometro(); using (var w = XmlWriter.Create("test", new XmlWriterSettings { Indent = true })) { doc.WriteXml(w); } using (var r = XmlReader.Create("test")) { while (r.Read()) { if (r.NodeType == XmlNodeType.Element) { if (r.Prefix == RootElement.Prefix && r.LocalName == RootElement.LocalName) { Assert.AreEqual(RootElement.NameSpace, r.NamespaceURI); foreach (var a in RootElement.ExtraAttributes) { Assert.AreEqual(a.value, r.GetAttribute(string.Format("{0}:{1}", a.Prefix, a.LocalName))); } break; } } } } File.Delete("test"); }
private void ValidateComunicazioneDTE(Spesometro.Spesometro c) { Assert.AreEqual("0112001", c.Header.ProgressivoInvio); var cp = c.FattureEmesse.CedentePrestatore; Assert.AreEqual("IT", cp.IdentificativiFiscali.IdFiscaleIVA.IdPaese); Assert.AreEqual("xxxxxxxxxxxxxxxxx", cp.IdentificativiFiscali.IdFiscaleIVA.IdCodice); Assert.AreEqual("GATEWAY INFORMATICA SRL", cp.AltriDatiIdentificativi.Denominazione); Assert.AreEqual("VIA DEGLI STADI,32", cp.AltriDatiIdentificativi.Sede.Indirizzo); Assert.AreEqual("87100", cp.AltriDatiIdentificativi.Sede.CAP); Assert.AreEqual("COSENZA", cp.AltriDatiIdentificativi.Sede.Comune); Assert.AreEqual("CS", cp.AltriDatiIdentificativi.Sede.Provincia); Assert.AreEqual("IT", cp.AltriDatiIdentificativi.Sede.Nazione); var cc = c.FattureEmesse.CessionarioCommittente[0]; Assert.AreEqual("GRDSFN66D17H199K", cc.IdentificativiFiscali.CodiceFiscale); Assert.AreEqual("XXXXXXXXXXXXX", cc.AltriDatiIdentificativi.Denominazione); Assert.AreEqual("Via Giuseppe Mercalli, 2", cc.AltriDatiIdentificativi.Sede.Indirizzo); Assert.AreEqual("80056", cc.AltriDatiIdentificativi.Sede.CAP); Assert.AreEqual("Ercolano", cc.AltriDatiIdentificativi.Sede.Comune); Assert.AreEqual("NA", cc.AltriDatiIdentificativi.Sede.Provincia); Assert.AreEqual("IT", cc.AltriDatiIdentificativi.Sede.Nazione); var b = cc.DatiFatturaBody[0]; Assert.AreEqual("TD01", b.DatiGenerali.TipoDocumento); Assert.AreEqual(2017, b.DatiGenerali.Data.Year); Assert.AreEqual(2, b.DatiGenerali.Data.Day); Assert.AreEqual(1, b.DatiGenerali.Data.Month); Assert.AreEqual("1", b.DatiGenerali.Numero); Assert.AreEqual(561.10m, b.DatiRiepilogo[0].ImponibileImporto); Assert.AreEqual(100m, b.DatiRiepilogo[0].Detraibile); Assert.AreEqual("I", b.DatiRiepilogo[0].EsigibilitaIVA); Assert.AreEqual(123.44m, b.DatiRiepilogo[0].DatiIVA.Imposta); Assert.AreEqual(22m, b.DatiRiepilogo[0].DatiIVA.Aliquota); cc = c.FattureEmesse.CessionarioCommittente[1]; Assert.AreEqual("IT", cc.IdentificativiFiscali.IdFiscaleIVA.IdPaese); Assert.AreEqual("xxxxxxxxxxxxxxxx", cc.IdentificativiFiscali.IdFiscaleIVA.IdCodice); Assert.AreEqual("ZZZZZZZZZZZZZZZZ", cc.AltriDatiIdentificativi.Denominazione); Assert.AreEqual("Via Ripuaria, 119", cc.AltriDatiIdentificativi.Sede.Indirizzo); Assert.AreEqual("80014", cc.AltriDatiIdentificativi.Sede.CAP); Assert.AreEqual("Giugliano in Campania", cc.AltriDatiIdentificativi.Sede.Comune); Assert.AreEqual("NA", cc.AltriDatiIdentificativi.Sede.Provincia); Assert.AreEqual("IT", cc.AltriDatiIdentificativi.Sede.Nazione); b = cc.DatiFatturaBody[0]; Assert.AreEqual("TD01", b.DatiGenerali.TipoDocumento); Assert.AreEqual(2017, b.DatiGenerali.Data.Year); Assert.AreEqual(2, b.DatiGenerali.Data.Day); Assert.AreEqual(1, b.DatiGenerali.Data.Month); Assert.AreEqual("2", b.DatiGenerali.Numero); Assert.AreEqual(183.10m, b.DatiRiepilogo[0].ImponibileImporto); Assert.AreEqual(100m, b.DatiRiepilogo[0].Detraibile); Assert.AreEqual("I", b.DatiRiepilogo[0].EsigibilitaIVA); Assert.AreEqual(40.28m, b.DatiRiepilogo[0].DatiIVA.Imposta); Assert.AreEqual(22m, b.DatiRiepilogo[0].DatiIVA.Aliquota); }
private void ValidateComunicazione(Spesometro.Spesometro c, string sample) { switch (sample) { case "DTE": ValidateComunicazioneDTE(c); break; case "DTR": ValidateComunicazioneDTR(c); break; } }
private Spesometro.Spesometro Deserialize(string fileName) { var doc = new Spesometro.Spesometro(); var s = new XmlReaderSettings { IgnoreWhitespace = true }; using (var r = XmlReader.Create(fileName, new XmlReaderSettings { IgnoreWhitespace = true })) { doc.ReadXml(r); } return(doc); }
private void ValidateComunicazioneDTR(Spesometro.Spesometro c) { Assert.AreEqual("19", c.Header.ProgressivoInvio); var cc = c.FattureRicevute.CessionarioCommittente; Assert.AreEqual("IT", cc.IdentificativiFiscali.IdFiscaleIVA.IdPaese); Assert.AreEqual("03954060632", cc.IdentificativiFiscali.IdFiscaleIVA.IdCodice); Assert.AreEqual("GRDSFN66D17H199K", cc.IdentificativiFiscali.CodiceFiscale); Assert.AreEqual("PIPPO", cc.AltriDatiIdentificativi.Nome); Assert.AreEqual("FRANCO", cc.AltriDatiIdentificativi.Cognome); Assert.AreEqual("Via Posillipo", cc.AltriDatiIdentificativi.Sede.Indirizzo); Assert.AreEqual("1", cc.AltriDatiIdentificativi.Sede.NumeroCivico); Assert.AreEqual("80100", cc.AltriDatiIdentificativi.Sede.CAP); Assert.AreEqual("Napoli", cc.AltriDatiIdentificativi.Sede.Comune); Assert.AreEqual("NA", cc.AltriDatiIdentificativi.Sede.Provincia); Assert.AreEqual("IT", cc.AltriDatiIdentificativi.Sede.Nazione); var cp = c.FattureRicevute.CedentePrestatore[0]; Assert.AreEqual("IT", cp.IdentificativiFiscali.IdFiscaleIVA.IdPaese); Assert.AreEqual("03954060632", cp.IdentificativiFiscali.IdFiscaleIVA.IdCodice); Assert.AreEqual("93006500610", cp.IdentificativiFiscali.CodiceFiscale); Assert.AreEqual("PIPPO S.R.L.", cp.AltriDatiIdentificativi.Denominazione); Assert.AreEqual("VIA ROMA", cp.AltriDatiIdentificativi.Sede.Indirizzo); Assert.AreEqual("80100", cp.AltriDatiIdentificativi.Sede.CAP); Assert.AreEqual("napoli", cp.AltriDatiIdentificativi.Sede.Comune); Assert.AreEqual("NA", cp.AltriDatiIdentificativi.Sede.Provincia); Assert.AreEqual("IT", cp.AltriDatiIdentificativi.Sede.Nazione); var b = cp.DatiFatturaBody[0]; Assert.AreEqual("TD01", b.DatiGenerali.TipoDocumento); Assert.AreEqual(2017, b.DatiGenerali.Data.Year); Assert.AreEqual(1, b.DatiGenerali.Data.Day); Assert.AreEqual(5, b.DatiGenerali.Data.Month); Assert.AreEqual("2", b.DatiGenerali.Numero); Assert.AreEqual(1000m, b.DatiRiepilogo[0].ImponibileImporto); Assert.AreEqual(100m, b.DatiRiepilogo[0].DatiIVA.Imposta); Assert.AreEqual(10m, b.DatiRiepilogo[0].DatiIVA.Aliquota); }
private void SerializeAndAssertRootElementAttributes(Spesometro.Spesometro doc) { }
static void Main(string[] args) { var comunicazione = new Spesometro.Spesometro(); // Lettura da file XML using (var file = XmlReader.Create("IT01180680397_DF_00001.xml", new XmlReaderSettings { IgnoreWhitespace = true, IgnoreComments = true })) { comunicazione.ReadXml(file); } // La classe Spesometro segue lo schema del tracciato ufficiale, vedi: // http://www.agenziaentrate.gov.it/wps/file/Nsilib/Nsi/Strumenti/Specifiche+tecniche/Specifiche+tecniche+comunicazioni/Fatture+e+corrispettivi+ST/Allegato+XML+Dati+Fattura/Formato+XMLdati_fattura.xls Console.WriteLine($"Progressivo invio: {comunicazione.Header.ProgressivoInvio}"); Console.WriteLine($"Numero di destinatari fatture emesse: {comunicazione.FattureEmesse.CessionarioCommittente.Count}"); // Aggiunta di una fattura per nuovo committente var committente = new CessionarioCommittente(); committente.IdentificativiFiscali.CodiceFiscale = "01180680397"; committente.AltriDatiIdentificativi.Denominazione = "CIR 2000"; committente.AltriDatiIdentificativi.Sede.Indirizzo = "Via Sansovino 45"; committente.AltriDatiIdentificativi.Sede.CAP = "48124"; committente.AltriDatiIdentificativi.Sede.Comune = "Ravenna"; var fattura = new DatiFatturaBody(); fattura.DatiGenerali.Data = DateTime.Now; fattura.DatiGenerali.TipoDocumento = "TD01"; fattura.DatiGenerali.Numero = "345"; var riepilogo = new DatiRiepilogo { ImponibileImporto = 100, EsigibilitaIVA = "I" }; riepilogo.DatiIVA.Aliquota = 22; riepilogo.DatiIVA.Imposta = 0.22m; fattura.DatiRiepilogo.Add(riepilogo); committente.DatiFatturaBody.Add(fattura); // Sono disponibili validatori per tutte le classi esposte dalla libreria. var v = new CessionarioCommittenteDTEValidator(); var result = v.Validate(committente); if (result.IsValid) { comunicazione.FattureEmesse.CessionarioCommittente.Add(committente); // Serializzazione XML using (var w = XmlWriter.Create("IT01180680397_DF_00001.xml", new XmlWriterSettings { Indent = true })) { comunicazione.WriteXml(w); } } else { // Introspezione errori. foreach (var error in result.Errors) { Console.WriteLine(error.PropertyName); Console.WriteLine(error.ErrorMessage); Console.WriteLine(error.ErrorCode); } } Console.ReadKey(); }