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 +4 -4
- data/examples/EXTF_Stammdaten.csv +5 -0
- data/lib/datev.rb +3 -0
- data/lib/datev/base/contact.rb +481 -0
- data/lib/datev/base/header/contact_header.rb +13 -0
- data/lib/datev/export/contact_export.rb +6 -0
- data/lib/datev/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b6c528c7ca4a5ad0e5aceec6ac0776778513f979
|
|
4
|
+
data.tar.gz: 0bec1561db96d7e0f026fa66091bb5de0a0dab60
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/lib/datev/version.rb
CHANGED
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.
|
|
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-
|
|
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
|