datev 0.3.1 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38fbb6b78613770842a83df919e0652c421d8902
4
- data.tar.gz: ec4669a8aed09afbbcb33dfff44bbad0ac3d1c98
3
+ metadata.gz: b6c528c7ca4a5ad0e5aceec6ac0776778513f979
4
+ data.tar.gz: 0bec1561db96d7e0f026fa66091bb5de0a0dab60
5
5
  SHA512:
6
- metadata.gz: 02f1d2fd376c43b074c9db571240e51dca041f4588b7b31c3c2e7807f91479e62a60a653f203b84f7fd5f9b256840d72a1b0f82d1d2f3bb141fa1e31cceeedc8
7
- data.tar.gz: 471d96bdb4a0c00f7c4a151e80c2d3e8d7967b7304634605db6e3309fd3c0cbd63f7d5dd3297814a14da913ce0bd643ee48ab33e36631b4bd55ed75649545373
6
+ metadata.gz: 6899a123c19ab1617bb4d3bc55b1f9bab2c74a91156813ed3c1adc31686ce72b993ed02b8fb4f3a054f34cfdfaa31b714cea795a9e83cf9cc0f20f38948a4eee
7
+ data.tar.gz: a01fbbdb2086ada39ae9ca6e0f45bc5adddd26e90c642f6eba1327b597375336e4774e8849638957d47122a0c00c8060e03321659c9203717fdf8b8fb31fa82b
@@ -0,0 +1,5 @@
1
+ EXTF;510;16;Debitoren/Kreditoren;4;20160623152500000;;XY;Chief Accounting Officer;;123;456;20160101;4;;;Kunden und Lieferanten;;;;;;;;;
2
+ Konto;Name (Adressatentyp Unternehmen);Unternehmensgegenstand;Name (Adressatentyp nat�rl. Person);Vorname (Adressatentyp nat�rl. Person);Name (Adressatentyp keine Angabe);Adressatentyp;Kurzbezeichnung;EU-Land;EU-USt-IdNr.;Anrede;Titel/Akad. Grad;Adelstitel;Namensvorsatz;Adressart;Stra�e;Postfach;Postleitzahl;Ort;Land;Versandzusatz;Adresszusatz;Abweichende Anrede;Abw. Zustellbezeichnung 1;Abw. Zustellbezeichnung 2;Kennz. Korrespondenzadresse;Adresse G�ltig von;Adresse G�ltig bis;Telefon;Bemerkung (Telefon);Telefon Gesch�ftsleitung;Bemerkung (Telefon GL);E-Mail;Bemerkung (E-Mail);Internet;Bemerkung (Internet);Fax;Bemerkung (Fax);Sonstige;Bemerkung (Sonstige);Bankleitzahl 1;Bankbezeichnung 1;Bankkonto-Nummer 1;L�nderkennzeichen 1;IBAN 1;Leerfeld 1;SWIFT-Code 1;Abw. Kontoinhaber 1;Kennz. Haupt-Bankverb. 1;Bankverb. 1 G�ltig von;Bankverb. 1 G�ltig bis;Bankleitzahl 2;Bankbezeichnung 2;Bankkonto-Nummer 2;L�nderkennzeichen 2;IBAN 2;Leerfeld 2;SWIFT-Code 2;Abw. Kontoinhaber 2;Kennz. Haupt-Bankverb. 2;Bankverb. 2 G�ltig von;Bankverb. 2 G�ltig bis;Bankleitzahl 3;Bankbezeichnung 3;Bankkonto-Nummer 3;L�nderkennzeichen 3;IBAN 3;Leerfeld 3;SWIFT-Code 3;Abw. Kontoinhaber 3;Kennz. Haupt-Bankverb. 3;Bankverb. 3 G�ltig von;Bankverb. 3 G�ltig bis;Bankleitzahl 4;Bankbezeichnung 4;Bankkonto-Nummer 4;L�nderkennzeichen 4;IBAN 4;Leerfeld 4;SWIFT-Code 4;Abw. Kontoinhaber 4;Kennz. Haupt-Bankverb. 4;Bankverb. 4 G�ltig von;Bankverb. 4 G�ltig bis;Bankleitzahl 5;Bankbezeichnung 5;Bankkonto-Nummer 5;L�nderkennzeichen 5;IBAN 5;Leerfeld 5;SWIFT-Code 5;Abw. Kontoinhaber 5;Kennz. Haupt-Bankverb. 5;Bankverb. 5 G�ltig von;Bankverb. 5 G�ltig bis;Leerfeld 11;Briefanrede;Gru�formel;Kundennummer;Steuernummer;Sprache;Ansprechpartner;Vertreter;Sachbearbeiter;Diverse-Konto;Ausgabeziel;W�hrungssteuerung;Kreditlimit (Debitor);Zahlungsbedingung;F�lligkeit in Tagen (Debitor);Skonto in Prozent (Debitor);Kreditoren-Ziel 1 (Tage);Kreditoren-Skonto 1 (%);Kreditoren-Ziel 2 (Tage);Kreditoren-Skonto 2 (%);Kreditoren-Ziel 3 (Tage);Kreditoren-Skonto 3 (%);Kreditoren-Ziel 4 (Tage);Kreditoren-Skonto 4 (%);Kreditoren-Ziel 5 (Tage);Kreditoren-Skonto 5 (%);Mahnung;Kontoauszug;Mahntext;Mahntext 2;Mahntext 3;Kontoauszugstext;Mahnlimit Betrag;Mahnlimit %;Zinsberechnung;Mahnzinssatz 1;Mahnzinssatz 2;Mahnzinssatz 3;Lastschrift;Verfahren;Mandantenbank;Zahlungstr�ger;Indiv. Feld 1;Indiv. Feld 2;Indiv. Feld 3;Indiv. Feld 4;Indiv. Feld 5;Indiv. Feld 6;Indiv. Feld 7;Indiv. Feld 8;Indiv. Feld 9;Indiv. Feld 10;Indiv. Feld 11;Indiv. Feld 12;Indiv. Feld 13;Indiv. Feld 14;Indiv. Feld 15;Abweichende Anrede (Rechnungsadresse);Adressart (Rechnungsadresse);Stra�e (Rechnungsadresse);Postfach (Rechnungsadresse);Postleitzahl (Rechnungsadresse);Ort (Rechnungsadresse);Land (Rechnungsadresse);Versandzusatz (Rechnungsadresse);Adresszusatz (Rechnungsadresse);Abw. Zustellbezeichnung 1 (Rechnungsadresse);Abw. Zustellbezeichnung 2 (Rechnungsadresse);Adresse G�ltig von (Rechnungsadresse);Adresse G�ltig bis (Rechnungsadresse);Bankleitzahl 6;Bankbezeichnung 6;Bankkonto-Nummer 6;L�nderkennzeichen 6;IBAN 6;Leerfeld 6;SWIFT-Code 6;Abw. Kontoinhaber 6;Kennz. Haupt-Bankverb. 6;Bankverb. 6 G�ltig von;Bankverb. 6 G�ltig bis;Bankleitzahl 7;Bankbezeichnung 7;Bankkonto-Nummer 7;L�nderkennzeichen 7;IBAN 7;Leerfeld 7;SWIFT-Code 7;Abw. Kontoinhaber 7;Kennz. Haupt-Bankverb. 7;Bankverb. 7 G�ltig von;Bankverb. 7 G�ltig bis;Bankleitzahl 8;Bankbezeichnung 8;Bankkonto-Nummer 8;L�nderkennzeichen 8;IBAN 8;Leerfeld 8;SWIFT-Code 8;Abw. Kontoinhaber 8;Kennz. Haupt-Bankverb. 8;Bankverb. 8 G�ltig von;Bankverb. 8 G�ltig bis;Bankleitzahl 9;Bankbezeichnung 9;Bankkonto-Nummer 9;L�nderkennzeichen 9;IBAN 9;Leerfeld 9;SWIFT-Code 9;Abw. Kontoinhaber 9;Kennz. Haupt-Bankverb. 9;Bankverb. 9 G�ltig von;Bankverb. 9 G�ltig bis;Bankleitzahl 10;Bankbezeichnung 10;Bankkonto-Nummer 10;L�nderkennzeichen 10;IBAN 10;Leerfeld 10;SWIFT-Code 10;Abw. Kontoinhaber 10;Kennz. Haupt-Bankverb. 10;Bankverb. 10 G�ltig von;Bankverb. 10 G�ltig bis;Nummer Fremdsystem;Insolvent;SEPA-Mandatsreferenz 1;SEPA-Mandatsreferenz 2;SEPA-Mandatsreferenz 3;SEPA-Mandatsreferenz 4;SEPA-Mandatsreferenz 5;SEPA-Mandatsreferenz 6;SEPA-Mandatsreferenz 7;SEPA-Mandatsreferenz 8;SEPA-Mandatsreferenz 9;SEPA-Mandatsreferenz 10;Verkn�pftes OPOS-Konto;Mahnsperre bis;Lastschriftsperre bis;Zahlungssperre bis;Geb�hrenberechnung;Mahngeb�hr 1;Mahngeb�hr 2;Mahngeb�hr 3;Pauschalberechnung;Verzugspauschale 1;Verzugspauschale 2;Verzugspauschale 3
3
+ 10000;;;Mustermann;Sabine;;1;;;;Frau;Dr.;;;STR;Am Haagelspf�dchen 14;;50999;K�ln;DE;;;;;;;;;0221/1234567;;;;sabine@mustermann.de;;www.mustermann.de;;0221/1234568;;;;;;;;DE12500105170648489890;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Sehr geehrte Frau Dr. Mustermann;;;;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4
+ 70001;Meyer GmbH;;;;;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5
+ 70002;Schulze GmbH;;;;;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
data/lib/datev.rb CHANGED
@@ -10,12 +10,15 @@ require 'datev/field/date_field'
10
10
  require 'datev/base'
