easybill 0.2.17

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.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +3 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +74 -0
  8. data/easybill.gemspec +28 -0
  9. data/lib/easybill.rb +52 -0
  10. data/lib/easybill/client.rb +116 -0
  11. data/lib/easybill/configuration.rb +43 -0
  12. data/lib/easybill/customer.rb +4 -0
  13. data/lib/easybill/document.rb +34 -0
  14. data/lib/easybill/error.rb +3 -0
  15. data/lib/easybill/payment.rb +4 -0
  16. data/lib/easybill/railtie.rb +12 -0
  17. data/lib/easybill/version.rb +3 -0
  18. data/lib/sekken_patches/importer.rb +8 -0
  19. data/spec/easybill/client_spec.rb +189 -0
  20. data/spec/easybill/configuration_spec.rb +30 -0
  21. data/spec/easybill/document_spec.rb +41 -0
  22. data/spec/easybill_spec.rb +14 -0
  23. data/spec/fixtures/fixtures.yml +98 -0
  24. data/spec/fixtures/vcr_cassettes/add_document_payment_-_adds_a_payment_.yml +1677 -0
  25. data/spec/fixtures/vcr_cassettes/create_document_-_raises_Easybill_Error_if_unsuccessful_.yml +1669 -0
  26. data/spec/fixtures/vcr_cassettes/create_document_-_returns_an_Easybill_Document_on_success_.yml +1677 -0
  27. data/spec/fixtures/vcr_cassettes/create_dunning_-_creates_a_warning_.yml +1742 -0
  28. data/spec/fixtures/vcr_cassettes/find_documents_by_document_number_-_finds_documents_.yml +1671 -0
  29. data/spec/fixtures/vcr_cassettes/get_customer_-_raises_Easybill_Error_if_unsuccessful_.yml +1678 -0
  30. data/spec/fixtures/vcr_cassettes/get_customer_-_returns_an_Easybill_Customer_on_success_.yml +1727 -0
  31. data/spec/fixtures/vcr_cassettes/get_customer_by_customer_number_-_raises_Easybill_Error_if_unsuccessful_.yml +1678 -0
  32. data/spec/fixtures/vcr_cassettes/get_customer_by_customer_number_-_returns_an_Easybill_Customer_on_success_.yml +1671 -0
  33. data/spec/fixtures/vcr_cassettes/get_document_payments_-_returns_an_array_of_Easybill_Payment_on_success_.yml +1727 -0
  34. data/spec/fixtures/vcr_cassettes/get_document_pdf_-_returns_a_document_PDF_.yml +1727 -0
  35. data/spec/fixtures/vcr_cassettes/get_document_sent_-_receives_sent_date_.yml +1727 -0
  36. data/spec/fixtures/vcr_cassettes/get_documents_-_returns_an_Easybill_Document_array_on_success_.yml +1729 -0
  37. data/spec/fixtures/vcr_cassettes/get_documents_-_returns_an_empty_array_if_there_are_no_documents_.yml +1675 -0
  38. data/spec/fixtures/vcr_cassettes/local_copy_5c31767ec9fc284da7e4858f3580fb50.yml +1177 -0
  39. data/spec/fixtures/vcr_cassettes/search_customers_-_returns_an_array_of_matching_Easybill_Customers_.yml +2754 -0
  40. data/spec/fixtures/vcr_cassettes/search_customers_-_returns_an_empty_array_when_no_customers_are_found_.yml +1671 -0
  41. data/spec/fixtures/vcr_cassettes/set_customer_-_raises_Easybill_Error_if_unsuccessful_.yml +1700 -0
  42. data/spec/fixtures/vcr_cassettes/set_customer_-_returns_an_Easybill_Customer_on_success_.yml +1687 -0
  43. data/spec/spec_helper.rb +54 -0
  44. data/spec/support/fixture.rb +16 -0
  45. data/spec/support/matchers.rb +6 -0
  46. data/spec/support/method_interceptor.rb +56 -0
  47. data/wsdl/soap.companyposition.xsd +235 -0
  48. data/wsdl/soap.customer.xsd +773 -0
  49. data/wsdl/soap.document.xsd +799 -0
  50. data/wsdl/soap.easybill.wsdl +1087 -0
  51. metadata +219 -0
