} // !Save() /// <summary> /// Saves the descriptor object into a file with given name. /// </summary> /// <param name="filename">The filename where the data should be saved to.</param> /// <param name="version">The ZUGFeRD version you want to use. Defaults to version 1.</param> /// <param name="profile">The ZUGFeRD profile you want to use. Defaults to Basic.</param> public void Save(string filename, ZUGFeRDVersion version = ZUGFeRDVersion.Version1, Profile profile = Profile.Basic) { this.Profile = profile; IInvoiceDescriptorWriter writer = _selectInvoiceDescriptorWriter(version); writer.Save(this, filename); } // !Save()
} // !AddApplicableTradeTax() /// <summary> /// Saves the descriptor object into a stream. /// /// The stream position will be reset to the original position after writing is finished. /// This allows easy further processing of the stream. /// </summary> /// <param name="stream"></param> public void Save(Stream stream, ZUGFeRDVersion version = ZUGFeRDVersion.Version1, Profile profile = Profile.Basic) { this.Profile = profile; IInvoiceDescriptorWriter writer = null; switch (version) { case ZUGFeRDVersion.Version1: writer = new InvoiceDescriptor1Writer(); break; case ZUGFeRDVersion.Version20: writer = new InvoiceDescriptor20Writer(); break; case ZUGFeRDVersion.Version21: writer = new InvoiceDescriptor21Writer(); break; default: break; } writer.Save(this, stream); } // !Save()
} // !FromString() public static string EnumToString(this Profile profile, ZUGFeRDVersion version) { if (version == ZUGFeRDVersion.Version1) { switch (profile) { case Profile.Basic: return("urn:ferd:CrossIndustryDocument:invoice:1p0:basic"); case Profile.Comfort: return("urn:ferd:CrossIndustryDocument:invoice:1p0:comfort"); case Profile.Extended: return("urn:ferd:CrossIndustryDocument:invoice:1p0:extended"); default: return(""); } } else { switch (profile) { case Profile.Minimum: return("urn:zugferd.de:2p0:minimum"); case Profile.Basic: return("urn:cen.eu:en16931:2017#compliant#urn:zugferd.de:2p0:basic"); case Profile.Comfort: return("urn:cen.eu:en16931:2017"); case Profile.Extended: return("urn:cen.eu:en16931:2017#conformant#urn:zugferd.de:2p0:extended"); default: return(""); } } } // !ToString()
} // !FromString() public static string EnumToString(this Profile profile, ZUGFeRDVersion version) { switch (version) { case ZUGFeRDVersion.Version1: switch (profile) { case Profile.Basic: return("urn:ferd:CrossIndustryDocument:invoice:1p0:basic"); case Profile.Comfort: return("urn:ferd:CrossIndustryDocument:invoice:1p0:comfort"); case Profile.Extended: return("urn:ferd:CrossIndustryDocument:invoice:1p0:extended"); default: throw new Exception("Unsupported profile for ZUGFeRD version 1"); } case ZUGFeRDVersion.Version20: switch (profile) { case Profile.Minimum: return("urn:zugferd.de:2p0:minimum"); case Profile.Basic: return("urn:cen.eu:en16931:2017#compliant#urn:zugferd.de:2p0:basic"); case Profile.BasicWL: return("urn:zugferd.de:2p0:basicwl"); case Profile.Comfort: return("urn:cen.eu:en16931:2017"); case Profile.Extended: return("urn:cen.eu:en16931:2017#conformant#urn:zugferd.de:2p0:extended"); default: throw new Exception("Unsupported profile for ZUGFeRD version 20"); } case ZUGFeRDVersion.Version21: switch (profile) { case Profile.Minimum: return("urn:factur-x.eu:1p0:minimum"); case Profile.Basic: return("urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic"); case Profile.BasicWL: return("urn:factur-x.eu:1p0:basicwl"); case Profile.Comfort: return("urn:cen.eu:en16931:2017"); case Profile.Extended: return("urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended"); case Profile.XRechnung1: return("urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2"); case Profile.XRechnung: return("urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.0"); default: throw new Exception("Unsupported profile for ZUGFeRD version 21"); } default: // return ""; throw new UnsupportedException("New ZUGFeRDVersion '" + version + "' defined but not implemented!"); } } // !ToString()
} // !Save() public void Save(string filename, ZUGFeRDVersion version = ZUGFeRDVersion.Version1) { IInvoiceDescriptorWriter writer = null; if (version == ZUGFeRDVersion.Version1) { writer = new InvoiceDescriptor1Writer(); } else { writer = new InvoiceDescriptor2Writer(); } writer.Save(this, filename); } // !Save()
} // !AddApplicableTradeTax() /// <summary> /// Saves the descriptor object into a stream. /// /// The stream position will be reset to the original position after writing is finished. /// This allows easy further processing of the stream. /// </summary> /// <param name="stream"></param> public void Save(Stream stream, ZUGFeRDVersion version = ZUGFeRDVersion.Version1) { IInvoiceDescriptorWriter writer = null; if (version == ZUGFeRDVersion.Version1) { writer = new InvoiceDescriptor1Writer(); } else { writer = new InvoiceDescriptor2Writer(); } writer.Save(this, stream); } // !Save()
} // !AddApplicableTradeTax() private IInvoiceDescriptorWriter _selectInvoiceDescriptorWriter(ZUGFeRDVersion version) { switch (version) { case ZUGFeRDVersion.Version1: return(new InvoiceDescriptor1Writer()); case ZUGFeRDVersion.Version20: return(new InvoiceDescriptor20Writer()); case ZUGFeRDVersion.Version21: return(new InvoiceDescriptor21Writer()); default: throw new UnsupportedException("New ZUGFeRDVersion '" + version + "' defined but not implemented!"); } } // !_selectInvoiceDescriptorWriter()
} // !Save() public void Save(string filename, ZUGFeRDVersion version = ZUGFeRDVersion.Version1, Profile profile = Profile.Basic) { IInvoiceDescriptorWriter writer = null; switch (version) { case ZUGFeRDVersion.Version1: writer = new InvoiceDescriptor1Writer(); break; case ZUGFeRDVersion.Version20: writer = new InvoiceDescriptor20Writer(); break; case ZUGFeRDVersion.Version21: writer = new InvoiceDescriptor21Writer(); break; default: break; } writer.Save(this, filename); } // !Save()