zipdatev 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/lib/zipdatev/constants.rb +160 -0
- data/lib/zipdatev/document.rb +60 -0
- data/lib/zipdatev/errors.rb +45 -0
- data/lib/zipdatev/generators/base.rb +146 -0
- data/lib/zipdatev/generators/document_xml.rb +143 -0
- data/lib/zipdatev/generators/ledger_xml.rb +144 -0
- data/lib/zipdatev/invoice.rb +339 -0
- data/lib/zipdatev/line_item.rb +203 -0
- data/lib/zipdatev/package.rb +267 -0
- data/lib/zipdatev/repository.rb +42 -0
- data/lib/zipdatev/schema_validator.rb +151 -0
- data/lib/zipdatev/schemas/Belegverwaltung_online_ledger_import_v060.xsd +546 -0
- data/lib/zipdatev/schemas/Belegverwaltung_online_ledger_types_v060.xsd +1181 -0
- data/lib/zipdatev/schemas/Document_types_v060.xsd +410 -0
- data/lib/zipdatev/schemas/Document_v060.xsd +567 -0
- data/lib/zipdatev/validators/consolidation_validator.rb +70 -0
- data/lib/zipdatev/validators/date_range_validator.rb +42 -0
- data/lib/zipdatev/validators/decimal_precision_validator.rb +55 -0
- data/lib/zipdatev/validators/discount_dates_validator.rb +74 -0
- data/lib/zipdatev/validators/payment_conditions_validator.rb +49 -0
- data/lib/zipdatev/version.rb +5 -0
- data/lib/zipdatev.rb +55 -0
- metadata +110 -0
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xml.datev.de/bedi/tps/document/v06.0" xmlns:de="http://xml.datev.de/DD/DE/bedi/tps/document/v060" targetNamespace="http://xml.datev.de/bedi/tps/document/v06.0" elementFormDefault="qualified">
|
|
3
|
+
<xsd:import namespace="http://xml.datev.de/DD/DE/bedi/tps/document/v060" schemaLocation="Document_types_v060.xsd"/>
|
|
4
|
+
<xsd:element name="archive" type="archive">
|
|
5
|
+
<xsd:annotation>
|
|
6
|
+
<xsd:documentation>Rootelement</xsd:documentation>
|
|
7
|
+
</xsd:annotation>
|
|
8
|
+
</xsd:element>
|
|
9
|
+
<xsd:complexType name="archive">
|
|
10
|
+
<xsd:annotation>
|
|
11
|
+
<xsd:documentation>Das Root-Element archive enthält Informationen allgemeiner Art, die Metadaten zum DATEV Document-Package und den Inhaltsbereich, d. h., die Informationen, die den Inhalt des DATEV Document-Packages beschreiben.</xsd:documentation>
|
|
12
|
+
</xsd:annotation>
|
|
13
|
+
<xsd:sequence>
|
|
14
|
+
<xsd:element name="header" type="header" minOccurs="1" maxOccurs="1">
|
|
15
|
+
<xsd:annotation>
|
|
16
|
+
<xsd:documentation>Metadaten des ZIP-Archives</xsd:documentation>
|
|
17
|
+
<xsd:documentation>Im Header werden Metadaten zur Verarbeitung angegeben.</xsd:documentation>
|
|
18
|
+
</xsd:annotation>
|
|
19
|
+
</xsd:element>
|
|
20
|
+
<xsd:element name="content" type="content" minOccurs="1" maxOccurs="1">
|
|
21
|
+
<xsd:annotation>
|
|
22
|
+
<xsd:documentation>Beschreibung des Inhalts des ZIP-Archives</xsd:documentation>
|
|
23
|
+
<xsd:documentation>Das Element content klassifiziert den Inhaltsbereich. Es enthält zwingend das Element document, das mehrfach vorkommen kann.</xsd:documentation>
|
|
24
|
+
</xsd:annotation>
|
|
25
|
+
</xsd:element>
|
|
26
|
+
</xsd:sequence>
|
|
27
|
+
<xsd:attribute name="version" type="de:p16" use="required">
|
|
28
|
+
<xsd:annotation>
|
|
29
|
+
<xsd:documentation>Versionsnummer der vorliegenden Spezifikation</xsd:documentation>
|
|
30
|
+
<xsd:documentation>Das Attribut version enthält die aktuelle Versionsnummer. Hier: 6.0.</xsd:documentation>
|
|
31
|
+
</xsd:annotation>
|
|
32
|
+
</xsd:attribute>
|
|
33
|
+
<xsd:attribute name="guid" type="de:p10037">
|
|
34
|
+
<xsd:annotation>
|
|
35
|
+
<xsd:documentation>GUID des ZIP-Archivs</xsd:documentation>
|
|
36
|
+
<xsd:documentation>Die GUID dient der eindeutigen Identifizierung des Dokuments und wird von dem abgebenden System erzeugt. Das Verfahren zur Erzeugung der GUID muss gewährleisten, dass die GUID eindeutig ist. Somit wird sichergestellt, dass nicht dieselbe GUID bei unterschiedlichen Dokumenten verwendet wird.
|
|
37
|
+
Über die Dokumentenverwaltungsdatei kann dem Dokument bereits eine GUID zugeordnet werden, wenn eine extension File vorhanden ist.
|
|
38
|
+
- Ist diese noch nicht in Belege online vorhanden, wird das Dokument unter dieser GUID abgelegt.
|
|
39
|
+
Ausnahme cashLedger: Die GUID wird nicht dem Dokument zugeordnet, sondern der ersten Datei des Dokuments, die der extension File zugeordnet ist.
|
|
40
|
+
- Ist diese bereits in der Belegverwaltung online vorhanden, wird das betroffene Dokument überlesen und es werden die eventuell weiteren Dokumente des DATEV Document-Packages verarbeitet.
|
|
41
|
+
Die GUID des Dokuments wird für die Zuordnung des Dokuments zu dem entsprechenden Buchungssatz in Kanzlei-Rechnungswesen verwendet.
|
|
42
|
+
In der document.xml kann ein Dokument abgebildet werden, das aus mehreren einzelnen (physischen) Dateien besteht, d. h. mehrere extension-Elemente vom Typ File. Die Files werden dann zu einem Dokument geheftet.
|
|
43
|
+
Weitere Informationen zum Aufbau der GUID finden Sie unter w3c.org.
|
|
44
|
+
</xsd:documentation>
|
|
45
|
+
</xsd:annotation>
|
|
46
|
+
</xsd:attribute>
|
|
47
|
+
<xsd:attribute name="generatingSystem" type="de:p10009" use="optional">
|
|
48
|
+
<xsd:annotation>
|
|
49
|
+
<xsd:documentation>Name des Softwareherstellers oder der Software, mit der die strukturierten Daten erzeugt wurden.</xsd:documentation>
|
|
50
|
+
<xsd:documentation>Das Attribut generatingSystem enthält den Namen des Software-Herstellers oder der Software, mit der das DATEV Document-Package erzeugt wurde. Es wird empfohlen, beides anzugeben, wenn die Länge des Felds nicht überschritten wird.
|
|
51
|
+
Der Name dient keinem Auswertungszweck.
|
|
52
|
+
</xsd:documentation>
|
|
53
|
+
</xsd:annotation>
|
|
54
|
+
</xsd:attribute>
|
|
55
|
+
</xsd:complexType>
|
|
56
|
+
<xsd:complexType name="header">
|
|
57
|
+
<xsd:annotation>
|
|
58
|
+
<xsd:documentation>Der Header dient zur Verarbeitung von Metadaten.</xsd:documentation>
|
|
59
|
+
</xsd:annotation>
|
|
60
|
+
<xsd:sequence>
|
|
61
|
+
<xsd:element name="date" type="de:p10048" minOccurs="1" maxOccurs="1">
|
|
62
|
+
<xsd:annotation>
|
|
63
|
+
<xsd:documentation>Datum und Uhrzeit der Erstellung des Archivs</xsd:documentation>
|
|
64
|
+
<xsd:documentation>Das Element date enthält den Erstellungszeitpunkt der document.xml.</xsd:documentation>
|
|
65
|
+
</xsd:annotation>
|
|
66
|
+
</xsd:element>
|
|
67
|
+
<xsd:element name="description" type="de:p10051" minOccurs="0" maxOccurs="1">
|
|
68
|
+
<xsd:annotation>
|
|
69
|
+
<xsd:documentation>Beschreibung des Archivs</xsd:documentation>
|
|
70
|
+
<xsd:documentation>Das Element description enthält eine Beschreibung zum Inhalt der document.xml.</xsd:documentation>
|
|
71
|
+
</xsd:annotation>
|
|
72
|
+
</xsd:element>
|
|
73
|
+
<xsd:element name="consultantNumber" type="de:p10049" minOccurs="0" maxOccurs="1">
|
|
74
|
+
<xsd:annotation>
|
|
75
|
+
<xsd:documentation>Beraternummer</xsd:documentation>
|
|
76
|
+
<xsd:documentation>Das Element consultantNumber enthält die Berater-Nr. der zu übergebenden document.xml. Stimmt die Berater-Nr. in der document.xml nicht mit der Berater-Nr. des importierten ZIP-Files überein wird die Verarbeitung der Daten abgelehnt und kann im Import-Protokoll erneut ohne Prüfung auf Übereinstimmung gestartet werden.</xsd:documentation>
|
|
77
|
+
</xsd:annotation>
|
|
78
|
+
</xsd:element>
|
|
79
|
+
<xsd:element name="clientNumber" type="de:p10050" minOccurs="0" maxOccurs="1">
|
|
80
|
+
<xsd:annotation>
|
|
81
|
+
<xsd:documentation>Mandantennummer / Kundennummer</xsd:documentation>
|
|
82
|
+
<xsd:documentation>Das Element clientNumber enthält die Mandanten-Nr. der zu übergebenden document.xml. Stimmt die Mandanten-Nr. in der document.xml nicht mit der Mandanten-Nr. des importierten ZIP-Files überein wird die Verarbeitung der Daten abgelehnt und kann im Import-Protokoll erneut ohne Prüfung auf Übereinstimmung gestartet werden.</xsd:documentation>
|
|
83
|
+
</xsd:annotation>
|
|
84
|
+
</xsd:element>
|
|
85
|
+
<xsd:element name="clientName" type="de:p17" minOccurs="0" maxOccurs="1">
|
|
86
|
+
<xsd:annotation>
|
|
87
|
+
<xsd:documentation>Mandantenname / Kundenname</xsd:documentation>
|
|
88
|
+
<xsd:documentation>Das Element clientName enthält die Namen des Mandanten/der Firma der zu übergebenden document.xml. </xsd:documentation>
|
|
89
|
+
</xsd:annotation>
|
|
90
|
+
</xsd:element>
|
|
91
|
+
<xsd:element name="repository" type="repository" minOccurs="0" maxOccurs="1">
|
|
92
|
+
<xsd:annotation>
|
|
93
|
+
<xsd:documentation>Definition der Ablage-Struktur der Daten des ZIP-Archivs auf Metaebene</xsd:documentation>
|
|
94
|
+
<xsd:documentation>Die Ablagestruktur wird auf Metadatenebene durch das Element repository definiert. Sie ist für alle Dokumente in dem DATEV Document-Package gültig.</xsd:documentation>
|
|
95
|
+
</xsd:annotation>
|
|
96
|
+
</xsd:element>
|
|
97
|
+
</xsd:sequence>
|
|
98
|
+
</xsd:complexType>
|
|
99
|
+
<xsd:complexType name="content">
|
|
100
|
+
<xsd:annotation>
|
|
101
|
+
<xsd:documentation>Enthält die Inhaltsdaten des ZIP-Archivs und die Ablagestruktur.</xsd:documentation>
|
|
102
|
+
<xsd:documentation>Das Element content muss angegeben werden. Es strukturiert die Daten des DATEV Document-Packages. Es enthält zwingend das Element document das mehrfach vorkommen kann.</xsd:documentation>
|
|
103
|
+
</xsd:annotation>
|
|
104
|
+
<xsd:sequence>
|
|
105
|
+
<xsd:element name="document" type="document" minOccurs="1" maxOccurs="4999">
|
|
106
|
+
<xsd:annotation>
|
|
107
|
+
<xsd:documentation>Strukturierung der Daten des ZIP-Archivs</xsd:documentation>
|
|
108
|
+
<xsd:documentation>Das Element document muss angegeben werden. Es strukturiert die Daten des DATEV Document-Packages.
|
|
109
|
+
Es enthält zwingend das Element extension.
|
|
110
|
+
</xsd:documentation>
|
|
111
|
+
</xsd:annotation>
|
|
112
|
+
</xsd:element>
|
|
113
|
+
</xsd:sequence>
|
|
114
|
+
</xsd:complexType>
|
|
115
|
+
<xsd:complexType name="document">
|
|
116
|
+
<xsd:annotation>
|
|
117
|
+
<xsd:documentation>Ein document klammert zusammengehörige Dateien incl. Beschreibung.</xsd:documentation>
|
|
118
|
+
<xsd:documentation>Das Element document muss angegeben werden. Es strukturiert die Daten des DATEV Document-Packages.
|
|
119
|
+
Es enthält zwingend das Element extension.
|
|
120
|
+
</xsd:documentation>
|
|
121
|
+
</xsd:annotation>
|
|
122
|
+
<xsd:sequence>
|
|
123
|
+
<xsd:element name="description" type="de:p10052" minOccurs="0" maxOccurs="1">
|
|
124
|
+
<xsd:annotation>
|
|
125
|
+
<xsd:documentation>Beschreibung des Dokuments</xsd:documentation>
|
|
126
|
+
<xsd:documentation>Das Element description muss nicht angegeben werden. Es enthält eine individuelle Beschreibung.</xsd:documentation>
|
|
127
|
+
</xsd:annotation>
|
|
128
|
+
</xsd:element>
|
|
129
|
+
<xsd:element name="keywords" type="de:p10051" minOccurs="0" maxOccurs="1">
|
|
130
|
+
<xsd:annotation>
|
|
131
|
+
<xsd:documentation>Schlüsselwörter zum Dokument</xsd:documentation>
|
|
132
|
+
<xsd:documentation>Dem Dokument können weitere Schlüsselwörter (keywords) hinzugefügt werden. Diese Schlüsselwörter werden in Belege online am Dokument unter Notiz eingestellt.</xsd:documentation>
|
|
133
|
+
</xsd:annotation>
|
|
134
|
+
</xsd:element>
|
|
135
|
+
<xsd:element name="extension" type="extension" minOccurs="1" maxOccurs="50">
|
|
136
|
+
<xsd:annotation>
|
|
137
|
+
<xsd:documentation>Das Element extension definiert weitere Ausprägungen der Daten.</xsd:documentation>
|
|
138
|
+
<xsd:documentation>Extension = invoice:
|
|
139
|
+
Bei der Ausprägung „invoice“ müssen neben dem Namen der Datei der Rechnungsdaten noch die Eigenschaften Eingangsrechnung (invoiceType = Incoming) oder Ausgangsrechnung (invoiceType = Outgoing) zugeordnet werden.
|
|
140
|
+
Über die Ausprägung invoice werden dem Dokument Rechnungsinformationen zugeordnet. Beachten Sie, dass keine processID = 1 verwendet werden kann. Wird den Rechnungsinformationen kein Beleg zugeordnet, wird aus den strukturierten Rechnungsdaten eine Belegkopie durch erstellt und mit den Belegsätzen in Belege online verknüpft. Eine GUID kann dieser Belegkopie nicht über die Dokumentenverwaltungsdatei zugeordnet werden.
|
|
141
|
+
Extension = cashLedger:
|
|
142
|
+
Bei der Ausprägung „cashLedger“ müssen neben dem Namen der Datei der Kassendaten noch die Eigenschaften Buchungszeitraum und Kassenkontonummer oder Kassenname zugeordnet werden.
|
|
143
|
+
</xsd:documentation>
|
|
144
|
+
</xsd:annotation>
|
|
145
|
+
</xsd:element>
|
|
146
|
+
<xsd:element name="repository" type="repository" minOccurs="0" maxOccurs="1">
|
|
147
|
+
<xsd:annotation>
|
|
148
|
+
<xsd:documentation>Definition der Ablage-Struktur der Daten des ZIP-Archivs auf Dokumentenebene</xsd:documentation>
|
|
149
|
+
<xsd:documentation>Das Element repository definiert die Ablagestruktur. Das Dokument wird in Belege online in der gewählten Struktur abgelegt.</xsd:documentation>
|
|
150
|
+
</xsd:annotation>
|
|
151
|
+
</xsd:element>
|
|
152
|
+
<xsd:element name="documentintern" type="documentintern" minOccurs="0" maxOccurs="1">
|
|
153
|
+
<xsd:annotation>
|
|
154
|
+
<xsd:documentation>interene Informationen zu den Dokumenten</xsd:documentation>
|
|
155
|
+
</xsd:annotation>
|
|
156
|
+
</xsd:element>
|
|
157
|
+
</xsd:sequence>
|
|
158
|
+
<xsd:attribute name="guid" type="de:p10037" use="optional">
|
|
159
|
+
<xsd:annotation>
|
|
160
|
+
<xsd:documentation>GUID des Beleges z. B. aus einem Dokumentenmanagementsystem </xsd:documentation>
|
|
161
|
+
<xsd:documentation>Die GUID dient der eindeutigen Identifizierung des Dokuments und wird von dem abgebenden System erzeugt. Das Verfahren zur Erzeugung der GUID muss gewährleisten, dass die GUID eindeutig ist. Somit wird sichergestellt, dass nicht dieselbe GUID bei unterschiedlichen Dokumenten verwendet wird.
|
|
162
|
+
Die GUID des Dokuments wird für die Zuordnung des Dokuments zu dem entsprechenden Buchungssatz in Kanzlei-Rechnungswesen verwendet.
|
|
163
|
+
In der document.xml kann ein Dokument abgebildet werden, das aus mehreren einzelnen (physischen) Dateien besteht, d. h. mehrere extension-Elemente vom Typ File. Die Files werden dann zu einem Dokument geheftet.
|
|
164
|
+
Weitere Informationen zum Aufbau der GUID finden Sie unter w3c.org.
|
|
165
|
+
</xsd:documentation>
|
|
166
|
+
</xsd:annotation>
|
|
167
|
+
</xsd:attribute>
|
|
168
|
+
<xsd:attribute name="type" type="de:p25">
|
|
169
|
+
<xsd:annotation>
|
|
170
|
+
<xsd:documentation>Definition, um was für einen Typ es sich bei diesem Dokument handelt: Eingangs-, Ausgangsrechnung oder weder noch.</xsd:documentation>
|
|
171
|
+
<xsd:documentation>Das Attribut type muss nicht angegeben werden. Der Dokumenttyp charakterisiert die Art des Dokuments. Es gibt an, ob das Dokument dem Rechnungseingang (Wert =1) oder dem Rechnungsausgang (Wert 2) zugeordnet werden soll. In Belege online wird einem Belegtyp die entsprechende Belegkreis-Eigenschaft zugeordnet. Wird der Dokumenttype nicht spezifiziert, wird dem Dokument die Kennung „ohne Belegtyp“ zugeordnet.
|
|
172
|
+
Werden auch
|
|
173
|
+
- Strukturierte Rechnungsinformationen (Ausprägung extension = invoice)
|
|
174
|
+
- Belegsatzdaten für Eingangsrechnungen (Ausprägung extension = accountsPayableLedger)
|
|
175
|
+
- Belegsatzdaten für Ausgangsrechnungen (Ausprägung extension = accountsReceivableLedger)
|
|
176
|
+
mitgeliefert, müssen die Angaben im Feld type übereinstimmen mit den gelieferten extension-Inhalten.
|
|
177
|
+
</xsd:documentation>
|
|
178
|
+
</xsd:annotation>
|
|
179
|
+
</xsd:attribute>
|
|
180
|
+
<xsd:attribute name="processID" type="de:p26">
|
|
181
|
+
<xsd:annotation>
|
|
182
|
+
<xsd:documentation>Enthält Informationen zur Verarbeitung des Dokuments.</xsd:documentation>
|
|
183
|
+
<xsd:documentation>Das Attribut processID steuert die Weiterverarbeitung der Dokumente.
|
|
184
|
+
Enthält das Attribut den Wert 1 (= Buchungsrelevant), werden die Dokumente im Posteingang abgelegt. Bei der Verarbeitung von strukturierten Daten (extension = invoice, cashLedger, accountsPayableLedger oder accountsReceivableLedger) ist eine Ablage im Posteingang nicht zulässig.
|
|
185
|
+
Enthält das Attribut den Wert 2 (=Archivierungsrelevant), werden die Belege im Ordner abgelegt und festgeschrieben.
|
|
186
|
+
Buchungsrelevant
|
|
187
|
+
Wenn ein Dokument als Buchungsrelevant charakterisiert wird, erfolgt die Ablage im Posteingang in Belege online, auch wenn eine Ablagestruktur definiert ist. Ist der Buchungsassistent in Belege online aktiviert und wird das Dateiformat vom Buchungsassistenten unterstützt, werden für den Beleg Rechnungsdaten vorgeschlagen.
|
|
188
|
+
Diese Dokumente stehen anschließend für den Erfassungs- bzw. Buchungsprozess zur Verfügung. Werden Buchungsinformationen über einen weiteren Weg ausgetauscht, kann dies zu einer doppelten Buchung des Belegs führen.
|
|
189
|
+
Archivierungsrelevant
|
|
190
|
+
Wird ein Dokument als Archivierungsrelevant charakterisiert, erfolgt die Ablage in einem Ordner entweder automatisch durch die Verarbeitung von strukturierten Informationen (extension = invoice, cashLedger, accountsPayableLedger oder accountsReceivableLedger) oder durch entsprechende Angabe des Ablageorts repository in Belege online. Ist ein Beleg festgeschrieben, kann er in DATEV Unternehmen online nicht mehr weiterverarbeitet werden (Buchen, Zahlen).
|
|
191
|
+
|
|
192
|
+
</xsd:documentation>
|
|
193
|
+
</xsd:annotation>
|
|
194
|
+
</xsd:attribute>
|
|
195
|
+
</xsd:complexType>
|
|
196
|
+
<xsd:complexType name="documentintern">
|
|
197
|
+
<xsd:annotation>
|
|
198
|
+
<xsd:documentation>Ein document liefert zusätzliche Informationen zu einem document aus document.xml.</xsd:documentation>
|
|
199
|
+
</xsd:annotation>
|
|
200
|
+
<xsd:sequence>
|
|
201
|
+
<xsd:element name="property">
|
|
202
|
+
<xsd:annotation>
|
|
203
|
+
<xsd:documentation>Das Element „property“ enthält die Attribute zur Beschreibung des Extensiontyps "Invoice".</xsd:documentation>
|
|
204
|
+
</xsd:annotation>
|
|
205
|
+
<xsd:complexType>
|
|
206
|
+
<xsd:attribute name="value" type="de:p20" use="required">
|
|
207
|
+
<xsd:annotation>
|
|
208
|
+
<xsd:documentation>Das Attribut „value“ enthält immer den Wert zur erweiterten Beschreibung (key).</xsd:documentation>
|
|
209
|
+
</xsd:annotation>
|
|
210
|
+
</xsd:attribute>
|
|
211
|
+
<xsd:attribute name="key" type="de:p20" use="required">
|
|
212
|
+
<xsd:annotation>
|
|
213
|
+
<xsd:documentation>Das Attribut „key“ enthält immer die erweiterte Beschreibung der vorliegenden Extension</xsd:documentation>
|
|
214
|
+
</xsd:annotation>
|
|
215
|
+
</xsd:attribute>
|
|
216
|
+
</xsd:complexType>
|
|
217
|
+
</xsd:element>
|
|
218
|
+
</xsd:sequence>
|
|
219
|
+
</xsd:complexType>
|
|
220
|
+
<xsd:complexType name="repository">
|
|
221
|
+
<xsd:annotation>
|
|
222
|
+
<xsd:documentation>Das Element „repository“ enthält die Ablagestruktur der Daten des ZIP-Archivs.</xsd:documentation>
|
|
223
|
+
<xsd:documentation>In Belege online wird das Dokument unter Belege | Ordner abgelegt. Es kann dann die Kategorie, der Ordner und das Register ausgewählt werden. Die Ebenen müssen in der document.xml in der korrekten Reihenfolge angegeben werden.
|
|
224
|
+
Existiert die angegebene Kategorie, der Ordner und/oder das Register noch nicht, werden diese automatisch durch das Programm angelegt.
|
|
225
|
+
Tabelle der Standardablage:
|
|
226
|
+
Ausprägung Kategorie Ordner Register
|
|
227
|
+
invoice Buchführung IMPORT JJJJ MM Monatsname
|
|
228
|
+
cashLedger Buchführung IMPORT JJJJ Kasse MM Monatsname
|
|
229
|
+
accountsPayableLedger Buchführung IMPORT JJJJ RE MM Monatsname
|
|
230
|
+
accountsReceivableLedger Buchführung IMPORT JJJJ RA MM Monatsname
|
|
231
|
+
|
|
232
|
+
</xsd:documentation>
|
|
233
|
+
</xsd:annotation>
|
|
234
|
+
<xsd:sequence>
|
|
235
|
+
<xsd:element name="level" type="level" minOccurs="1" maxOccurs="3">
|
|
236
|
+
<xsd:annotation>
|
|
237
|
+
<xsd:documentation>Strukturiert die Hierarchieebenen der Ablagestruktur.</xsd:documentation>
|
|
238
|
+
<xsd:documentation>Definition für Level-id und -Name:
|
|
239
|
+
id = 1 entspricht der Kategorie, name = der entsprechende Begriff z. B. „Buchführung“
|
|
240
|
+
id = 2 entspricht dem Ordner, name = der entsprechende Begriff z. B. „FIBU“
|
|
241
|
+
id = 3 entspricht dem Register, name = der entsprechende Begriff z. B. „Ausgangsrechnungen“
|
|
242
|
+
</xsd:documentation>
|
|
243
|
+
</xsd:annotation>
|
|
244
|
+
</xsd:element>
|
|
245
|
+
</xsd:sequence>
|
|
246
|
+
</xsd:complexType>
|
|
247
|
+
<xsd:complexType name="level">
|
|
248
|
+
<xsd:annotation>
|
|
249
|
+
<xsd:documentation>Das Element „level“ definiert eine der Hierarchieebenen in der Ablage-Struktur.</xsd:documentation>
|
|
250
|
+
<xsd:documentation>In Belege online wird das Dokument unter Belege | Ordner abgelegt. Es kann dann die Kategorie, der Ordner und das Register ausgewählt werden. Die Ebenen müssen in der document.xml in der korrekten Reihenfolge angegeben werden.
|
|
251
|
+
Existieren die angegebene Kategorie, der Ordner und/oder das Register noch nicht, werden diese automatisch durch das Programm angelegt.
|
|
252
|
+
</xsd:documentation>
|
|
253
|
+
</xsd:annotation>
|
|
254
|
+
<xsd:attribute name="id" type="de:p27" use="required">
|
|
255
|
+
<xsd:annotation>
|
|
256
|
+
<xsd:documentation>Gibt die Hierachieebene an.</xsd:documentation>
|
|
257
|
+
<xsd:documentation>Definition für Level-id und -Name:
|
|
258
|
+
id = 1 entspricht der Kategorie, name = der entsprechende Begriff z. B. „Buchführung“
|
|
259
|
+
id = 2 entspricht dem Ordner, name = der entsprechende Begriff z. B. „FIBU“
|
|
260
|
+
id = 3 entspricht dem Register, name = der entsprechende Begriff z. B. „Ausgangsrechnungen“
|
|
261
|
+
</xsd:documentation>
|
|
262
|
+
</xsd:annotation>
|
|
263
|
+
</xsd:attribute>
|
|
264
|
+
<xsd:attribute name="name" type="de:p10008" use="required">
|
|
265
|
+
<xsd:annotation>
|
|
266
|
+
<xsd:documentation>Gibt die Bezeichnung der Hierachieebene an.</xsd:documentation>
|
|
267
|
+
<xsd:documentation>Definition für Level-id und -Name:
|
|
268
|
+
id = 1 entspricht der Kategorie, name = der entsprechende Begriff z. B. „Buchführung“
|
|
269
|
+
id = 2 entspricht dem Ordner, name = der entsprechende Begriff z. B. „FIBU“
|
|
270
|
+
id = 3 entspricht dem Register, name = der entsprechende Begriff z. B. „Ausgangsrechnungen“
|
|
271
|
+
</xsd:documentation>
|
|
272
|
+
</xsd:annotation>
|
|
273
|
+
</xsd:attribute>
|
|
274
|
+
</xsd:complexType>
|
|
275
|
+
<!-- abstract definition of extension -->
|
|
276
|
+
<xsd:complexType name="extension" abstract="true">
|
|
277
|
+
<xsd:annotation>
|
|
278
|
+
<xsd:documentation>Das Element extension kann mehrfach und in unterschiedlichen Ausprägungen vorkommen.</xsd:documentation>
|
|
279
|
+
<xsd:documentation>Die Ausprägung File kann pro Element document mehrfach vorkommen. Sie enthält die Belegbilder. Die aktuell zulässigen Formate für Belegbilder entnehmen Sie der Programmhilfe in Belege online.
|
|
280
|
+
|
|
281
|
+
Die Ausprägung invoice kann pro Element document nur einmal vorkommen. Sie enthält die strukturierten Rechnungsdaten entsprechend dem Schema Belegwesen_online_invoice_v....xsd.
|
|
282
|
+
|
|
283
|
+
Die Ausprägung cashLedger kann pro Element nur einmal vorkommen. Sie enthält die strukturierten Kassendaten entsprechend dem Schema Belegverwaltung_online_ledger_import_v....xsd.
|
|
284
|
+
|
|
285
|
+
Die Ausprägung accountsPayableLedger kann pro Element nur einmal vorkommen. Sie enthält die Belegsatzdaten für Eingangsrechnungen entsprechend dem Schema Belegverwaltung_online_ledger_import_v....xsd.
|
|
286
|
+
|
|
287
|
+
Die Ausprägung accountsReceivableLedger kann pro Element nur einmal vorkommen. Sie enthält die Belegsatzdaten für Ausgangsrechnungen entsprechend dem Schema Belegverwaltung_online_ledger_import_v....xsd.
|
|
288
|
+
</xsd:documentation>
|
|
289
|
+
</xsd:annotation>
|
|
290
|
+
</xsd:complexType>
|
|
291
|
+
<xsd:complexType name="Invoice">
|
|
292
|
+
<xsd:annotation>
|
|
293
|
+
<xsd:documentation>Eine Ausprägung der Erweiterung "extension". Sie enthält die Informationen über die strukturierten Rechnungsdaten.</xsd:documentation>
|
|
294
|
+
<xsd:documentation>Bei der Ausprägung invoice müssen neben dem Namen der Datei der Rechnungsdaten noch die Eigenschaften Eingangsrechnung (invoiceType = Incoming) oder Ausgangsrechnung (invoiceType = Outgoing) angegeben werden.
|
|
295
|
+
Über die Ausprägung invoice werden dem Dokument Rechnungsinformationen zugeordnet. Beachten Sie, dass keine processID = 1 verwendet werden kann, wenn Rechnungsinformationen mitgeliefert werden.
|
|
296
|
+
</xsd:documentation>
|
|
297
|
+
</xsd:annotation>
|
|
298
|
+
<xsd:complexContent>
|
|
299
|
+
<xsd:extension base="extension">
|
|
300
|
+
<xsd:sequence>
|
|
301
|
+
<xsd:element name="property" minOccurs="1" maxOccurs="1">
|
|
302
|
+
<xsd:annotation>
|
|
303
|
+
<xsd:documentation>Das Element „property“ enthält die Attribute zur Beschreibung des Extensiontyps "Invoice".</xsd:documentation>
|
|
304
|
+
<xsd:documentation>Das Element property enthält die Attribute zur Beschreibung der Datei mit den strukturierten Rechnungsdaten. Das Element property muss angegeben werden. Es spezifiziert die vorliegende Extension.</xsd:documentation>
|
|
305
|
+
</xsd:annotation>
|
|
306
|
+
<xsd:complexType>
|
|
307
|
+
<xsd:attribute name="value" type="de:p18" use="required">
|
|
308
|
+
<xsd:annotation>
|
|
309
|
+
<xsd:documentation>Das Attribut „value“ enthält immer den Wert zur erweiterten Beschreibung (key).</xsd:documentation>
|
|
310
|
+
<xsd:documentation>Das Attribut value definiert den Rechnungstyp. Bei Eingangsrechnungen ist der Typ „Incoming“, bei Ausgangsrechnungen „Outgoing“. </xsd:documentation>
|
|
311
|
+
</xsd:annotation>
|
|
312
|
+
</xsd:attribute>
|
|
313
|
+
<xsd:attribute name="key" type="de:p19" use="required">
|
|
314
|
+
<xsd:annotation>
|
|
315
|
+
<xsd:documentation>Das Attribut „key“ enthält immer die erweiterte Beschreibung der vorliegenden Extension</xsd:documentation>
|
|
316
|
+
<xsd:documentation>Das Attribut key definiert den Rechnungstyp. Der Typ ist „InvoiceType“.</xsd:documentation>
|
|
317
|
+
</xsd:annotation>
|
|
318
|
+
</xsd:attribute>
|
|
319
|
+
</xsd:complexType>
|
|
320
|
+
</xsd:element>
|
|
321
|
+
</xsd:sequence>
|
|
322
|
+
<xsd:attribute name="datafile" type="de:p20" use="required">
|
|
323
|
+
<xsd:annotation>
|
|
324
|
+
<xsd:documentation>Name der XML-Datei, die die Rechnung enthält.</xsd:documentation>
|
|
325
|
+
<xsd:documentation>Das Attribut datafile enthält immer den Dateinamen des mitgelieferten Dokuments.</xsd:documentation>
|
|
326
|
+
</xsd:annotation>
|
|
327
|
+
</xsd:attribute>
|
|
328
|
+
</xsd:extension>
|
|
329
|
+
</xsd:complexContent>
|
|
330
|
+
</xsd:complexType>
|
|
331
|
+
<xsd:complexType name="File">
|
|
332
|
+
<xsd:annotation>
|
|
333
|
+
<xsd:documentation>Die Extension "File" enthält die Informationen für die Bilddateien der Rechnung, sowie Signatur-Informationen, wenn es sich um eine elektronische Rechnung handelt. </xsd:documentation>
|
|
334
|
+
<xsd:documentation>Über die Ausprägung File werden dem Dokument die Belegdateien, d. h. die visualisierte Rechnung (Belegbild) und optional weitere Dateien (Anhänge), zugeordnet. Die Belegdateien werden entweder in einem Ordner oder im Posteingang bereitgestellt. Werden mehrere Belegdateien einem Dokument zugeordnet, werden diese in Belege online zu einem Dokument geheftet.</xsd:documentation>
|
|
335
|
+
</xsd:annotation>
|
|
336
|
+
<xsd:complexContent>
|
|
337
|
+
<xsd:extension base="extension">
|
|
338
|
+
<xsd:attribute name="name" type="de:p20" use="required">
|
|
339
|
+
<xsd:annotation>
|
|
340
|
+
<xsd:documentation>Übertragene Datei, z.B. eingescanntes Belegbild oder aus einem System erstellte Bilddatei.</xsd:documentation>
|
|
341
|
+
<xsd:documentation>Das Attribut file enthält den Namen der Bilddatei. Sonderzeichen im Beleg-Dateinamen müssen dem encoding ISO-8859-1 entsprechen. Der Dateiname muss in der document.xml nach dem entsprechenden Format (z. B. UTF-8) mit Maskierung des entsprechenden Sonderzeichens verwendet werden. Empfehlung: keine Dateinamen mit Sonderzeichen z. B. „-„ verwenden.</xsd:documentation>
|
|
342
|
+
</xsd:annotation>
|
|
343
|
+
</xsd:attribute>
|
|
344
|
+
</xsd:extension>
|
|
345
|
+
</xsd:complexContent>
|
|
346
|
+
</xsd:complexType>
|
|
347
|
+
<!-- neu für KABU -->
|
|
348
|
+
<xsd:complexType name="cashLedger">
|
|
349
|
+
<xsd:annotation>
|
|
350
|
+
<xsd:documentation>Eine Ausprägung der Erweiterung "extension". Sie enthält die Informationen über die strukturierten Kassendaten.</xsd:documentation>
|
|
351
|
+
<xsd:documentation>Über die Ausprägung cashLedger werden dem Dokument Kassendaten in strukturierter Form zugeordnet. Beachten Sie, dass keine processID = 1 verwendet werden kann, wenn Kasseninformationen mitgeliefert werden. Den Kasseninformationen wird in jedem Fall ein Import-Protokoll der übernommenen Kassensätze zugeordnet. Zusätzlich mitgelieferte Belege werden an dieses Import-Protokoll geheftet. Das Import-Protokoll (mit den evtl. angehefteten Belegen) wird mit den Belegsätzen im Kassenbuch online verknüpft. Es wird in Belege online im Ordner abgelegt. Eine GUID kann diesem Import-Protokoll nicht über die Dokumentenverwaltungsdatei zugeordnet werden.</xsd:documentation>
|
|
352
|
+
</xsd:annotation>
|
|
353
|
+
<xsd:complexContent>
|
|
354
|
+
<xsd:extension base="extension">
|
|
355
|
+
<xsd:sequence>
|
|
356
|
+
<xsd:element name="property" minOccurs="1" maxOccurs="2">
|
|
357
|
+
<xsd:annotation>
|
|
358
|
+
<xsd:documentation>Das Element „property“ enthält die Attribute zur Beschreibung des Extensiontyps "cashLedger".</xsd:documentation>
|
|
359
|
+
<xsd:documentation>Das Element property enthält die Attribute zur Beschreibung der Datei mit den strukturierten Kassendaten. Das Element property muss angegeben werden. Es spezifiziert die vorliegende Extension.</xsd:documentation>
|
|
360
|
+
</xsd:annotation>
|
|
361
|
+
<xsd:complexType>
|
|
362
|
+
<xsd:attribute name="value" type="cashPropertyValue" use="required">
|
|
363
|
+
<xsd:annotation>
|
|
364
|
+
<xsd:documentation>Das Attribut „value“ enthält immer den Wert zur erweiterten Beschreibung (key).</xsd:documentation>
|
|
365
|
+
<xsd:documentation>Das Attribut value enthält immer die erweiterte Beschreibung der vorliegenden Extension.
|
|
366
|
+
Es kann nur Value 2 oder 3 angegeben werden.
|
|
367
|
+
value = 1, key enthält die Periode der Kassenbelegdaten z. B. „20XX-01“ für Januar 20XX
|
|
368
|
+
value = 2, key enthält die Kassenkontonummer in Kassenbuch online z. B. „1000“
|
|
369
|
+
value = 3, key enthält die Kassenbezeichnung in Kassenbuch online z. B. „Kasse“
|
|
370
|
+
</xsd:documentation>
|
|
371
|
+
</xsd:annotation>
|
|
372
|
+
</xsd:attribute>
|
|
373
|
+
<xsd:attribute name="key" type="de:p32" use="required">
|
|
374
|
+
<xsd:annotation>
|
|
375
|
+
<xsd:documentation>Das Attribut „key“ enthält immer die erweiterte Beschreibung der vorliegenden Extension</xsd:documentation>
|
|
376
|
+
<xsd:documentation>Das Attribut key enthält immer die erweiterte Beschreibung der vorliegenden Extension.
|
|
377
|
+
key zu value 1 enthält die Periode der Kassenbelegdaten z. B. „20XX-01“ für Januar 20XX
|
|
378
|
+
key zu value 2 enthält die Kassenkontonummer in Kassenbuch online z. B. „1000“
|
|
379
|
+
key zu value 3 enthält die Kassenbezeichnung in Kassenbuch online z. B. „Kasse“
|
|
380
|
+
</xsd:documentation>
|
|
381
|
+
</xsd:annotation>
|
|
382
|
+
</xsd:attribute>
|
|
383
|
+
</xsd:complexType>
|
|
384
|
+
</xsd:element>
|
|
385
|
+
</xsd:sequence>
|
|
386
|
+
<xsd:attribute name="datafile" type="de:p20" use="required">
|
|
387
|
+
<xsd:annotation>
|
|
388
|
+
<xsd:documentation>Name der XML-Datei, die die Kassendaten enthält.</xsd:documentation>
|
|
389
|
+
<xsd:documentation>Das Attribut datafile enthält immer den Dateinamen des mitgelieferten Dokuments.</xsd:documentation>
|
|
390
|
+
</xsd:annotation>
|
|
391
|
+
</xsd:attribute>
|
|
392
|
+
</xsd:extension>
|
|
393
|
+
</xsd:complexContent>
|
|
394
|
+
</xsd:complexType>
|
|
395
|
+
<!-- Ende neu für KABU -->
|
|
396
|
+
<!-- neu für KABU-PayPal cashLedgerPayPal wird nur interne für PayPal-Import verwendet -->
|
|
397
|
+
<xsd:complexType name="cashLedgerPayPal">
|
|
398
|
+
<xsd:annotation>
|
|
399
|
+
<xsd:documentation>Eine Ausprägung der Erweiterung "extension". Sie enthält die Informationen über die strukturierten Kassendaten(PayPal-Import).</xsd:documentation>
|
|
400
|
+
</xsd:annotation>
|
|
401
|
+
<xsd:complexContent>
|
|
402
|
+
<xsd:extension base="extension">
|
|
403
|
+
<xsd:sequence>
|
|
404
|
+
<xsd:element name="property" maxOccurs="unbounded">
|
|
405
|
+
<xsd:annotation>
|
|
406
|
+
<xsd:documentation>Das Element „property“ enthält die Attribute zur Beschreibung des Extensiontyps "cashLedger".</xsd:documentation>
|
|
407
|
+
</xsd:annotation>
|
|
408
|
+
<xsd:complexType>
|
|
409
|
+
<xsd:attribute name="value" type="cashPropertyValue" use="required">
|
|
410
|
+
<xsd:annotation>
|
|
411
|
+
<xsd:documentation>Das Attribut „value“ enthält immer den Wert zur erweiterten Beschreibung (key).</xsd:documentation>
|
|
412
|
+
</xsd:annotation>
|
|
413
|
+
</xsd:attribute>
|
|
414
|
+
<xsd:attribute name="key" type="de:p32" use="required">
|
|
415
|
+
<xsd:annotation>
|
|
416
|
+
<xsd:documentation>Das Attribut „key“ enthält immer die erweiterte Beschreibung der vorliegenden Extension</xsd:documentation>
|
|
417
|
+
</xsd:annotation>
|
|
418
|
+
</xsd:attribute>
|
|
419
|
+
</xsd:complexType>
|
|
420
|
+
</xsd:element>
|
|
421
|
+
</xsd:sequence>
|
|
422
|
+
<xsd:attribute name="datafile" type="de:p20" use="required">
|
|
423
|
+
<xsd:annotation>
|
|
424
|
+
<xsd:documentation>Name der XML-Datei, die die Kassendaten(PayPal) enthält.</xsd:documentation>
|
|
425
|
+
</xsd:annotation>
|
|
426
|
+
</xsd:attribute>
|
|
427
|
+
</xsd:extension>
|
|
428
|
+
</xsd:complexContent>
|
|
429
|
+
</xsd:complexType>
|
|
430
|
+
<!-- Ende neu für KABU-PayPal -->
|
|
431
|
+
<!-- neu für REBU -->
|
|
432
|
+
<xsd:complexType name="accountsPayableLedger">
|
|
433
|
+
<xsd:annotation>
|
|
434
|
+
<xsd:documentation>Eine Ausprägung der Erweiterung "extension". Sie enthält die Informationen über die strukturierten Rechnungseingangsdaten.</xsd:documentation>
|
|
435
|
+
<xsd:documentation>Bei der Ausprägung accountsPayableLedger müssen neben dem Namen der Belegsatzdatendatei für Eingangsrechnungen noch die Eigenschaften Buchungszeitraum (key = 1) und Bezeichnung des Rechnungseingangsordners (key = 3)
|
|
436
|
+
angegeben werden. Bei Anlage des Rechnungseingangs wird von DATEV Unternehmen online „Eingangsrechnungen“ als Bezeichnung für den Rechnungsordner vorgeschlagen.
|
|
437
|
+
Über die Ausprägung accountsPayableLedger werden dem Dokument die Belegsatzdaten für Eingangsrechnungen zugeordnet. Beachten Sie, dass keine processID = 1 verwendet werden kann, wenn Belegsatzdaten für Eingangsrechnungen mitgeliefert werden. Den Belegsatzdaten für Eingangsrechnungen wird in jedem Fall ein Import-Protokoll der übernommenen Rechnungseingangssätze
|
|
438
|
+
zugeordnet. Zusätzlich mitgelieferte Belege werden vor dieses Import-Protokoll geheftet. Das Import-Protokoll (mit den evtl. angehefteten Belegen) wird mit den Belegsätzen in Belege online verknüpft. Eine GUID kann diesem Import-Protokoll nicht über die Dokumentenverwaltungsdatei zugeordnet werden.
|
|
439
|
+
</xsd:documentation>
|
|
440
|
+
</xsd:annotation>
|
|
441
|
+
<xsd:complexContent>
|
|
442
|
+
<xsd:extension base="extension">
|
|
443
|
+
<xsd:sequence>
|
|
444
|
+
<xsd:element name="property" minOccurs="1" maxOccurs="2">
|
|
445
|
+
<xsd:annotation>
|
|
446
|
+
<xsd:documentation>Das Element „property“ enthält die Attribute zur Beschreibung des Extensiontyps "accountsPayableLedger".</xsd:documentation>
|
|
447
|
+
<xsd:documentation>Das Element property enthält die Attribute zur Beschreibung der Datei mit den strukturierten Rechnungsdaten für den Rechnungseingang. Das Element property muss angegeben werden. Es spezifiziert die vorliegende Extension.</xsd:documentation>
|
|
448
|
+
</xsd:annotation>
|
|
449
|
+
<xsd:complexType>
|
|
450
|
+
<xsd:attribute name="value" type="invoicePropertyValue" use="required">
|
|
451
|
+
<xsd:annotation>
|
|
452
|
+
<xsd:documentation>Das Attribut „value“ enthält immer den Wert zur erweiterten Beschreibung (key).</xsd:documentation>
|
|
453
|
+
<xsd:documentation>Das Attribut value enthält immer die erweiterte Beschreibung der vorliegenden Extension.
|
|
454
|
+
value = 1, key enthält die Periode der Rechnungseingangsbelegdaten z. B. „20XX-01“ für Januar 20XX
|
|
455
|
+
value = 3, key enthält die Rechnungseingangsordnerbezeichnung in Belege online z. B. „Rechnungseingang“
|
|
456
|
+
</xsd:documentation>
|
|
457
|
+
</xsd:annotation>
|
|
458
|
+
</xsd:attribute>
|
|
459
|
+
<xsd:attribute name="key" type="de:p32" use="required">
|
|
460
|
+
<xsd:annotation>
|
|
461
|
+
<xsd:documentation>Das Attribut „key“ enthält immer die erweiterte Beschreibung der vorliegenden Extension</xsd:documentation>
|
|
462
|
+
<xsd:documentation>Das Attribut key enthält immer die erweiterte Beschreibung der vorliegenden Extension.
|
|
463
|
+
key zu value 1 enthält die Periode der Rechnungseingangsbelegdaten z. B. „20XX-01“ für Januar 20XX
|
|
464
|
+
key zu value 3 enthält die Rechnungseingangsordnerbezeichnung in Belege online z. B. „Rechnungseingang“
|
|
465
|
+
</xsd:documentation>
|
|
466
|
+
</xsd:annotation>
|
|
467
|
+
</xsd:attribute>
|
|
468
|
+
</xsd:complexType>
|
|
469
|
+
</xsd:element>
|
|
470
|
+
</xsd:sequence>
|
|
471
|
+
<xsd:attribute name="datafile" type="de:p20" use="required">
|
|
472
|
+
<xsd:annotation>
|
|
473
|
+
<xsd:documentation>Name der XML-Datei, die die Rechnungseingangs enthält.</xsd:documentation>
|
|
474
|
+
<xsd:documentation>Das Attribut datafile enthält immer den Dateinamen des mitgelieferten Dokuments.</xsd:documentation>
|
|
475
|
+
</xsd:annotation>
|
|
476
|
+
</xsd:attribute>
|
|
477
|
+
</xsd:extension>
|
|
478
|
+
</xsd:complexContent>
|
|
479
|
+
</xsd:complexType>
|
|
480
|
+
<!-- Ende neu für REBU -->
|
|
481
|
+
<!-- neu für RABU -->
|
|
482
|
+
<xsd:complexType name="accountsReceivableLedger">
|
|
483
|
+
<xsd:annotation>
|
|
484
|
+
<xsd:documentation>Eine Ausprägung der Erweiterung "extension". Sie enthält die Informationen über die strukturierten Rechnungsausgangsdaten.</xsd:documentation>
|
|
485
|
+
<xsd:documentation>Bei der Ausprägung accountsReceivableLedger müssen neben dem Namen der Belegsatzdaten für Ausgangsrechnungen noch die Eigenschaften Buchungszeitraum (key = 1) und Bezeichnung des Rechnungsausgangsordners (key = 3) angegeben werden. Bei Anlage des Rechnungsausgangs in Belege online wird vom System „Ausgangsrechnungen“ als Bezeichnung für den Rechnungsordner vorgeschlagen.
|
|
486
|
+
Über die Ausprägung accountsReceivableLedger werden dem Dokument Belegsatzdaten für Ausgangsrechnungen zugeordnet. Beachten Sie, dass keine processID = 1 verwendet werden kann, wenn Belegsatzdaten für Ausgangsrechnungen mitgeliefert werden. Den Belegsatzdaten für Ausgangsrechnungen wird in jedem Fall ein Import-Protokoll der übernommenen Rechnungsausgangssätze zugeordnet.
|
|
487
|
+
Zusätzlich mitgelieferte Belege werden vor dieses Import-Protokoll geheftet. Das Import-Protokoll (mit den evtl. angehefteten Belegen) wird mit den Belegsätzen Belege online verknüpft. Eine GUID kann diesem Import-Protokoll nicht über die Dokumentenverwaltungsdatei zugeordnet werden.
|
|
488
|
+
</xsd:documentation>
|
|
489
|
+
</xsd:annotation>
|
|
490
|
+
<xsd:complexContent>
|
|
491
|
+
<xsd:extension base="extension">
|
|
492
|
+
<xsd:sequence>
|
|
493
|
+
<xsd:element name="property" minOccurs="1" maxOccurs="2">
|
|
494
|
+
<xsd:annotation>
|
|
495
|
+
<xsd:documentation>Das Element „property“ enthält die Attribute zur Beschreibung des Extensiontyps "accountsReceivableLedger".</xsd:documentation>
|
|
496
|
+
<xsd:documentation>Das Element property enthält die Attribute zur Beschreibung der Datei mit den strukturierten Rechnungsdaten für den Rechnungseingang. Das Element property muss angegeben werden. Es spezifiziert die vorliegende Extension.</xsd:documentation>
|
|
497
|
+
</xsd:annotation>
|
|
498
|
+
<xsd:complexType>
|
|
499
|
+
<xsd:attribute name="value" type="invoicePropertyValue" use="required">
|
|
500
|
+
<xsd:annotation>
|
|
501
|
+
<xsd:documentation>Das Attribut „value“ enthält immer den Wert zur erweiterten Beschreibung (key).</xsd:documentation>
|
|
502
|
+
<xsd:documentation>Das Attribut value enthält immer die erweiterte Beschreibung der vorliegenden Extension.
|
|
503
|
+
value = 1, key enthält die Periode der Rechnungsausgangsbelegdaten z. B. „20XX-01“ für Januar 20XX
|
|
504
|
+
value = 3, key enthält die Rechnungsausgangsordnerbezeichnung in Belege online z. B. „Rechnungsausgang“
|
|
505
|
+
</xsd:documentation>
|
|
506
|
+
</xsd:annotation>
|
|
507
|
+
</xsd:attribute>
|
|
508
|
+
<xsd:attribute name="key" type="de:p32" use="required">
|
|
509
|
+
<xsd:annotation>
|
|
510
|
+
<xsd:documentation>Das Attribut „key“ enthält immer die erweiterte Beschreibung der vorliegenden Extension</xsd:documentation>
|
|
511
|
+
<xsd:documentation>Das Attribut key enthält immer die erweiterte Beschreibung der vorliegenden Extension.
|
|
512
|
+
key zu value 1 enthält die Periode der Rechnungsausgangsbelegdaten z. B. „20XX-01“ für Januar 20XX
|
|
513
|
+
key zu value 3 enthält die Rechnungsausgangsordnerbezeichnung in Belege online z. B. „Rechnungsausgang“
|
|
514
|
+
</xsd:documentation>
|
|
515
|
+
</xsd:annotation>
|
|
516
|
+
</xsd:attribute>
|
|
517
|
+
</xsd:complexType>
|
|
518
|
+
</xsd:element>
|
|
519
|
+
</xsd:sequence>
|
|
520
|
+
<xsd:attribute name="datafile" type="de:p20" use="required">
|
|
521
|
+
<xsd:annotation>
|
|
522
|
+
<xsd:documentation>Name der XML-Datei, die die Rechnungseingangs enthält.</xsd:documentation>
|
|
523
|
+
<xsd:documentation>Das Attribut datafile enthält immer den Dateinamen des mitgelieferten Dokuments.</xsd:documentation>
|
|
524
|
+
</xsd:annotation>
|
|
525
|
+
</xsd:attribute>
|
|
526
|
+
</xsd:extension>
|
|
527
|
+
</xsd:complexContent>
|
|
528
|
+
</xsd:complexType>
|
|
529
|
+
<!-- Ende neu für RABU -->
|
|
530
|
+
<!-- neu SEPA-File extension-->
|
|
531
|
+
<xsd:complexType name="SEPAFile">
|
|
532
|
+
<xsd:annotation>
|
|
533
|
+
<xsd:documentation>Die Extension "SEPAFile" enthält die Informationen für die SEPA/DTAUS-Datei.</xsd:documentation>
|
|
534
|
+
<xsd:documentation>Für die Auflösung von Sammelzahlungen in Kanzlei-Rechnungswesen kann eine SEPA-xml-/DTAUS-Datei übergeben werden. Die Datei muss zwingend in den Posteingang vorhanden sein.</xsd:documentation>
|
|
535
|
+
</xsd:annotation>
|
|
536
|
+
<xsd:complexContent>
|
|
537
|
+
<xsd:extension base="extension">
|
|
538
|
+
<xsd:attribute name="name" type="de:p20" use="required">
|
|
539
|
+
<xsd:annotation>
|
|
540
|
+
<xsd:documentation>SEPA-/DTAUS-Datei</xsd:documentation>
|
|
541
|
+
<xsd:documentation>Bei der Ausprägung SEPAFile muss der Name der Datei der Sammelzahlungssätze (DTAUS/SEPA-xml-Datei) angegeben werden. In Kanzlei-Rechnungswesen erfolgt durch die Übernahme dieser SEPA/DTAUS-Datei die Auflösung der Sammelzahlung in Einzelzahlungsbuchungen.
|
|
542
|
+
Beachten Sie, dass zwingend processID = 1 (Ablage im Posteingang) verwendet werden muss. Eine Kombination der Sammelzahlungssätze mit anderen Daten (file, invoice, cashLedger, accountsPayableLedger und accountsReceivableLedger) ist nicht zulässig.
|
|
543
|
+
Sonderzeichen im SEPA-Dateinamen müssen dem encoding ISO-8859-1 entsprechen. Der Dateiname muss in der document.xml nach dem entsprechenden Format (z. B. UTF-8) mit Maskierung des entsprechenden Sonderzeichens verwendet werden. Empfehlung: keine Dateinamen mit Sonderzeichen z. B. „-„ verwenden.
|
|
544
|
+
</xsd:documentation>
|
|
545
|
+
</xsd:annotation>
|
|
546
|
+
</xsd:attribute>
|
|
547
|
+
</xsd:extension>
|
|
548
|
+
</xsd:complexContent>
|
|
549
|
+
</xsd:complexType>
|
|
550
|
+
<!-- end-of abstract definition of extension -->
|
|
551
|
+
<!-- neu für KABU-->
|
|
552
|
+
<xsd:simpleType name="cashPropertyValue">
|
|
553
|
+
<xsd:annotation>
|
|
554
|
+
<xsd:documentation>Zusammenfassung unterschiedlicher Wertebereiche, die in Abhängigkeit vom gesetzten Key der Extension Key zum CashLedger erlaubt sind. (de:p28 für die Periode (Key: 1 = period); de:p10039 für Kassenkonto-Nummer (Key:2 = cashAccount); de:p10009 für die Kassenbezeichnung (Key: 3 = cashName)). Dieser SimpleType umfasst einen pro Key exakt spezifizierten Wertebereich des korrespondieren Value der Extension Key.</xsd:documentation>
|
|
555
|
+
</xsd:annotation>
|
|
556
|
+
<xsd:union memberTypes="de:p28 de:p10039 de:p10009"/>
|
|
557
|
+
</xsd:simpleType>
|
|
558
|
+
<!-- end-of abstract definition of extension -->
|
|
559
|
+
<!-- neu für REBU/RABU-->
|
|
560
|
+
<xsd:simpleType name="invoicePropertyValue">
|
|
561
|
+
<xsd:annotation>
|
|
562
|
+
<xsd:documentation>Zusammenfassung unterschiedlicher Wertebereiche, die in Abhängigkeit vom gesetzten Key der Extension Key zum accountsPayableLedger oder accountsReceivableLedger erlaubt sind. (de:p28 für die Periode (Key: 1 = period); de:p10009 für die Rechnungseingangs- oder -ausgangsordnerbezeichnung (Key: 3 = accountsPayableLedger oder accountsReceivableLedger)). Dieser SimpleType umfasst einen pro Key exakt spezifizierten Wertebereich des korrespondieren Value der Extension Key.</xsd:documentation>
|
|
563
|
+
</xsd:annotation>
|
|
564
|
+
<xsd:union memberTypes="de:p28 de:p10009"/>
|
|
565
|
+
</xsd:simpleType>
|
|
566
|
+
<!-- end-of abstract definition of extension -->
|
|
567
|
+
</xsd:schema>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_model"
|
|
4
|
+
|
|
5
|
+
module ZipDatev
|
|
6
|
+
module Validators
|
|
7
|
+
# Validates consolidation rules for multi-line invoices.
|
|
8
|
+
#
|
|
9
|
+
# DATEV requires that when an invoice has multiple line items:
|
|
10
|
+
# - The consolidated_amount must equal the sum of all line item amounts
|
|
11
|
+
# - All line items must have the same currency_code (or inherit from invoice)
|
|
12
|
+
# - All line items should have the same date (or inherit from invoice)
|
|
13
|
+
#
|
|
14
|
+
# This validator only runs for invoices with line items.
|
|
15
|
+
#
|
|
16
|
+
# @example Apply to Invoice
|
|
17
|
+
# validates_with ConsolidationValidator
|
|
18
|
+
class ConsolidationValidator < ActiveModel::Validator
|
|
19
|
+
def validate(record)
|
|
20
|
+
# Only validate if there are line items
|
|
21
|
+
return unless record.respond_to?(:multi_line?) && record.multi_line?
|
|
22
|
+
|
|
23
|
+
validate_line_items_valid(record)
|
|
24
|
+
validate_currencies_match(record)
|
|
25
|
+
validate_dates_match(record)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def validate_line_items_valid(record)
|
|
31
|
+
record.line_items.each_with_index do |line_item, index|
|
|
32
|
+
next if line_item.valid?
|
|
33
|
+
|
|
34
|
+
line_item.errors.each do |error|
|
|
35
|
+
record.errors.add(
|
|
36
|
+
:base,
|
|
37
|
+
"Line item #{index + 1} is invalid: #{error.attribute} #{error.message}"
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def validate_currencies_match(record)
|
|
44
|
+
currencies = record.line_items.filter_map do |item|
|
|
45
|
+
item.currency_code || record.currency_code
|
|
46
|
+
end.uniq
|
|
47
|
+
|
|
48
|
+
return if currencies.size <= 1
|
|
49
|
+
|
|
50
|
+
record.errors.add(
|
|
51
|
+
:base,
|
|
52
|
+
"All line items must have the same currency code, found: #{currencies.join(", ")}"
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def validate_dates_match(record)
|
|
57
|
+
dates = record.line_items.filter_map do |item|
|
|
58
|
+
item.date || record.date
|
|
59
|
+
end.uniq
|
|
60
|
+
|
|
61
|
+
return if dates.size <= 1
|
|
62
|
+
|
|
63
|
+
record.errors.add(
|
|
64
|
+
:base,
|
|
65
|
+
"All line items must have the same date, found: #{dates.map(&:to_s).join(", ")}"
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|