@@ -0,0 +1,799 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <xsd:schema xmlns:document="http://www.easybill.de/webservice/document/"
4
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
+ xmlns:commons="http://www.easybill.de/webservice/commons/"
6
+ targetNamespace="http://www.easybill.de/webservice/document/"
7
+ version="1.0">
8
+
9
+ <xsd:import namespace="http://www.easybill.de/webservice/commons/"
10
+ schemaLocation="soap.commons.xsd" />
11
+
12
+ <!-- Faults -->
13
+ <xsd:element name="DocumentPositionNotFoundFault" type="document:DocumentPositionFaultType" />
14
+ <xsd:complexType name="DocumentPositionFaultType">
15
+ <xsd:sequence />
16
+ </xsd:complexType>
17
+
18
+ <xsd:element name="DocumentNotFoundFault" type="document:DocumentNotFoundFaultType" />
19
+ <xsd:complexType name="DocumentNotFoundFaultType">
20
+ <xsd:sequence>
21
+ <xsd:element name="documentID" type="xsd:unsignedLong" />
22
+ </xsd:sequence>
23
+ </xsd:complexType>
24
+
25
+ <!-- DATA -->
26
+
27
+ <xsd:complexType name="documentpositiontype">
28
+ <xsd:sequence>
29
+ <xsd:element name="positionType" minOccurs="1" maxOccurs="1">
30
+ <xsd:simpleType>
31
+ <xsd:restriction base="xsd:string">
32
+ <xsd:enumeration value="POSITION">
33
+ <xsd:annotation>
34
+ <xsd:documentation>Eine Rechnungsposition einfügen</xsd:documentation>
35
+ </xsd:annotation>
36
+ </xsd:enumeration>
37
+ <xsd:enumeration value="TEXT">
38
+ <xsd:annotation>
39
+ <xsd:documentation>Einen allgemeinen Text einfügen (dies ist keine Rechnungsposition)</xsd:documentation>
40
+ </xsd:annotation>
41
+ </xsd:enumeration>
42
+ <xsd:enumeration value="POSITION_NOCALC">
43
+ <xsd:annotation>
44
+ <xsd:documentation>Eine Rechnungsposition einfügen (alternativ Posten der nicht berechnet wird)</xsd:documentation>
45
+ </xsd:annotation>
46
+ </xsd:enumeration>
47
+ </xsd:restriction>
48
+ </xsd:simpleType>
49
+ </xsd:element>
50
+ <xsd:element name="itemNumber" minOccurs="0" maxOccurs="1" nillable="true">
51
+ <xsd:annotation>
52
+ <xsd:documentation>Nummer der Rechnungsposition (siehe Companyposition->itemNumber)</xsd:documentation>
53
+ </xsd:annotation>
54
+ <xsd:simpleType>
55
+ <xsd:restriction base="xsd:string">
56
+ <xsd:maxLength value="20" />
57
+ <xsd:minLength value="1" />
58
+ </xsd:restriction>
59
+ </xsd:simpleType>
60
+ </xsd:element>
61
+ <xsd:element name="itemDescription" minOccurs="1" maxOccurs="1">
62
+ <xsd:annotation>
63
+ <xsd:documentation>Beschreibung der Rechnungsposition (siehe Companyposition->itemDescription)</xsd:documentation>
64
+ </xsd:annotation>
65
+ <xsd:simpleType>
66
+ <xsd:restriction base="xsd:string">
67
+ <xsd:maxLength value="1000" />
68
+ <xsd:minLength value="1" />
69
+ </xsd:restriction>
70
+ </xsd:simpleType>
71
+ </xsd:element>
72
+ <xsd:element name="count" minOccurs="1" maxOccurs="1" type="xsd:float" nillable="true">
73
+ <xsd:annotation>
74
+ <xsd:documentation>Beschreibung der Rechnungsposition (siehe Companyposition->count)</xsd:documentation>
75
+ </xsd:annotation>
76
+ </xsd:element>
77
+ <xsd:element name="unit" minOccurs="1" maxOccurs="1" nillable="true">
78
+ <xsd:annotation>
79
+ <xsd:documentation>Bezeichnung der Einheit (siehe Companyposition->unit)</xsd:documentation>
80
+ </xsd:annotation>
81
+ <xsd:simpleType>
82
+ <xsd:restriction base="xsd:string">
83
+ <xsd:minLength value="1" />
84
+ <xsd:maxLength value="10" />
85
+ </xsd:restriction>
86
+ </xsd:simpleType>
87
+ </xsd:element>
88
+ <xsd:element name="singlePriceNetto" minOccurs="1" maxOccurs="1" type="xsd:float" nillable="true">
89
+ <xsd:annotation>
90
+ <xsd:documentation>Verkaufspreis netto in kleinster Einheit ihrer Währung (z.B. cent bei Euro )</xsd:documentation>
91
+ </xsd:annotation>
92
+ </xsd:element>
93
+ <xsd:element name="ustPercent" minOccurs="1" maxOccurs="1" type="xsd:float" nillable="true">
94
+ <xsd:annotation>
95
+ <xsd:documentation>Umsatzsteuerprozentwert</xsd:documentation>
96
+ </xsd:annotation>
97
+ </xsd:element>
98
+ <xsd:element name="discount" minOccurs="0" maxOccurs="1" type="xsd:float" nillable="true">
99
+ <xsd:annotation>
100
+ <xsd:documentation>Feldwert für Diskont. Art des Rabatts erklärt sich aus discountType.
101
+ Beträge in einer Währung müssen in der kleinsten Einheit sein (z.B. Cent bei Euro)</xsd:documentation>
102
+ </xsd:annotation>
103
+ </xsd:element>
104
+ <xsd:element name="discountType" minOccurs="0" maxOccurs="1">
105
+ <xsd:annotation>
106
+ <xsd:documentation>Art des Diskount (Betrag oder Prozent)</xsd:documentation>
107
+ </xsd:annotation>
108
+ <xsd:simpleType>
109
+ <xsd:restriction base="xsd:string">
110
+ <xsd:enumeration value="AMOUNT">
111
+ <xsd:annotation>
112
+ <xsd:documentation></xsd:documentation>
113
+ </xsd:annotation>
114
+ </xsd:enumeration>
115
+ <xsd:enumeration value="PERCENT">
116
+ <xsd:annotation>
117
+ <xsd:documentation></xsd:documentation>
118
+ </xsd:annotation>
119
+ </xsd:enumeration>
120
+ </xsd:restriction>
121
+ </xsd:simpleType>
122
+ </xsd:element>
123
+ <xsd:element name="companyPositionID" type="xsd:unsignedLong" minOccurs="0" maxOccurs="1" >
124
+ <xsd:annotation>
125
+ <xsd:documentation>Referenz auf eine Ihrer Rechnungsposten (companyPosition)</xsd:documentation>
126
+ </xsd:annotation>
127
+ </xsd:element>
128
+ <xsd:element name="exportID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
129
+ <xsd:annotation>
130
+ <xsd:documentation>FiBu Konto</xsd:documentation>
131
+ </xsd:annotation>
132
+ </xsd:element>
133
+ <xsd:element name="exportCost1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
134
+ <xsd:annotation>
135
+ <xsd:documentation>Kostenstelle 1</xsd:documentation>
136
+ </xsd:annotation>
137
+ </xsd:element>
138
+ <xsd:element name="exportCost2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
139
+ <xsd:annotation>
140
+ <xsd:documentation>Kostenstelle 2</xsd:documentation>
141
+ </xsd:annotation>
142
+ </xsd:element>
143
+ </xsd:sequence>
144
+ </xsd:complexType>
145
+
146
+
147
+ <xsd:complexType name="documentdescriptiontype">
148
+ <xsd:sequence>
149
+ <xsd:element name="documentType" minOccurs="0" maxOccurs="1">
150
+ <xsd:simpleType>
151
+ <xsd:restriction base="xsd:string">
152
+ <xsd:enumeration value="INVOICE">
153
+ <xsd:annotation>
154
+ <xsd:documentation>Rechnung</xsd:documentation>
155
+ </xsd:annotation>
156
+ </xsd:enumeration>
157
+ <xsd:enumeration value="OFFER">
158
+ <xsd:annotation>
159
+ <xsd:documentation>Angebot</xsd:documentation>
160
+ </xsd:annotation>
161
+ </xsd:enumeration>
162
+ <xsd:enumeration value="CREDIT">
163
+ <xsd:annotation>
164
+ <xsd:documentation>Gutschrift</xsd:documentation>
165
+ </xsd:annotation>
166
+ </xsd:enumeration>
167
+ <xsd:enumeration value="CHARGE">
168
+ <xsd:annotation>
169
+ <xsd:documentation>Auftrag</xsd:documentation>
170
+ </xsd:annotation>
171
+ </xsd:enumeration>
172
+ <xsd:enumeration value="DELIVERY">
173
+ <xsd:annotation>
174
+ <xsd:documentation>Lieferschein</xsd:documentation>
175
+ </xsd:annotation>
176
+ </xsd:enumeration>
177
+ <xsd:enumeration value="ORDER">
178
+ <xsd:annotation>
179
+ <xsd:documentation>Bestellung</xsd:documentation>
180
+ </xsd:annotation>
181
+ </xsd:enumeration>
182
+ <xsd:enumeration value="REMINDER">
183
+ <xsd:annotation>
184
+ <xsd:documentation>Erinnerung</xsd:documentation>
185
+ </xsd:annotation>
186
+ </xsd:enumeration>
187
+ <xsd:enumeration value="DUNNING">
188
+ <xsd:annotation>
189
+ <xsd:documentation>Mahnung</xsd:documentation>
190
+ </xsd:annotation>
191
+ </xsd:enumeration>
192
+ <xsd:enumeration value="STORNO">
193
+ <xsd:annotation>
194
+ <xsd:documentation>Storno</xsd:documentation>
195
+ </xsd:annotation>
196
+ </xsd:enumeration>
197
+ </xsd:restriction>
198
+ </xsd:simpleType>
199
+ </xsd:element>
200
+ <xsd:element name="documentID" type="xsd:unsignedLong" minOccurs="0" maxOccurs="1">
201
+ <xsd:annotation>
202
+ <xsd:documentation>Die DocumentID ermöglich die eindeutige Identifikation des Dokumentes. Sie wird nicht beim erstellen eines Dokumentes benötigt</xsd:documentation>
203
+ </xsd:annotation>
204
+ </xsd:element>
205
+ <xsd:element name="customerID" type="xsd:unsignedLong" minOccurs="1" maxOccurs="1">
206
+ <xsd:annotation>
207
+ <xsd:documentation>CustomerID (nicht CustomerNumber) des Kunden, für den die Rechnung erstellt wird.</xsd:documentation>
208
+ </xsd:annotation>
209
+ </xsd:element>
210
+ <xsd:element name="currency" type="xsd:string" minOccurs="1" maxOccurs="1">
211
+ <xsd:annotation>
212
+ <xsd:documentation>Standardisiert nach ISO 4217</xsd:documentation>
213
+ </xsd:annotation>
214
+ </xsd:element>
215
+ <xsd:element name="textPrefix" type="xsd:string" minOccurs="0" maxOccurs="1">
216
+ <xsd:annotation>
217
+ <xsd:documentation>Text im oberen Teil der Rechnung</xsd:documentation>
218
+ </xsd:annotation>
219
+ </xsd:element>
220
+ <xsd:element name="text" type="xsd:string" minOccurs="0" maxOccurs="1">
221
+ <xsd:annotation>
222
+ <xsd:documentation>Text im unteren Teil der Rechnung, neben Summenblock</xsd:documentation>
223
+ </xsd:annotation>
224
+ </xsd:element>
225
+ <xsd:element name="contactLabel" type="xsd:string" minOccurs="0" maxOccurs="1">
226
+ <xsd:annotation>
227
+ <xsd:documentation>Kontaktinformation (Beschriftung)</xsd:documentation>
228
+ </xsd:annotation>
229
+ </xsd:element>
230
+ <xsd:element name="contactText" type="xsd:string" minOccurs="0" maxOccurs="1">
231
+ <xsd:annotation>
232
+ <xsd:documentation>Kontaktinformation (Inhalt)</xsd:documentation>
233
+ </xsd:annotation>
234
+ </xsd:element>
235
+ <xsd:element name="documentPosition" type="document:documentpositiontype" minOccurs="0" maxOccurs="unbounded" />
236
+ <xsd:element name="taxOptions" minOccurs="0" maxOccurs="1" nillable="true" type="commons:taxOptionsType" />
237
+ <xsd:element name="documentDate" minOccurs="0" maxOccurs="1" nillable="true">
238
+ <xsd:annotation>
239
+ <xsd:documentation>Dokumentendatum (Unix-Timestamp)</xsd:documentation>
240
+ </xsd:annotation>
241
+ <xsd:simpleType>
242
+ <xsd:restriction base="xsd:long" />
243
+ </xsd:simpleType>
244
+ </xsd:element>
245
+ <xsd:element name="serviceDate" minOccurs="0" maxOccurs="1" nillable="true">
246
+ <xsd:annotation>
247
+ <xsd:documentation>Leistungsdatum
248
+ (falls nicht angegen, erfolgt die Standardanzeige)</xsd:documentation>
249
+ </xsd:annotation>
250
+ <xsd:simpleType>
251
+ <xsd:restriction base="xsd:string">
252
+ <xsd:minLength value="1" />
253
+ <xsd:maxLength value="100" />
254
+ </xsd:restriction>
255
+ </xsd:simpleType>
256
+ </xsd:element>
257
+ <xsd:element name="documentNumber" minOccurs="0" maxOccurs="1" nillable="true">
258
+ <xsd:annotation>
259
+ <xsd:documentation>Dokumentennummer
260
+ (falls nicht angegen, erfolgt die Standardanzeige)</xsd:documentation>
261
+ </xsd:annotation>
262
+ <xsd:simpleType>
263
+ <xsd:restriction base="xsd:string">
264
+ <xsd:minLength value="1" />
265
+ <xsd:maxLength value="100" />
266
+ </xsd:restriction>
267
+ </xsd:simpleType>
268
+ </xsd:element>
269
+ <xsd:element name="documentTitle" minOccurs="0" maxOccurs="1" nillable="true">
270
+ <xsd:annotation>
271
+ <xsd:documentation>Dokumententitel</xsd:documentation>
272
+ </xsd:annotation>
273
+ <xsd:simpleType>
274
+ <xsd:restriction base="xsd:string">
275
+ <xsd:minLength value="1" />
276
+ <xsd:maxLength value="80" />
277
+ </xsd:restriction>
278
+ </xsd:simpleType>
279
+ </xsd:element>
280
+ <xsd:element name="cashAllowance" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:float">
281
+ <xsd:annotation>
282
+ <xsd:documentation>Skonto als Prozentwert
283
+ (falls nicht angegen, erfolgt die Standardanzeige; Voreinstellung Kunde/Unternehmen)</xsd:documentation>
284
+ </xsd:annotation>
285
+ </xsd:element>
286
+ <xsd:element name="cashAllowanceDays" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:unsignedShort">
287
+ <xsd:annotation>
288
+ <xsd:documentation>Tage in denen der Skonto aktiv ist
289
+ (falls nicht angegen, erfolgt die Standardanzeige; Voreinstellung Kunde/Unternehmen)</xsd:documentation>
290
+ </xsd:annotation>
291
+ </xsd:element>
292
+ <xsd:element name="cashDiscount" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:float">
293
+ <xsd:annotation>
294
+ <xsd:documentation>Rabatt (Prozent oder Betrag abhängig vom Eintrag in 'cashdiscounttype')</xsd:documentation>
295
+ </xsd:annotation>
296
+ </xsd:element>
297
+ <xsd:element name="cashDiscountType" minOccurs="0" maxOccurs="1" nillable="true">
298
+ <xsd:simpleType>
299
+ <xsd:restriction base="xsd:string">
300
+ <xsd:enumeration value="PERCENT">
301
+ <xsd:annotation>
302
+ <xsd:documentation>Nicht steuerbar (Drittland)</xsd:documentation>
303
+ </xsd:annotation>
304
+ </xsd:enumeration>
305
+ <xsd:enumeration value="AMOUNT">
306
+ <xsd:annotation>
307
+ <xsd:documentation>Nicht steuerbar (EU mit UStID-Nr.)</xsd:documentation>
308
+ </xsd:annotation>
309
+ </xsd:enumeration>
310
+ </xsd:restriction>
311
+ </xsd:simpleType>
312
+ </xsd:element>
313
+ <xsd:element name="gracePeriod" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:unsignedShort">
314
+ <xsd:annotation>
315
+ <xsd:documentation>Zahlungsziel (Tage)</xsd:documentation>
316
+ </xsd:annotation>
317
+ </xsd:element>
318
+ <xsd:element name="amount" minOccurs="1" maxOccurs="1" type="xsd:float" nillable="true">
319
+ <xsd:annotation>
320
+ <xsd:documentation>Rechnungsbetrag</xsd:documentation>
321
+ </xsd:annotation>
322
+ </xsd:element>
323
+ <xsd:element name="amountNetto" minOccurs="1" maxOccurs="1" type="xsd:float" nillable="true">
324
+ <xsd:annotation>
325
+ <xsd:documentation>Rechnungsbetrag (netto)</xsd:documentation>
326
+ </xsd:annotation>
327
+ </xsd:element>
328
+
329
+ <xsd:element name="bankTransfer" minOccurs="0" maxOccurs="1" nillable="true">
330
+ <xsd:simpleType>
331
+ <xsd:restriction base="xsd:string">
332
+ <xsd:enumeration value="DE">
333
+ <xsd:annotation>
334
+ <xsd:documentation>Überweisungsträger</xsd:documentation>
335
+ </xsd:annotation>
336
+ </xsd:enumeration>
337
+ <xsd:enumeration value="EU">
338
+ <xsd:annotation>
339
+ <xsd:documentation>Überweisungsträger (EU)</xsd:documentation>
340
+ </xsd:annotation>
341
+ </xsd:enumeration>
342
+ </xsd:restriction>
343
+ </xsd:simpleType>
344
+ </xsd:element>
345
+
346
+ <xsd:element name="refID" minOccurs="0" maxOccurs="1" type="xsd:unsignedLong" nillable="true">
347
+ <xsd:annotation>
348
+ <xsd:documentation>Referenzdokument</xsd:documentation>
349
+ </xsd:annotation>
350
+ </xsd:element>
351
+
352
+ <xsd:element name="stornoID" minOccurs="0" maxOccurs="1" type="xsd:unsignedLong" nillable="true">
353
+ <xsd:annotation>
354
+ <xsd:documentation>Verweis auf das Dokument welches die Stornierung beinhaltet. Nur gefüllt falls Dokument storniert.</xsd:documentation>
355
+ </xsd:annotation>
356
+ </xsd:element>
357
+
358
+
359
+ </xsd:sequence>
360
+ </xsd:complexType>
361
+
362
+
363
+ <xsd:complexType name="CreateDocumentType">
364
+ <xsd:complexContent>
365
+ <xsd:extension base="document:documentdescriptiontype">
366
+ <xsd:sequence>
367
+ <xsd:element name="signDocument" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
368
+ <xsd:annotation>
369
+ <xsd:documentation>Dokument mit einer qualifizierten digitalen Signatur versehen.</xsd:documentation>
370
+ </xsd:annotation>
371
+ </xsd:element>
372
+ <xsd:element name="sendasemail" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
373
+ <xsd:annotation>
374
+ <xsd:documentation>Versende das Dokument als E-Mail an den Kunden.
375
+ Dies setzt vorraus dass der Kunde eine E-Mail Adresse hat.</xsd:documentation>
376
+ </xsd:annotation>
377
+ </xsd:element>
378
+ <xsd:element name="emailSubject" type="xsd:string" minOccurs="0" maxOccurs="1">
379
+ <xsd:annotation>
380
+ <xsd:documentation>E-Mail Betreff</xsd:documentation>
381
+ </xsd:annotation>
382
+ </xsd:element>
383
+ <xsd:element name="emailText" type="xsd:string" minOccurs="0" maxOccurs="1">
384
+ <xsd:annotation>
385
+ <xsd:documentation>E-Mail Text</xsd:documentation>
386
+ </xsd:annotation>
387
+ </xsd:element>
388
+ <xsd:element name="sendaspost" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
389
+ <xsd:annotation>
390
+ <xsd:documentation>Versende das Dokument per Post an den Kunden.</xsd:documentation>
391
+ </xsd:annotation>
392
+ </xsd:element>
393
+ <xsd:element name="sendbyself" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
394
+ <xsd:annotation>
395
+ <xsd:documentation>Dokument selber versendet.</xsd:documentation>
396
+ </xsd:annotation>
397
+ </xsd:element>
398
+ <xsd:element name="templateName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
399
+ <xsd:annotation>
400
+ <xsd:documentation>Name der Druckvorlage</xsd:documentation>
401
+ </xsd:annotation>
402
+ </xsd:element>
403
+ <xsd:element name="suppressResponsePDF" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
404
+ <xsd:annotation>
405
+ <xsd:documentation>PDF nicht zurücksenden (Netzwerkresourcen sparen)</xsd:documentation>
406
+ </xsd:annotation>
407
+ </xsd:element>
408
+ </xsd:sequence>
409
+ </xsd:extension>
410
+ </xsd:complexContent>
411
+ </xsd:complexType>
412
+
413
+ <xsd:element name="CreateDocumentRequest" type="document:CreateDocumentType" />
414
+
415
+ <xsd:complexType name="documentcreatedtype">
416
+ <xsd:sequence>
417
+ <xsd:element name="fileName" type="xsd:string" minOccurs="1" maxOccurs="1">
418
+ <xsd:annotation>
419
+ <xsd:documentation>Name der Datei</xsd:documentation>
420
+ </xsd:annotation>
421
+ </xsd:element>
422
+ <xsd:element name="file" type="xsd:base64Binary" minOccurs="0" maxOccurs="1" >
423
+ <xsd:annotation>
424
+ <xsd:documentation>Base64 gepackter Dateiinhalt</xsd:documentation>
425
+ </xsd:annotation>
426
+ </xsd:element>
427
+ <xsd:element name="signDocument" type="xsd:boolean" minOccurs="0" maxOccurs="1">
428
+ <xsd:annotation>
429
+ <xsd:documentation>Rückmeldung ob das Dokument signiert wurde</xsd:documentation>
430
+ </xsd:annotation>
431
+ </xsd:element>
432
+ <xsd:element name="signexception" type="xsd:string" minOccurs="0" maxOccurs="1" >
433
+ <xsd:annotation>
434
+ <xsd:documentation>Rückmeldung, falls ein Fehler beim signieren aufgetreten ist.</xsd:documentation>
435
+ </xsd:annotation>
436
+ </xsd:element>
437
+ <xsd:element name="sentasemail" type="xsd:boolean" minOccurs="0" maxOccurs="1">
438
+ <xsd:annotation>
439
+ <xsd:documentation>Rückmeldung ob das Dokument in E-Mail Queue eingefügt wurde</xsd:documentation>
440
+ </xsd:annotation>
441
+ </xsd:element>
442
+ <xsd:element name="emailsendexception" type="xsd:string" minOccurs="0" maxOccurs="1" >
443
+ <xsd:annotation>
444
+ <xsd:documentation>Rückmeldung, falls ein Fehler beim versenden aufgetreten ist.</xsd:documentation>
445
+ </xsd:annotation>
446
+ </xsd:element>
447
+ <xsd:element name="sentaspost" type="xsd:boolean" minOccurs="0" maxOccurs="1">
448
+ <xsd:annotation>
449
+ <xsd:documentation>Rückmeldung ob das Dokument in Post Queue eingefügt wurde</xsd:documentation>
450
+ </xsd:annotation>
451
+ </xsd:element>
452
+ <xsd:element name="postsendexception" type="xsd:string" minOccurs="0" maxOccurs="1" >
453
+ <xsd:annotation>
454
+ <xsd:documentation>Rückmeldung, falls ein Fehler beim versenden aufgetreten ist.</xsd:documentation>
455
+ </xsd:annotation>
456
+ </xsd:element>
457
+ <xsd:element name="document" type="document:documentdescriptiontype" minOccurs="0" maxOccurs="1">
458
+ <xsd:annotation>
459
+ <xsd:documentation>Gibt die Details einer Rechnung in maschinenlesbarer Form zurück</xsd:documentation>
460
+ </xsd:annotation>
461
+ </xsd:element>
462
+ </xsd:sequence>
463
+ </xsd:complexType>
464
+ <xsd:element name="CreateDocumentResponse" type="document:documentcreatedtype" />
465
+
466
+
467
+ <!-- Reminder -->
468
+ <xsd:complexType name="createReminderType">
469
+ <xsd:sequence>
470
+ <xsd:element name="invoiceId" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:unsignedLong">
471
+ <xsd:annotation>
472
+ <xsd:documentation>Rechnungs-Id für die die Mahnung genieriert werden soll</xsd:documentation>
473
+ </xsd:annotation>
474
+ </xsd:element>
475
+ <xsd:element name="textPrefix" type="xsd:string" minOccurs="0" maxOccurs="1">
476
+ <xsd:annotation>
477
+ <xsd:documentation>Text im oberen Teil der Rechnung</xsd:documentation>
478
+ </xsd:annotation>
479
+ </xsd:element>
480
+ <xsd:element name="text" type="xsd:string" minOccurs="0" maxOccurs="1">
481
+ <xsd:annotation>
482
+ <xsd:documentation>Text im unteren Teil der Rechnung, neben Summenblock</xsd:documentation>
483
+ </xsd:annotation>
484
+ </xsd:element>
485
+ <xsd:element name="contactLabel" type="xsd:string" minOccurs="0" maxOccurs="1">
486
+ <xsd:annotation>
487
+ <xsd:documentation>Kontaktinformation (Beschriftung)</xsd:documentation>
488
+ </xsd:annotation>
489
+ </xsd:element>
490
+ <xsd:element name="contactText" type="xsd:string" minOccurs="0" maxOccurs="1">
491
+ <xsd:annotation>
492
+ <xsd:documentation>Kontaktinformation (Inhalt)</xsd:documentation>
493
+ </xsd:annotation>
494
+ </xsd:element>
495
+ <xsd:element name="signDocument" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
496
+ <xsd:annotation>
497
+ <xsd:documentation>Dokument mit einer qualifizierten digitalen Signatur versehen.</xsd:documentation>
498
+ </xsd:annotation>
499
+ </xsd:element>
500
+ <xsd:element name="sendasemail" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
501
+ <xsd:annotation>
502
+ <xsd:documentation>Versende das Dokument als E-Mail an den Kunden.
503
+ Dies setzt vorraus dass der Kunde eine E-Mail Adresse hat.</xsd:documentation>
504
+ </xsd:annotation>
505
+ </xsd:element>
506
+ <xsd:element name="emailSubject" type="xsd:string" minOccurs="0" maxOccurs="1">
507
+ <xsd:annotation>
508
+ <xsd:documentation>E-Mail Betreff</xsd:documentation>
509
+ </xsd:annotation>
510
+ </xsd:element>
511
+ <xsd:element name="emailText" type="xsd:string" minOccurs="0" maxOccurs="1">
512
+ <xsd:annotation>
513
+ <xsd:documentation>E-Mail Text</xsd:documentation>
514
+ </xsd:annotation>
515
+ </xsd:element>
516
+ <xsd:element name="sendaspost" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
517
+ <xsd:annotation>
518
+ <xsd:documentation>Versende das Dokument per Post an den Kunden.</xsd:documentation>
519
+ </xsd:annotation>
520
+ </xsd:element>
521
+ <xsd:element name="sendbyself" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
522
+ <xsd:annotation>
523
+ <xsd:documentation>Dokument selber versendet.</xsd:documentation>
524
+ </xsd:annotation>
525
+ </xsd:element>
526
+ <xsd:element name="templateName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
527
+ <xsd:annotation>
528
+ <xsd:documentation>Name der Druckvorlage</xsd:documentation>
529
+ </xsd:annotation>
530
+ </xsd:element>
531
+ <xsd:element name="suppressResponsePDF" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
532
+ <xsd:annotation>
533
+ <xsd:documentation>PDF nicht zurücksenden (Netzwerkresourcen sparen)</xsd:documentation>
534
+ </xsd:annotation>
535
+ </xsd:element>
536
+ </xsd:sequence>
537
+ </xsd:complexType>
538
+
539
+ <xsd:element name="CreateReminderRequest" type="document:createReminderType" />
540
+ <xsd:element name="CreateReminderResponse" type="document:documentcreatedtype" />
541
+
542
+ <xsd:element name="CreateDunningRequest" type="document:createReminderType" />
543
+ <xsd:element name="CreateDunningResponse" type="document:documentcreatedtype" />
544
+
545
+ <!-- Get document -->
546
+ <xsd:complexType name="GetDocumentType">
547
+ <xsd:complexContent>
548
+ <xsd:extension base="document:documentdescriptiontype">
549
+ <xsd:sequence>
550
+ <xsd:element name="payed" minOccurs="0" maxOccurs="1" default="false" nillable="true" type="xsd:boolean">
551
+ <xsd:annotation>
552
+ <xsd:documentation>Ist die Rechnung bezahlt</xsd:documentation>
553
+ </xsd:annotation>
554
+ </xsd:element>
555
+ </xsd:sequence>
556
+ </xsd:extension>
557
+ </xsd:complexContent>
558
+ </xsd:complexType>
559
+
560
+ <!-- Ausbau 2; Abfrage aller Dokumente eines Kunden -->
561
+ <!-- Ausbau 3; Status und Zeitbereich - Kunde optional -->
562
+ <!-- Ausbau 4; Aufnahme von stornierten Dokumenten -->
563
+ <xsd:complexType name="GetDocumentsRequestType">
564
+ <xsd:sequence>
565
+ <xsd:element name="CustomerId" type="xsd:unsignedLong" minOccurs="0" maxOccurs="1">
566
+ <xsd:annotation><xsd:documentation>Nur für diesen Kunden</xsd:documentation></xsd:annotation>
567
+ </xsd:element>
568
+ <xsd:element name="StatusType" minOccurs="0" maxOccurs="1">
569
+ <xsd:annotation><xsd:documentation>Nur dieser Status</xsd:documentation></xsd:annotation>
570
+ <xsd:simpleType>
571
+ <xsd:restriction base="xsd:string">
572
+ <xsd:enumeration value="DUE">
573
+ <xsd:annotation>
574
+ <xsd:documentation>Die Rechnung ist fällig</xsd:documentation>
575
+ </xsd:annotation>
576
+ </xsd:enumeration>
577
+ <xsd:enumeration value="PAYED">
578
+ <xsd:annotation>
579
+ <xsd:documentation>Die Rechnung wurde bezahlt</xsd:documentation>
580
+ </xsd:annotation>
581
+ </xsd:enumeration>
582
+ <xsd:enumeration value="OPEN">
583
+ <xsd:annotation>
584
+ <xsd:documentation>Die Rechnung ist noch fällig und noch nicht bezahlt</xsd:documentation>
585
+ </xsd:annotation>
586
+ </xsd:enumeration>
587
+ <xsd:enumeration value="OFFERS_OPEN">
588
+ <xsd:annotation>
589
+ <xsd:documentation>Angebote die erstellt wurden aber noch nicht beauftragt sind</xsd:documentation>
590
+ </xsd:annotation>
591
+ </xsd:enumeration>
592
+ </xsd:restriction>
593
+ </xsd:simpleType>
594
+ </xsd:element>
595
+ <xsd:element name="LimitPeriod" minOccurs="0" maxOccurs="1">
596
+ <xsd:annotation><xsd:documentation>Nur Dokumente (Dokumentendatum) innerhalb dieses Zeitraumes suchen</xsd:documentation></xsd:annotation>
597
+ <xsd:complexType>
598
+ <xsd:attribute name="from" type="xsd:date" use="required" />
599
+ <xsd:attribute name="until" type="xsd:date" use="required" />
600
+ </xsd:complexType>
601
+ </xsd:element>
602
+ <xsd:element name="Canceled" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false">
603
+ <xsd:annotation><xsd:documentation>Sollen stornierte Dokumente berücksichtigt werden?</xsd:documentation></xsd:annotation>
604
+ </xsd:element>
605
+ </xsd:sequence>
606
+ </xsd:complexType>
607
+
608
+ <xsd:complexType name="GetDocumentsResponseType">
609
+ <xsd:sequence>
610
+ <xsd:element name="Document" type="document:GetDocumentType" minOccurs="0" maxOccurs="unbounded" />
611
+ </xsd:sequence>
612
+ </xsd:complexType>
613
+
614
+ <xsd:element name="GetDocumentsRequest" type="document:GetDocumentsRequestType" />
615
+ <xsd:element name="GetDocumentsResponse" type="document:GetDocumentsResponseType" />
616
+
617
+ <xsd:element name="GetDocumentRequest" type="xsd:unsignedLong" />
618
+ <xsd:element name="GetDocumentResponse" type="document:GetDocumentType" />
619
+
620
+ <xsd:element name="FindDocumentsByDocumentNumberRequest" type="xsd:string" />
621
+ <xsd:element name="FindDocumentsByDocumentNumberResponse" type="document:GetDocumentsResponseType" />
622
+
623
+ <xsd:complexType name="GetDocumentPDFResponseType">
624
+ <xsd:sequence>
625
+ <xsd:element name="file" type="xsd:base64Binary" minOccurs="1" maxOccurs="1" >
626
+ <xsd:annotation>
627
+ <xsd:documentation>Base64 gepackter Dateiinhalt</xsd:documentation>
628
+ </xsd:annotation>
629
+ </xsd:element>
630
+ <xsd:element name="filename" type="xsd:string" minOccurs="1" maxOccurs="1" />
631
+ </xsd:sequence>
632
+ </xsd:complexType>
633
+
634
+ <xsd:element name="GetDocumentPDFRequest" type="xsd:unsignedLong" >
635
+ <xsd:annotation>
636
+ <xsd:documentation>DocumentId</xsd:documentation>
637
+ </xsd:annotation>
638
+ </xsd:element>
639
+ <xsd:element name="GetDocumentPDFResponse" type="document:GetDocumentPDFResponseType" />
640
+
641
+ <!-- Ausbau 3; payment -->
642
+ <xsd:complexType name="documentpaymenttype">
643
+ <xsd:sequence>
644
+ <xsd:element name="documentID" type="xsd:unsignedLong" minOccurs="0" maxOccurs="1">
645
+ <xsd:annotation>
646
+ <xsd:documentation>Die DocumentID ermöglich die eindeutige Identifikation des Dokumentes</xsd:documentation>
647
+ </xsd:annotation>
648
+ </xsd:element>
649
+ <xsd:element name="amount" minOccurs="1" maxOccurs="1" type="xsd:float">
650
+ <xsd:annotation>
651
+ <xsd:documentation>Betrag der bezahlt wurde, in kleinster Einheit ihrer Währung (z.B. cent bei Euro )</xsd:documentation>
652
+ </xsd:annotation>
653
+ </xsd:element>
654
+ <xsd:element name="paymentdate" minOccurs="1" maxOccurs="1" type="xsd:date">
655
+ <xsd:annotation>
656
+ <xsd:documentation>Zahlungsdatum</xsd:documentation>
657
+ </xsd:annotation>
658
+ </xsd:element>
659
+ <xsd:element name="paymenttype" minOccurs="1" maxOccurs="1" type="xsd:string">
660
+ <xsd:annotation>
661
+ <xsd:documentation>Zahlungsart</xsd:documentation>
662
+ </xsd:annotation>
663
+ </xsd:element>
664
+ <xsd:element name="notice" minOccurs="0" maxOccurs="1" type="xsd:string" nillable="true">
665
+ <xsd:annotation>
666
+ <xsd:documentation>allgemeine Information</xsd:documentation>
667
+ </xsd:annotation>
668
+ </xsd:element>
669
+ <xsd:element name="payed" minOccurs="0" maxOccurs="1" type="xsd:boolean" nillable="true">
670
+ <xsd:annotation>
671
+ <xsd:documentation>Wurde die Rechnung vollständig bezahlt</xsd:documentation>
672
+ </xsd:annotation>
673
+ </xsd:element>
674
+ </xsd:sequence>
675
+ </xsd:complexType>
676
+
677
+ <xsd:element name="AddDocumentPaymentRequest" type="document:documentpaymenttype" />
678
+ <xsd:element name="AddDocumentPaymentResponse" type="xsd:boolean" />
679
+
680
+ <xsd:element name="GetDocumentPaymentsRequest" type="xsd:unsignedLong">
681
+ <xsd:annotation>
682
+ <xsd:documentation>Gibt alle Zahlungen eines Dokuments zurück - Anfrage Parameter DokumentId </xsd:documentation>
683
+ </xsd:annotation>
684
+ </xsd:element>
685
+
686
+ <xsd:complexType name="GetDocumentPaymentsType">
687
+ <xsd:sequence>
688
+ <xsd:element name="Payment" type="document:documentpaymenttype" minOccurs="0" maxOccurs="unbounded"/>
689
+ <xsd:element name="payed" type="xsd:boolean" minOccurs="0" maxOccurs="1" nillable="true"/>
690
+ <xsd:element name="toPay" type="xsd:float" minOccurs="0" maxOccurs="1" nillable="true">
691
+ <xsd:annotation>
692
+ <xsd:documentation>Betrag der noch zu bezahlen ist, in kleinster Einheit ihrer Währung (z.B. cent bei Euro )</xsd:documentation>
693
+ </xsd:annotation>
694
+ </xsd:element>
695
+ </xsd:sequence>
696
+ </xsd:complexType>
697
+
698
+ <xsd:element name="GetDocumentPaymentsResponse" type="document:GetDocumentPaymentsType" />
699
+
700
+ <!-- Cancel / Credit / Storno / Gutschrift -->
701
+ <xsd:complexType name="CreditCancelRequestType">
702
+ <xsd:sequence>
703
+ <xsd:element name="documentID" type="xsd:unsignedLong" minOccurs="1" maxOccurs="1" nillable="false">
704
+ <xsd:annotation>
705
+ <xsd:documentation>Die DocumentID ermöglich die eindeutige Identifikation des Dokumentes.</xsd:documentation>
706
+ </xsd:annotation>
707
+ </xsd:element>
708
+ <xsd:element name="emailSubject" type="xsd:string" minOccurs="0" maxOccurs="1">
709
+ <xsd:annotation>
710
+ <xsd:documentation>E-Mail Betreff</xsd:documentation>
711
+ </xsd:annotation>
712
+ </xsd:element>
713
+ <xsd:element name="emailText" type="xsd:string" minOccurs="0" maxOccurs="1">
714
+ <xsd:annotation>
715
+ <xsd:documentation>E-Mail Text</xsd:documentation>
716
+ </xsd:annotation>
717
+ </xsd:element>
718
+ <xsd:element name="sendasemail" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
719
+ <xsd:annotation>
720
+ <xsd:documentation>Versende das Dokument als E-Mail an den Kunden.
721
+ Dies setzt vorraus dass der Kunde eine E-Mail Adresse hat.</xsd:documentation>
722
+ </xsd:annotation>
723
+ </xsd:element>
724
+ <xsd:element name="sendaspost" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
725
+ <xsd:annotation>
726
+ <xsd:documentation>Versende das Dokument per Post an den Kunden.</xsd:documentation>
727
+ </xsd:annotation>
728
+ </xsd:element>
729
+ <xsd:element name="sendbyself" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean">
730
+ <xsd:annotation>
731
+ <xsd:documentation>Dokument selber versendet.</xsd:documentation>
732
+ </xsd:annotation>
733
+ </xsd:element>
734
+
735
+ </xsd:sequence>
736
+ </xsd:complexType>
737
+
738
+ <!-- Cancel / Storno -->
739
+ <xsd:element name="ToCancelDocumentRequest" type="document:CreditCancelRequestType" />
740
+ <xsd:element name="ToCancelDocumentResponse" type="document:GetDocumentType" />
741
+
742
+ <!-- Credit / Gutschrift -->
743
+ <xsd:element name="ToCreditDocumentRequest" type="document:CreditCancelRequestType" />
744
+ <xsd:element name="ToCreditDocumentResponse" type="document:GetDocumentType" />
745
+
746
+ <xsd:complexType name="DocumentSentType">
747
+ <xsd:annotation>
748
+ <xsd:documentation>Wann wurde das Dokument versendet</xsd:documentation>
749
+ </xsd:annotation>
750
+ <xsd:sequence>
751
+ <xsd:element name="Sent" minOccurs="0" maxOccurs="unbounded">
752
+ <xsd:annotation>
753
+ <xsd:documentation>Einzelversand des Dokuments</xsd:documentation>
754
+ </xsd:annotation>
755
+ <xsd:complexType>
756
+ <xsd:sequence>
757
+ <xsd:element name="sentDate" type="xsd:date" minOccurs="0" maxOccurs="1" nillable="true">
758
+ <xsd:annotation>
759
+ <xsd:documentation>Versanddatum falls Leer - Versand noch nicht durchgeführt</xsd:documentation>
760
+ </xsd:annotation>
761
+ </xsd:element>
762
+ <xsd:element name="sendType" minOccurs="1" maxOccurs="1" >
763
+ <xsd:annotation>
764
+ <xsd:documentation>Versandart</xsd:documentation>
765
+ </xsd:annotation>
766
+ <xsd:simpleType>
767
+ <xsd:restriction base="xsd:string">
768
+ <xsd:enumeration value="EMAIL">
769
+ <xsd:annotation>
770
+ <xsd:documentation>Versendet als E-Mail</xsd:documentation>
771
+ </xsd:annotation>
772
+ </xsd:enumeration>
773
+ <xsd:enumeration value="POST">
774
+ <xsd:annotation>
775
+ <xsd:documentation>Versendet als Postwurfsendung</xsd:documentation>
776
+ </xsd:annotation>
777
+ </xsd:enumeration>
778
+ <xsd:enumeration value="FAX">
779
+ <xsd:annotation>
780
+ <xsd:documentation>Versendet als Fax</xsd:documentation>
781
+ </xsd:annotation>
782
+ </xsd:enumeration>
783
+ </xsd:restriction>
784
+ </xsd:simpleType>
785
+ </xsd:element>
786
+ </xsd:sequence>
787
+ </xsd:complexType>
788
+ </xsd:element>
789
+ </xsd:sequence>
790
+ </xsd:complexType>
791
+
792
+ <xsd:element name="GetDocumentSentRequest" type="xsd:unsignedLong">
793
+ <xsd:annotation>
794
+ <xsd:documentation>Gibt alle Versandzeiten eines Dokuments zurück - Anfrage Parameter DokumentId </xsd:documentation>
795
+ </xsd:annotation>
796
+ </xsd:element>
797
+ <xsd:element name="GetDocumentSentResponse" type="document:DocumentSentType" />
798
+
799
+ </xsd:schema>