11
11
  require 'datev/base/header'
12
12
  require 'datev/base/header/account_header'
13
+ require 'datev/base/header/contact_header'
13
14
  require 'datev/base/header/booking_header'
14
15
  require 'datev/base/account'
16
+ require 'datev/base/contact'
15
17
  require 'datev/base/booking'
16
18
 
17
19
  require 'datev/export'
18
20
  require 'datev/export/account_export'
21
+ require 'datev/export/contact_export'
19
22
  require 'datev/export/booking_export'
20
23
 
21
24
  require 'csv'
@@ -0,0 +1,481 @@
1
+ module Datev
2
+ class Contact < Base
3
+ def self.bank_account(number)
4
+ field "Bankleitzahl #{number}", :string, :limit => 8
5
+
6
+ field "Bankbezeichnung #{number}", :string, :limit => 30
7
+
8
+ field "Bankkonto-Nummer #{number}", :string, :limit => 10
9
+
10
+ field "Länderkennzeichen #{number}", :string, :limit => 2
11
+ # ISO-Code beachten (siehe Dok.-Nr. 1080169)
12
+
13
+ field "IBAN #{number}", :string, :limit => 34
14
+
15
+ field "Leerfeld #{number}", :integer, :limit => 1
16
+
17
+ field "SWIFT-Code #{number}", :string, :limit => 11
18
+ # Beachten Sie, dass für Zahlung und Lastschriften bis zur Installation der Programm-DVD DATEV pro 8.3 (Januar 2015) BLZ und/oder BIC noch erforderlich sind.
19
+
20
+ field "Abw. Kontoinhaber #{number}", :string, :limit => 70
21
+
22
+ field "Kennz. Haupt-Bankverb. #{number}", :boolean
23
+ # Kennzeichnung als Haupt-Bankverbindung
24
+ # 1 = Ja
25
+ # 0 = Nein
26
+ # Nur eine Bankverbindung eines Debitoren oder Kreditoren kann als Haupt-Bankverbindung gekennzeichnet werden.
27
+
28
+ field "Bankverb. #{number} Gültig von", :date, :format => '%d%m%Y'
29
+ field "Bankverb. #{number} Gültig bis", :date, :format => '%d%m%Y'
30
+ end
31
+
32
+ # http://www.datev.de/dnlexom/client/app/index.html#/document/1036228/D103622800012
33
+
34
+ # 1
35
+ field 'Konto', :integer, :limit => 9, :required => true
36
+ # Personen-Kontonummer (abhängig von der Information im Header)
37
+ # Sachkontennummernlänge + 1 = Personenkontenlänge
38
+
39
+ # 2
40
+ field 'Name (Adressatentyp Unternehmen)', :string, :limit => 50
41
+ # Beim Import werden die Felder in der Datenbank gefüllt, auch wenn sie nicht dem Adressatentyp aus Feld 7 entsprechen. Das kann zu ungewollten Effekten im Programm führen. Bitte übergeben Sie nur die zum Adressatentyp passenden Felder.
42
+
43
+ # 3
44
+ field 'Unternehmensgegenstand', :string, :limit => 50
45
+
46
+ # 4
47
+ field 'Name (Adressatentyp natürl. Person)', :string, :limit => 30
48
+
49
+ # 5
50
+ field 'Vorname (Adressatentyp natürl. Person)', :string, :limit => 30
51
+
52
+ # 6
53
+ field 'Name (Adressatentyp keine Angabe)', :string, :limit => 50
54
+
55
+ # 7
56
+ field 'Adressatentyp', :string, :limit => 1
57
+ # 0 = keine Angabe
58
+ # 1 = natürliche Person
59
+ # 2 = Unternehmen
60
+ # Standardwert = Unternehmen
61
+
62
+ # 8
63
+ field 'Kurzbezeichnung', :string, :limit => 15
64
+
65
+ # 9
66
+ field 'EU-Land', :string, :limit => 2
67
+ # Die USt-IdNr. besteht aus
68
+ # 2-stelligen Länderkürzel
69
+ # (siehe Dok.-Nr. 1080169; Ausnahme Griechenland: Das Länderkürzel lautet EL)
70
+ # 13-stelliger USt-IdNr.
71
+ # Beachten Sie bitte, dass kein Leerzeichen zwischen diesen beiden Eingabewerten sein darf.
72
+
73
+ # 10
74
+ field 'EU-USt-IdNr.', :string, :limit => 13
75
+
76
+ # 11
77
+ field 'Anrede', :string, :limit => 30
78
+
79
+ # 12
80
+ field 'Titel/Akad. Grad', :string, :limit => 25
81
+ # Nur bei Adressatentyp "natürliche Person" relevant.
82
+ # Wird der Titel/Akad.Grad bei einem Adressatentyp "Unternehmen" übergeben, wird der Wert in den Datenbestand übernommen, ist aber an der Oberfläche nicht sichtbar.
83
+
84
+ # 13
85
+ field 'Adelstitel', :string, :limit => 15
86
+ # Nur bei Adressatentyp "natürliche Person" relevant.
87
+ # Wird der Adelstitel bei einem Adressatentyp "Unternehmen" übergeben, wird der Wert in den Datenbestand übernommen, ist aber an der Oberfläche nicht sichtbar.
88
+
89
+ # 14
90
+ field 'Namensvorsatz', :string, :limit => 14
91
+ # Nur bei Adressatentyp "natürliche Person" relevant.
92
+ # Wird der Namensvorsatz bei einem Adressatentyp "Unternehmen" übergeben, wird der Wert in den Datenbestand übernommen, ist aber an der Oberfläche nicht sichtbar.
93
+
94
+ # 15
95
+ field 'Adressart', :string, :limit => 3
96
+ # STR = Straße
97
+ # PF = Postfach
98
+ # GK = Großkunde
99
+ # Wird die Adressart nicht übergeben, wird sie automatisch in Abhängigkeit zu den übergebenen Feldern (Straße oder Postfach) gesetzt.
100
+
101
+ # 16
102
+ field 'Straße', :string, :limit => 36
103
+ # Wird sowohl eine Straße als auch ein Postfach übergeben, werden beide Werte in den Datenbestand übernommen; auf der Visitenkarte in den Debitoren-/Kreditoren-Stammdaten wird die Postfachadresse angezeigt.
104
+
105
+ #17
106
+ field 'Postfach', :string, :limit => 10
107
+
108
+ # 18
109
+ field 'Postleitzahl', :string, :limit => 10
110
+
111
+ # 19
112
+ field 'Ort', :string, :limit => 30
113
+
114
+ # 20
115
+ field 'Land', :string, :limit => 2
116
+ # ISO-Code beachten! (Dok.-Nr. 1080169)
117
+
118
+ # 21
119
+ field 'Versandzusatz', :string, :limit => 50
120
+
121
+ # 22
122
+ field 'Adresszusatz', :string, :limit => 36
123
+ # Beispiel: z. Hd. Herrn Mustermann
124
+
125
+ # 23
126
+ field 'Abweichende Anrede', :string, :limit => 30
127
+ # Es kann ein beliebiger individueller Text verwendet werden.
128
+
129
+ # 24
130
+ field 'Abw. Zustellbezeichnung 1', :string, :limit => 50
131
+
132
+ # 25
133
+ field 'Abw. Zustellbezeichnung 2', :string, :limit => 36
134
+
135
+ # 26
136
+ field 'Kennz. Korrespondenzadresse', :boolean
137
+ # 1= Kennzeichnung Korrespondenzadresse
138
+
139
+ # 27
140
+ field 'Adresse Gültig von', :date, :format => '%d%m%Y'
141
+
142
+ # 28
143
+ field 'Adresse Gültig bis', :date, :format => '%d%m%Y'
144
+
145
+ # 29
146
+ field 'Telefon', :string, :limit => 60
147
+ # Standard-Telefonnummer
148
+
149
+ # 30
150
+ field 'Bemerkung (Telefon)', :string, :limit => 40
151
+
152
+ # 31
153
+ field 'Telefon Geschäftsleitung', :string, :limit => 60
154
+ # Geschäftsleitungs-Telefonnummer
155
+
156
+ # 32
157
+ field 'Bemerkung (Telefon GL)', :string, :limit => 40
158
+
159
+ # 33
160
+ field 'E-Mail', :string, :limit => 60
161
+
162
+ # 34
163
+ field 'Bemerkung (E-Mail)', :string, :limit => 40
164
+
165
+ # 35
166
+ field 'Internet', :string, :limit => 60
167
+
168
+ # 36
169
+ field 'Bemerkung (Internet)', :string, :limit => 40
170
+
171
+ # 37
172
+ field 'Fax', :string, :limit => 60
173
+
174
+ # 38
175
+ field 'Bemerkung (Fax)', :string, :limit => 40
176
+
177
+ # 39
178
+ field 'Sonstige', :string, :limit => 60
179
+
180
+ # 40
181
+ field 'Bemerkung (Sonstige)', :string, :limit => 40
182
+
183
+ # 41 bis 95
184
+ (1..5).each do |number|
185
+ self.bank_account(number)
186
+ end
187
+
188
+ # 96
189
+ field 'Leerfeld 11', :integer, :limit => 3
190
+
191
+ # 97
192
+ field 'Briefanrede', :string, :limit => 100
193
+
194
+ # 98
195
+ field 'Grußformel', :string, :limit => 50
196
+
197
+ # 99
198
+ field 'Kundennummer', :string, :limit => 15
199
+ # Kann nicht geändert werden, wenn zentralisierte Geschäftspartner verwendet werden.
200
+
201
+ # 100
202
+ field 'Steuernummer', :string, :limit => 20
203
+
204
+ # 101
205
+ field 'Sprache', :integer, :limit => 2
206
+ # 1 = Deutsch
207
+ # 4 = Französisch
208
+ # 5 = Englisch
209
+ # 10 = Spanisch
210
+ # 19 = Italienisch
211
+
212
+ # 102
213
+ field 'Ansprechpartner', :string, :limit => 40
214
+
215
+ # 103
216
+ field 'Vertreter', :string, :limit => 40
217
+
218
+ # 104
219
+ field 'Sachbearbeiter', :string, :limit => 40
220
+
221
+ # 105
222
+ field 'Diverse-Konto', :boolean
223
+ # 0 = Nein
224
+ # 1 = Ja
225
+
226
+ # 106
227
+ field 'Ausgabeziel', :integer, :limit => 1
228
+ # 1 = Druck 
229
+ # 2 = Telefax
230
+ # 3 = E-Mail
231
+
232
+ # 107
233
+ field 'Währungssteuerung', :integer, :limit => 1
234
+ # 0 = Zahlungen in Eingabewährung
235
+ # 2 = Ausgabe in EUR
236
+
237
+ # 108
238
+ field 'Kreditlimit (Debitor)', :integer, :limit => 10
239
+ # Nur für Debitoren gültig
240
+ # Beispiel: 1.123.123.123
241
+
242
+ # 109
243
+ field 'Zahlungsbedingung', :integer, :limit => 3
244
+ # Eine gespeicherte Zahlungsbedingung kann hier einem Geschäftspartner zugeordnet werden.
245
+
246
+ # 110
247
+ field 'Fälligkeit in Tagen (Debitor)', :integer, :limit => 3
248
+ # Nur für Debitoren gültig
249
+
250
+ # 111
251
+ field 'Skonto in Prozent (Debitor)', :decimal, :precision => 4, :scale => 2
252
+ # Nur für Debitoren gültig
253
+ # Beispiel: 12,12
254
+
255
+ # 112 bis 120
256
+ (1..5).each do |number|
257
+ field "Kreditoren-Ziel #{number} (Tage)", :integer, :limit => 2
258
+ # Nur für Kreditoren gültig
259
+
260
+ field "Kreditoren-Skonto #{number} (%)", :decimal, :precision => 4, :scale => 2
261
+ # Nur für Kreditoren gültig
262
+ # Beispiel: 12,12
263
+ end
264
+
265
+ # 121
266
+ field 'Mahnung', :integer, :limit => 1
267
+ # 0 = Keine Angaben
268
+ # 1 = 1. Mahnung
269
+ # 2 = 2. Mahnung
270
+ # 3 = 1. + 2. Mahnung
271
+ # 4 = 3. Mahnung
272
+ # 5 = (nicht vergeben)
273
+ # 6 = 2. + 3. Mahnung
274
+ # 7 = 1., 2. + 3. Mahnung
275
+ # 9 = keine Mahnung
276
+
277
+ # 122
278
+ field 'Kontoauszug', :integer, :limit => 1
279
+ # 1 = Kontoauszug für alle Posten
280
+ # 2 = Auszug nur dann, wenn ein Posten mahnfähig ist
281
+ # 3 = Auszug für alle mahnfälligen Posten
282
+ # 9 = kein Kontoauszug
283
+
284
+ field 'Mahntext', :integer, :limit => 1
285
+ # Leer = keinen Mahntext ausgewählt
286
+ # 1 = Textgruppe 1
287
+ # ...
288
+ # 9 = Textgruppe 9
289
+
290
+ # 124
291
+ field 'Mahntext 2', :integer, :limit => 1
292
+ # Leer = keinen Mahntext ausgewählt
293
+ # 1 = Textgruppe 1
294
+ # ...
295
+ # 9 = Textgruppe 9
296
+
297
+ # 125
298
+ field 'Mahntext 3', :integer, :limit => 1
299
+ # Leer = keinen Mahntext ausgewählt
300
+ # 1 = Textgruppe 1
301
+ # ...
302
+ # 9 = Textgruppe 9
303
+
304
+ # 126
305
+ field 'Kontoauszugstext', :integer, :limit => 1
306
+ # Leer = kein Kontoauszugstext ausgewählt
307
+ # 1 = Kontoauszugstext 1
308
+ # ...
309
+ # 8 = Kontoauszugstext 8
310
+ # 9 = Kein Kontoauszugstext
311
+
312
+ # 127
313
+ field 'Mahnlimit Betrag', :decimal, :precision => 7, :scale => 2
314
+ # Beispiel: 12.123,12
315
+
316
+ # 128
317
+ field 'Mahnlimit %', :decimal, :precision => 4, :scale => 2
318
+ # Beispiel: 12,12
319
+
320
+ # 129
321
+ field 'Zinsberechnung', :integer, :limit => 1
322
+ # 0 = MPD-Schlüsselung gilt
323
+ # 1 = Fester Zinssatz
324
+ # 2 = Zinssatz über Staffel
325
+ # 9 = Keine Berechnung für diesen Debitor
326
+
327
+ # 130 - 132
328
+ (1..3).each do |number|
329
+ field "Mahnzinssatz #{number}", :decimal, :precision => 4, :scale => 2
330
+ # Beispiel: 12,12
331
+ end
332
+
333
+ # 133
334
+ field 'Lastschrift', :string, :limit => 1
335
+ # Leer bzw. 0 = keine Angaben, es gilt die MPD-Schlüsselung
336
+ # 1 = Einzellastschrift mit einer Rechnung
337
+ # 2 = Einzellastschrift mit mehreren Rechnungen
338
+ # 3 = Sammellastschrift mit einer Rechnung
339
+ # 4 = Sammellastschrift mit mehreren Rechnungen
340
+ # 5 = Datenträgeraustausch mit einer Rechnung
341
+ # 6 = Datenträgeraustausch mit mehreren Rechnungen
342
+ # 7 = SEPA-Lastschrift mit einer Rechnung
343
+ # 8 = SEPA-Lastschrift mit mehreren Rechnungen
344
+ # 9 = kein Lastschriftverfahren bei diesem Debitor
345
+
346
+ # 134
347
+ field 'Verfahren', :string, :limit => 1
348
+ # 0 = Einzugsermächtigung
349
+ # 1 = Abbuchungsverfahren
350
+
351
+ # 135
352
+ field 'Mandantenbank', :integer, :limit => 4
353
+ # Zuordnung der gespeicherten Mandantenbank, die für das Lastschriftverfahren verwendet werden soll.
354
+
355
+ # 136
356
+ field 'Zahlungsträger', :string, :limit => 1
357
+ # Leer bzw. 0 = keine Angaben, es gilt die MPD-Schlüsselung
358
+ # 1 = Einzelüberweisung mit einer Rechnung
359
+ # 2 = Einzelüberweisung mit mehreren Rechnungen
360
+ # 3 = Sammelüberweisung mit einer Rechnung
361
+ # 4 = Sammelüberweisung mit mehreren Rechnungen
362
+ # 5 = Einzelscheck
363
+ # 6 = Sammelscheck
364
+ # 7 = SEPA-Überweisung mit einer Rechnung
365
+ # 8 = SEPA-Überweisung mit mehreren Rechnungen
366
+ # 9 = keine Überweisungen, Schecks
367
+
368
+ # 137 bis 151
369
+ (1..15).each do |number|
370
+ field "Indiv. Feld #{number}", :string, :limit => 40
371
+
372
+ # 11 bis 15 wird derzeit nicht übernommen
373
+ end
374
+
375
+ # 152
376
+ field 'Abweichende Anrede (Rechnungsadresse)', :string, :limit => 30
377
+ # Es kann ein beliebiger individueller Text verwendet werden.
378
+
379
+ # 153
380
+ field 'Adressart (Rechnungsadresse)', :string, :limit => 3
381
+ # STR = Straße 
382
+ # PF = Postfach
383
+ # GK = Großkunde
384
+ # Wird die Adressart nicht übergeben, wird sie automatisch in Abhängigkeit zu den übergebenen Feldern (Straße oder Postfach) gesetzt.
385
+
386
+ # 154
387
+ field 'Straße (Rechnungsadresse)', :string, :limit => 36
388
+ # Wird sowohl eine Straße als auch ein Postfach übergeben, werden beide Werte in den Datenbestand übernommen; auf der Visitenkarte in den Debitoren-/Kreditoren-Stammdaten wird die Postfachadresse angezeigt.
389
+
390
+ # 155
391
+ field 'Postfach (Rechnungsadresse)', :string, :limit => 10
392
+
393
+ # 156
394
+ field 'Postleitzahl (Rechnungsadresse)', :string, :limit => 10
395
+
396
+ # 157
397
+ field 'Ort (Rechnungsadresse)', :string, :limit => 30
398
+
399
+ # 158
400
+ field 'Land (Rechnungsadresse)', :string, :limit => 2
401
+ # ISO-Code beachten (siehe Dok.-Nr. 1080169)
402
+
403
+ # 159
404
+ field 'Versandzusatz (Rechnungsadresse)', :string, :limit => 50
405
+
406
+ # 160
407
+ field 'Adresszusatz (Rechnungsadresse)', :string, :limit => 36
408
+ # Beispiel: z. Hd. Herrn Mustermann
409
+
410
+ # 161
411
+ field 'Abw. Zustellbezeichnung 1 (Rechnungsadresse)', :string, :limit => 50
412
+
413
+ # 162
414
+ field 'Abw. Zustellbezeichnung 2 (Rechnungsadresse)', :string, :limit => 36
415
+
416
+ # 163
417
+ field 'Adresse Gültig von (Rechnungsadresse)', :date, :format => '%d%m%Y'
418
+
419
+ # 164
420
+ field 'Adresse Gültig bis (Rechnungsadresse)', :date, :format => '%d%m%Y'
421
+
422
+ # 165 bis 219
423
+ (6..10).each do |number|
424
+ bank_account(number)
425
+ end
426
+
427
+ # 220
428
+ field 'Nummer Fremdsystem', :string, :limit => 15
429
+ # Achtung: Wird bei Verwendung zentralisierter Geschäftspartner von DATEV überschrieben.
430
+
431
+ # 221
432
+ field 'Insolvent', :boolean
433
+ # 0 = Nein
434
+ # 1 = Ja
435
+
436
+ # 222 bis 231
437
+ (1..10).each do |number|
438
+ field "SEPA-Mandatsreferenz #{number}", :string, :limit => 35
439
+ # Sie können im Feld Mandatsreferenz dem Geschäftspartner je Bank eine Mandatsreferenz eintragen. Für eine korrekte Verwendung muss in der SEPA-Mandatsverwaltung die Mandatsreferenz für den Lastschriftteilnehmer vorhanden sein.
440
+ end
441
+
442
+ # 232
443
+ field 'Verknüpftes OPOS-Konto', :integer, :limit => 9
444
+ # Sie können für den Geschäftspartner das korrespondierende Konto (im Kreditorenbereich) erfassen, wenn es sich bei dem Geschäftspartner sowohl um einen Kunden als auch um einen Lieferanten handelt.
445
+
446
+ # --- Erweiterungen zur Jahreswechselversion 2015/2016
447
+
448
+ # 233
449
+ field 'Mahnsperre bis', :date, :format => '%d%m%Y'
450
+
451
+ # 234
452
+ field 'Lastschriftsperre bis', :date, :format => '%d%m%Y'
453
+
454
+ # 235
455
+ field 'Zahlungssperre bis', :date, :format => '%d%m%Y'
456
+
457
+ # 236
458
+ field 'Gebührenberechnung', :integer, :limit => 1
459
+ # 0 = MPD-Schlüsselung gilt
460
+ # 1 = Mahngebühr berechnen
461
+ # 9 = Keine Berechnung für diesen Debitor
462
+
463
+ # 237 bis 239
464
+ (1..3).each do |number|
465
+ field "Mahngebühr #{number}", :decimal, :precision => 4, :scale => 2
466
+ # Beispiel: 12,12
467
+ end
468
+
469
+ # 240
470
+ field 'Pauschalberechnung', :integer, :limit => 1
471
+ # 0 = MPD-Schlüsselung gilt
472
+ # 1 = Verzugspauschale berechnen
473
+ # 9 = Keine Berechnung für diesen Debitor
474
+
475
+ # 241 bis 243
476
+ (1..3).each do |number|
477
+ field "Verzugspauschale #{number}", :decimal, :precision => 5, :scale => 2
478
+ # Beispiel: 12,12
479
+ end
480
+ end
481
+ end
@@ -0,0 +1,13 @@
1
+ module Datev
2
+ class ContactHeader < Header
3
+ self.default_attributes = {
4
+ 'DATEV-Format-KZ' => 'EXTF',
5
+ 'Versionsnummer' => 510,
6
+ 'Datenkategorie' => 16,
7
+ 'Formatname' => 'Debitoren/Kreditoren',
8
+ 'Formatversion' => 4,
9
+ 'Erzeugt am' => Time.now.utc,
10
+ 'Sachkontenlänge' => 4
11
+ }
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ module Datev
2
+ class ContactExport < Export
3
+ self.header_class = ContactHeader
4
+ self.row_class = Contact
5
+ end
6
+ end
data/lib/datev/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Datev
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Georg Ledermann
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-29 00:00:00.000000000 Z
11
+ date: 2016-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -101,16 +101,20 @@ files:
101
101
  - datev.gemspec
102
102
  - examples/EXTF_Buchungsstapel.csv
103
103
  - examples/EXTF_Kontenbeschriftungen.csv
104
+ - examples/EXTF_Stammdaten.csv
104
105
  - lib/datev.rb
105
106
  - lib/datev/base.rb
106
107
  - lib/datev/base/account.rb
107
108
  - lib/datev/base/booking.rb
109
+ - lib/datev/base/contact.rb
108
110
  - lib/datev/base/header.rb
109
111
  - lib/datev/base/header/account_header.rb
110
112
  - lib/datev/base/header/booking_header.rb
113
+ - lib/datev/base/header/contact_header.rb
111
114
  - lib/datev/export.rb
112
115
  - lib/datev/export/account_export.rb
113
116
  - lib/datev/export/booking_export.rb
117
+ - lib/datev/export/contact_export.rb
114
118
  - lib/datev/field.rb
115
119
  - lib/datev/field/boolean_field.rb
116
120
  - lib/datev/field/date_field.rb