""" Options: Date: 2024-04-27 19:09:39 Version: 8.12 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://taxfiling.pwc.de #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: CreateZm2020Xml.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum # @Api(Description="Angaben zum Unternehmen") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Anschrift: """ Angaben zum Unternehmen """ # @ApiMember(Description="Der Name des Unternehmers.", IsRequired=true, Name="Name") name: Optional[str] = None """ Der Name des Unternehmers. """ # @ApiMember(Description="Der Adresszusatz des Unternehmers.", Name="Adresszusatz") adresszusatz: Optional[str] = None """ Der Adresszusatz des Unternehmers. """ # @ApiMember(Description="Der Straßenname des Unternehmers.", IsRequired=true, Name="Strasse") strasse: Optional[str] = None """ Der Straßenname des Unternehmers. """ # @ApiMember(Description="Die Hausnummer des Unternehmers.", Name="Hausnr") hausnr: Optional[str] = None """ Die Hausnummer des Unternehmers. """ # @ApiMember(Description="Der Hausnummerzusatz des Unternehmers.", Name="Hausnrzusatz") hausnrzusatz: Optional[str] = None """ Der Hausnummerzusatz des Unternehmers. """ # @ApiMember(Description="Der Ort des Unternehmers.", IsRequired=true, Name="Ort") ort: Optional[str] = None """ Der Ort des Unternehmers. """ # @ApiMember(Description="Die Postleitzahl des Unternehmers.", Name="PLZ") plz: Optional[str] = None """ Die Postleitzahl des Unternehmers. """ # @ApiMember(Description="Übermittlung des ISO-3166-Alpha-2-Codes des Staates von Unternehmer.", IsRequired=true, Name="Staat") staat: Optional[str] = None """ Übermittlung des ISO-3166-Alpha-2-Codes des Staates von Unternehmer. """ # @ApiMember(Description="Die Telefonummer des Unternehmers.", Name="Telefon") telefon: Optional[str] = None """ Die Telefonummer des Unternehmers. """ class Waehrung(str, Enum): """ Die Art der Währung """ UNGUELTIG = 'UNGUELTIG' EUR = 'EUR' class Meldeart(IntEnum): """ Art der Meldung """ NEIN = 10 JA = 11 class Quart(IntEnum): """ Die Art des Quartals """ Q1 = 1 Q2 = 2 Q3 = 3 Q4 = 4 JM = 5 M11 = 11 M12 = 12 M13 = 13 M14 = 14 M21 = 21 M22 = 22 M23 = 23 M24 = 24 M25 = 25 M26 = 26 M27 = 27 M28 = 28 M29 = 29 M30 = 30 M31 = 31 M32 = 32 # @Api(Description="Meldungszeitraum") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Mzr: """ Meldungszeitraum """ # @ApiMember(Description="Quartal", IsRequired=true, Name="Quart") quart: Optional[Quart] = None """ Quartal """ # @ApiMember(Description="Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt.", IsRequired=true, Name="Jahr") jahr: int = 0 """ Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt. """ class Umsatzart(str, Enum): """ Die Art des Umsatzes. """ D = 'D' L = 'L' S = 'S' # @Api(Description="Specifies an amount of money without cents with limits and a specialized string representation") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GrossGeldBetragOhneCent: """ Specifies an amount of money without cents with limits and a specialized string representation """ # @ApiMember(Description="The intrinsic currency value.") wert: int = 0 """ The intrinsic currency value. """ # @Api(Description="Represents an amount of money without cents whose value has a maximum length of 11 digits. That is, 1 to 11 digits. Minus sign allowed.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GeldBetragOhneCent11EN(GrossGeldBetragOhneCent): """ Represents an amount of money without cents whose value has a maximum length of 11 digits. That is, 1 to 11 digits. Minus sign allowed. """ # @ApiMember(Description="The intrinsic currency value.") wert: int = 0 """ The intrinsic currency value. """ # @Api(Description="Meldung der Warenlieferungen") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Zeile: """ Meldung der Warenlieferungen """ # @ApiMember(Description="Umsatzart", IsRequired=true, Name="Umsatzart") umsatzart: Optional[Umsatzart] = None """ Umsatzart """ # @ApiMember(Description="Umsatzsteuer-Identifikationsnummer des Erwerbers / Unternehmers in einem anderen Mitgliedstaat", IsRequired=true, Name="Knre") knre: Optional[str] = None """ Umsatzsteuer-Identifikationsnummer des Erwerbers / Unternehmers in einem anderen Mitgliedstaat """ # @ApiMember(Description="Summe (Euro)", IsRequired=true, Name="Betrag") betrag: Optional[GeldBetragOhneCent11EN] = None """ Summe (Euro) """ # @Api(Description="Allgemeine Daten") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ZmZeilen: """ Allgemeine Daten """ # @ApiMember(Description="Währung", IsRequired=true, Name="Waehrung") waehrung: Optional[Waehrung] = None """ Währung """ # @ApiMember(Description="Berichtigte Meldung", IsRequired=true, Name="Meldeart") meldeart: Optional[Meldeart] = None """ Berichtigte Meldung """ # @ApiMember(Description="Die in § 18a Absatz 1 Satz 2 UStG enthaltene Regelung nehme ich nicht in Anspruch. Ich gebe die Zusammenfassende Meldung künftig monatlich ab. Diese Anzeige bindet mich bis zum Zeitpunkt des Widerrufs, mindestens aber für die Dauer von 12 Kalendermonaten.", IsRequired=true, Name="Meldeart") anzeige: bool = False """ Die in § 18a Absatz 1 Satz 2 UStG enthaltene Regelung nehme ich nicht in Anspruch. Ich gebe die Zusammenfassende Meldung künftig monatlich ab. Diese Anzeige bindet mich bis zum Zeitpunkt des Widerrufs, mindestens aber für die Dauer von 12 Kalendermonaten. """ # @ApiMember(Description="Widerruf meiner Anzeige nach § 18a Absatz 1 UStG", IsRequired=true, Name="Widerruf") widerruf: bool = False """ Widerruf meiner Anzeige nach § 18a Absatz 1 UStG """ # @ApiMember(Description="Meldungszeitraum", IsRequired=true, Name="Mzr") mzr: Optional[Mzr] = None """ Meldungszeitraum """ # @ApiMember(Description="Meldungen der Warenlieferungen", IsRequired=true, Name="Zeilen") zeilen: Optional[List[Zeile]] = None """ Meldungen der Warenlieferungen """ # @Api(Description="Create XML content that represents a recapitulative tax declaration for 2020.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateZm2020XmlBase(IReturn[XmlResponse], IPost): """ Create XML content that represents a recapitulative tax declaration for 2020. """ # @ApiMember(Description="Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.", IsRequired=true) knri: Optional[str] = None """ Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern. """ # @ApiMember(Description="Angaben zum Unternehmer", IsRequired=true) anschrift: Optional[Anschrift] = None """ Angaben zum Unternehmer """ # @ApiMember(Description="Allgemeine Daten", IsRequired=true) zm_zeilen: Optional[ZmZeilen] = None """ Allgemeine Daten """ # @ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true) daten_lieferant: Optional[str] = None """ The details of the provider that submits the tax data. """ @staticmethod def response_type(): return XmlResponse # @Api(Description="Represents the response from a service that generates XML content.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class XmlResponse: """ Represents the response from a service that generates XML content. """ # @ApiMember(Description="The XML-based content of the response.") content: Optional[str] = None """ The XML-based content of the response. """ # @ApiMember(Description="Metadata that contains structured error information on the XML response.") response_status: Optional[ResponseStatus] = None """ Metadata that contains structured error information on the XML response. """ # @Route("/CreateZm2020Xml", "POST") # @Api(Description="A synchronous service to create XML content that represents a recapitulative tax declaration for 2020.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateZm2020Xml(CreateZm2020XmlBase, IReturn[XmlResponse]): """ A synchronous service to create XML content that represents a recapitulative tax declaration for 2020. """ # @ApiMember(Description="Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.", IsRequired=true) knri: Optional[str] = None """ Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern. """ # @ApiMember(Description="Angaben zum Unternehmer", IsRequired=true) anschrift: Optional[Anschrift] = None """ Angaben zum Unternehmer """ # @ApiMember(Description="Allgemeine Daten", IsRequired=true) zm_zeilen: Optional[ZmZeilen] = None """ Allgemeine Daten """ # @ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true) daten_lieferant: Optional[str] = None """ The details of the provider that submits the tax data. """