datev 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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