datev 0.6.0 → 0.7.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
- SHA1:
3
- metadata.gz: a3465ddf6d6515f2ea80f755aacf9c223585c90b
4
- data.tar.gz: '058fe2ec60f8453a69d70507f4cb8e5de7299def'
2
+ SHA256:
3
+ metadata.gz: f8efa17940a9d716513b57a2e8173160faaff291782f714452dd28d586990aaf
4
+ data.tar.gz: c75137f4461cad817b274db87b60f87e7353e7c4efe387ee7ababee760d0a05c
5
5
  SHA512:
6
- metadata.gz: 5316e82beccc8e6a820bccf3974374ed1982215d47848b9480d347dc75457d412822b2f75dce9878a278c7b3e706989e66f1f8e59edaf4df74c6897353f74760
7
- data.tar.gz: d17c51a4d938056dae0cb4e5b9cb28370d055ca99006f69b91809d4522fd3a9701a78fad828d453fd52a79a2d8a863ca603bf10b6006d3bc441926a86af07d0e
6
+ metadata.gz: d85696dfa5c13eb1d785223b557ce176137f03494822004ca47c67637a6e00bfd6f45a54d0480e8353657269b5c27a3c0e6a2c677a35deba1a38484acb8b0d22
7
+ data.tar.gz: d0925db39ac7b51f82e011160e24036df2db477acbe0fe25a1381390b345e377c488424d0509a1c3559672b7bc614b87fed8835bd07e1fc10ce6ced36557bb3d
@@ -1,8 +1,10 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.0.0
5
- - 2.1.10
6
- - 2.2.5
7
- - 2.3.1
8
- before_install: gem update bundler
4
+ - 2.2.9
5
+ - 2.3.6
6
+ - 2.4.3
7
+ - 2.5.0
8
+ before_install:
9
+ - gem update --system
10
+ - gem update bundler
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016 Georg Ledermann
3
+ Copyright (c) 2016-2018 Georg Ledermann
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Datev
2
2
 
3
- Ruby gem for exporting bookings to DATEV via CSV file
3
+ Ruby gem to export bookings and more to DATEV format as CSV file
4
+
5
+ Supported DATEV Version: 5.1
4
6
 
5
7
  [![Build Status](https://travis-ci.org/ledermann/datev.svg?branch=master)](https://travis-ci.org/ledermann/datev)
6
8
  [![Code Climate](https://codeclimate.com/github/ledermann/datev/badges/gpa.svg)](https://codeclimate.com/github/ledermann/datev)
@@ -24,6 +26,8 @@ Or install it yourself as:
24
26
 
25
27
  ## Usage
26
28
 
29
+ To export bookings, you need an BookingExport instance with an array of records. Example:
30
+
27
31
  ```ruby
28
32
  export = Datev::BookingExport.new(
29
33
  'Herkunft' => 'XY',
@@ -34,7 +38,7 @@ export = Datev::BookingExport.new(
34
38
  'Datum vom' => Date.new(2016,6,1),
35
39
  'Datum bis' => Date.new(2016,6,30),
36
40
  'Bezeichnung' => 'Beispiel-Buchungen'
37
- ) # For available hash keys see /lib/datev/header.rb
41
+ ) # For available hash keys see /lib/datev/base/header.rb
38
42
 
39
43
  export << {
40
44
  'Belegdatum' => Date.new(2016,6,21),
@@ -44,7 +48,7 @@ export << {
44
48
  'Konto' => 1200,
45
49
  'Gegenkonto (ohne BU-Schlüssel)' => 4940,
46
50
  'BU-Schlüssel' => '8'
47
- } # For available hash keys see /lib/datev/booking.rb
51
+ } # For available hash keys see /lib/datev/base/booking.rb
48
52
 
49
53
  export << {
50
54
  'Belegdatum' => Date.new(2016,6,22),
@@ -61,6 +65,14 @@ export.to_file('EXTF_Buchungsstapel.csv')
61
65
 
62
66
  Result: [CSV file](examples/EXTF_Buchungsstapel.csv)
63
67
 
68
+ All records are validated against the defined schema.
69
+
70
+ Beside bookings, some other exports are available, too:
71
+
72
+ * `AccountExport` ("Kontenbeschriftungen")
73
+ * `ContactExport` ("Stammdaten")
74
+
75
+
64
76
  ## Development
65
77
 
66
78
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "bundler/setup"
4
4
  require "datev"
5
+ require "date"
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.bindir = "exe"
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
- spec.required_ruby_version = '>= 2.0.0'
21
+ spec.required_ruby_version = '>= 2.2.0'
22
22
 
23
23
  spec.add_development_dependency "bundler"
24
24
  spec.add_development_dependency "rake"
@@ -1,4 +1,4 @@
1
1
  "EXTF";510;21;"Buchungsstapel";7;20160623152500000;;"XY";"Chief Accounting Officer";"";1001;456;20160101;4;20160601;20160630;"Beispiel-Buchungen";"";1;;0;"EUR";"";"";"";"";"";;;"";""
2
- Umsatz (ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;WKZ Umsatz;Kurs;Basisumsatz;WKZ Basisumsatz;Konto;Gegenkonto (ohne BU-Schl�ssel);BU-Schl�ssel;Belegdatum;Belegfeld 1;Belegfeld 2;Skonto;Buchungstext;Postensperre;Diverse Adressnummer;Gesch�ftspartnerbank;Sachverhalt;Zinssperre;Beleglink;Beleginfo � Art 1;Beleginfo � Inhalt 1;Beleginfo � Art 2;Beleginfo � Inhalt 2;Beleginfo � Art 3;Beleginfo � Inhalt 3;Beleginfo � Art 4;Beleginfo � Inhalt 4;Beleginfo � Art 5;Beleginfo � Inhalt 5;Beleginfo � Art 6;Beleginfo � Inhalt 6;Beleginfo � Art 7;Beleginfo � Inhalt 7;Beleginfo � Art 8;Beleginfo � Inhalt 8;KOST1 � Kostenstelle;KOST2 � Kostenstelle;Kost Menge;EU-Land u. USt-IdNr.;EU-Steuersatz;Abw. Versteuerungsart;Sachverhalt L+L;Funktionserg�nzung L+L;BU 49 Hauptfunktionstyp;BU 49 Hauptfunktionsnummer;BU 49 Funktionserg�nzung;Zusatzinformation � Inhalt 1;Zusatzinformation � Art 1;Zusatzinformation � Inhalt 2;Zusatzinformation � Art 2;Zusatzinformation � Inhalt 3;Zusatzinformation � Art 3;Zusatzinformation � Inhalt 4;Zusatzinformation � Art 4;Zusatzinformation � Inhalt 5;Zusatzinformation � Art 5;Zusatzinformation � Inhalt 6;Zusatzinformation � Art 6;Zusatzinformation � Inhalt 7;Zusatzinformation � Art 7;Zusatzinformation � Inhalt 8;Zusatzinformation � Art 8;Zusatzinformation � Inhalt 9;Zusatzinformation � Art 9;Zusatzinformation � Inhalt 10;Zusatzinformation � Art 10;Zusatzinformation � Inhalt 11;Zusatzinformation � Art 11;Zusatzinformation � Inhalt 12;Zusatzinformation � Art 12;Zusatzinformation � Inhalt 13;Zusatzinformation � Art 13;Zusatzinformation � Inhalt 14;Zusatzinformation � Art 14;Zusatzinformation � Inhalt 15;Zusatzinformation � Art 15;Zusatzinformation � Inhalt 16;Zusatzinformation � Art 16;Zusatzinformation � Inhalt 17;Zusatzinformation � Art 17;Zusatzinformation � Inhalt 18;Zusatzinformation � Art 18;Zusatzinformation � Inhalt 19;Zusatzinformation � Art 19;Zusatzinformation � Inhalt 20;Zusatzinformation � Art 20;St�ck;Gewicht;Zahlweise;Forderungsart;Veranlagungsjahr;Zugeordnete F�lligkeit;Skontotyp;Auftragsnummer;Buchungstyp;USt-Schl�ssel (Anzahlungen);EU-Mitgliedstaat (Anzahlungen);Sachverhalt L+L (Anzahlungen);EU-Steuersatz (Anzahlungen);Erl�skonto (Anzahlungen);Herkunft-Kz;Leerfeld;KOST-Datum;SEPA-Mandatsreferenz;Skontosperre;Gesellschaftername;Beteiligtennummer;Identifikationsnummer;Zeichnernummer;Postensperre bis;Bezeichnung;Kennzeichen;Festschreibung;Leistungsdatum;Datum Zuord.
2
+ Umsatz (ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;WKZ Umsatz;Kurs;Basisumsatz;WKZ Basisumsatz;Konto;Gegenkonto (ohne BU-Schl�ssel);BU-Schl�ssel;Belegdatum;Belegfeld 1;Belegfeld 2;Skonto;Buchungstext;Postensperre;Diverse Adressnummer;Gesch�ftspartnerbank;Sachverhalt;Zinssperre;Beleglink;Beleginfo � Art 1;Beleginfo � Inhalt 1;Beleginfo � Art 2;Beleginfo � Inhalt 2;Beleginfo � Art 3;Beleginfo � Inhalt 3;Beleginfo � Art 4;Beleginfo � Inhalt 4;Beleginfo � Art 5;Beleginfo � Inhalt 5;Beleginfo � Art 6;Beleginfo � Inhalt 6;Beleginfo � Art 7;Beleginfo � Inhalt 7;Beleginfo � Art 8;Beleginfo � Inhalt 8;KOST1 � Kostenstelle;KOST2 � Kostenstelle;Kost Menge;EU-Land u. USt-IdNr.;EU-Steuersatz;Abw. Versteuerungsart;Sachverhalt L+L;Funktionserg�nzung L+L;BU 49 Hauptfunktionstyp;BU 49 Hauptfunktionsnummer;BU 49 Funktionserg�nzung;Zusatzinformation � Art 1;Zusatzinformation � Inhalt 1;Zusatzinformation � Art 2;Zusatzinformation � Inhalt 2;Zusatzinformation � Art 3;Zusatzinformation � Inhalt 3;Zusatzinformation � Art 4;Zusatzinformation � Inhalt 4;Zusatzinformation � Art 5;Zusatzinformation � Inhalt 5;Zusatzinformation � Art 6;Zusatzinformation � Inhalt 6;Zusatzinformation � Art 7;Zusatzinformation � Inhalt 7;Zusatzinformation � Art 8;Zusatzinformation � Inhalt 8;Zusatzinformation � Art 9;Zusatzinformation � Inhalt 9;Zusatzinformation � Art 10;Zusatzinformation � Inhalt 10;Zusatzinformation � Art 11;Zusatzinformation � Inhalt 11;Zusatzinformation � Art 12;Zusatzinformation � Inhalt 12;Zusatzinformation � Art 13;Zusatzinformation � Inhalt 13;Zusatzinformation � Art 14;Zusatzinformation � Inhalt 14;Zusatzinformation � Art 15;Zusatzinformation � Inhalt 15;Zusatzinformation � Art 16;Zusatzinformation � Inhalt 16;Zusatzinformation � Art 17;Zusatzinformation � Inhalt 17;Zusatzinformation � Art 18;Zusatzinformation � Inhalt 18;Zusatzinformation � Art 19;Zusatzinformation � Inhalt 19;Zusatzinformation � Art 20;Zusatzinformation � Inhalt 20;St�ck;Gewicht;Zahlweise;Forderungsart;Veranlagungsjahr;Zugeordnete F�lligkeit;Skontotyp;Auftragsnummer;Buchungstyp;USt-Schl�ssel (Anzahlungen);EU-Mitgliedstaat (Anzahlungen);Sachverhalt L+L (Anzahlungen);EU-Steuersatz (Anzahlungen);Erl�skonto (Anzahlungen);Herkunft-Kz;Leerfeld;KOST-Datum;SEPA-Mandatsreferenz;Skontosperre;Gesellschaftername;Beteiligtennummer;Identifikationsnummer;Zeichnernummer;Postensperre bis;Bezeichnung;Kennzeichen;Festschreibung;Leistungsdatum;Datum Zuord.
3
3
  24,95;"H";"";;;"";1200;4940;"8";2106;"";"";;"Fachbuch: Controlling f�r Dummies";;"";;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;"";;"";;;;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;;;"";;;;"";"";;"";;;;"";"";;"";;"";;"";"";;"";;;;
4
4
  5950,00;"S";"";;;"";10000;8400;"";2206;"RE201606-135";"";;"Honorar FiBu-Seminar";;"";;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;"";;"";;;;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;;;"";;;;"";"";;"";;;;"";"";;"";;"";;"";"";;"";;;;
@@ -3,15 +3,15 @@ module Datev
3
3
  # http://www.datev.de/dnlexom/client/app/index.html#/document/1036228/D103622800011
4
4
 
5
5
  # 1
6
- field 'Konto', :integer, :limit => 8, :required => true
6
+ field 'Konto', :integer, limit: 8, required: true
7
7
  # Sachkontennummer (max. 8-stellig).
8
8
 
9
9
  # 2
10
- field 'Kontenbeschriftung', :string, :limit => 40
10
+ field 'Kontenbeschriftung', :string, limit: 40
11
11
  # Beschriftung des Sachkontos
12
12
 
13
13
  # 3
14
- field 'Sprach-ID', :string, :limit => 5
14
+ field 'Sprach-ID', :string, limit: 5
15
15
  # Sprach-ID der Kontenbeschriftung
16
16
  # de-DE = Deutsch
17
17
  # en-GB = Englisch
@@ -3,39 +3,39 @@ module Datev
3
3
  # http://www.datev.de/dnlexom/client/app/index.html#/document/1036228/D103622800010
4
4
 
5
5
  # 1
6
- field 'Umsatz (ohne Soll/Haben-Kz)', :decimal, :precision => 12, :scale => 2, :required => true
6
+ field 'Umsatz (ohne Soll/Haben-Kz)', :decimal, precision: 12, scale: 2, required: true
7
7
  # Beispiel: 1234567890,12
8
8
  # Muss immer ein positiver Wert sein
9
9
 
10
10
  # 2
11
- field 'Soll/Haben-Kennzeichen', :string, :limit => 1, :required => true
11
+ field 'Soll/Haben-Kennzeichen', :string, limit: 1, required: true
12
12
  # Die Soll-/Haben-Kennzeichnung des Umsatzes bezieht sich auf das Konto, das im Feld Konto angegeben wird:
13
13
  # S = Soll
14
14
  # H = Haben
15
15
 
16
16
  # 3
17
- field 'WKZ Umsatz', :string, :limit => 3
17
+ field 'WKZ Umsatz', :string, limit: 3
18
18
  # Dreistelliger ISO-Code der Währung (Dok.-Nr. 1080170); gibt an, welche Währung dem Betrag zugrunde liegt.
19
19
  # Wenn kein Wert angegeben ist, wird das WKZ aus dem Header übernommen.
20
20
 
21
21
  # 4
22
- field 'Kurs', :decimal, :precision => 10, :scale => 6
22
+ field 'Kurs', :decimal, precision: 10, scale: 6
23
23
  # Der Fremdwährungskurs bestimmt, wie der angegebene Umsatz, der in Fremdwährung übergeben wird, in die Basiswährung umzurechnen ist, wenn es sich um ein Nicht-EWU-Land handelt.
24
24
  # Beispiel: 1123,123456
25
25
  # Achtung: Der Wert 0 ist unzulässig.
26
26
 
27
27
  # 5
28
- field 'Basisumsatz', :decimal, :precision => 12, :scale => 2
28
+ field 'Basisumsatz', :decimal, precision: 12, scale: 2
29
29
  # Wenn das Feld Basisumsatz verwendet wird, muss auch das Feld WKZ Basisumsatz gefüllt werden.
30
30
  # Beispiel: 1123123123,12
31
31
 
32
32
  # 6
33
- field 'WKZ Basisumsatz', :string, :limit => 3
33
+ field 'WKZ Basisumsatz', :string, limit: 3
34
34
  # Währungskennzeichen der hinterlegten Basiswährung. Wenn das Feld WKZ Basisumsatz verwendet wird, muss auch das Feld Basisumsatz verwendet werden.
35
35
  # ISO-Code beachten (siehe Dok.-Nr.1080170)
36
36
 
37
37
  # 7
38
- field 'Konto', :integer, :limit => 9, :required => true do
38
+ field 'Konto', :integer, limit: 9, required: true do
39
39
  # Sach- oder Personen-Kontonummer
40
40
  # Darf max. 8- bzw. max. 9-stellig sein (abhängig von der Information im Header)
41
41
  # Die Personenkontenlänge darf nur 1 Stelle länger sein als die definierte Sachkontennummernlänge.
@@ -47,7 +47,7 @@ module Datev
47
47
  end
48
48
 
49
49
  # 8
50
- field 'Gegenkonto (ohne BU-Schlüssel)', :integer, :limit => 9, :required => true do
50
+ field 'Gegenkonto (ohne BU-Schlüssel)', :integer, limit: 9, required: true do
51
51
  # Sach- oder Personen-Kontonummer
52
52
  # Darf max. 8- bzw. max. 9-stellig sein (abhängig von der Information im Header)
53
53
  # Die Personenkontenlänge darf nur 1 Stelle länger sein als die definierte Sachkontennummernlänge.
@@ -59,32 +59,32 @@ module Datev
59
59
  end
60
60
 
61
61
  # 9
62
- field 'BU-Schlüssel', :string, :limit => 2
62
+ field 'BU-Schlüssel', :string, limit: 2
63
63
  # Steuerschlüssel und/oder Berichtigungsschlüssel
64
64
 
65
65
  # 10
66
- field 'Belegdatum', :date, :format => '%d%m', :required => true
66
+ field 'Belegdatum', :date, format: '%d%m', required: true
67
67
  # Achtung: Auch bei individueller Feldformatierung mit vierstelliger Jahreszahl wird immer in das aktuelle Wirtschaftsjahr importiert, wenn Tag und Monat des Datums im bebuchbaren Zeitraum liegen, da die Jahreszahl nicht berücksichtigt wird.
68
68
 
69
69
  # 11
70
- field 'Belegfeld 1', :string, :limit => 12
70
+ field 'Belegfeld 1', :string, limit: 12
71
71
  # Rechnungs-/Belegnummer
72
72
  # Das Belegfeld 1 ist der "Schlüssel" für die Verwaltung von Offenen Posten.
73
73
  # Bei einer Zahlung oder Gutschrift erfolgt nur dann ein OP-Ausgleich, wenn die Belegnummer mit dem Belegfeld 1 identisch ist.
74
74
 
75
75
  # 12
76
- field 'Belegfeld 2', :string, :limit => 12
76
+ field 'Belegfeld 2', :string, limit: 12
77
77
  # Belegnummer oder OPOS-Verarbeitungsinformationen
78
78
 
79
79
  # 13
80
- field 'Skonto', :decimal, :precision => 10, :scale => 2
80
+ field 'Skonto', :decimal, precision: 10, scale: 2
81
81
  # Skonto-Betrag/-Abzug
82
82
  # Nur bei Zahlungen zulässig.
83
83
  # Beispiel 12123123,12
84
84
  # Achtung: Der Wert 0 ist unzulässig.
85
85
 
86
86
  # 14
87
- field 'Buchungstext', :string, :limit => 60
87
+ field 'Buchungstext', :string, limit: 60
88
88
 
89
89
  # 15
90
90
  field 'Postensperre', :boolean
@@ -95,17 +95,17 @@ module Datev
95
95
  # Nur in Verbindung mit einer Rechnungsbuchung und Personenkonto (OPOS) relevant.
96
96
 
97
97
  # 16
98
- field 'Diverse Adressnummer', :string, :limit => 9
98
+ field 'Diverse Adressnummer', :string, limit: 9
99
99
  # Adressnummer einer diversen Adresse
100
100
  # Nur in Verbindung mit OPOS relevant.
101
101
 
102
102
  # 17
103
- field 'Geschäftspartnerbank', :integer, :limit => 3
103
+ field 'Geschäftspartnerbank', :integer, limit: 3
104
104
  # Wenn für eine Lastschrift oder Überweisung eine bestimmte Bank des Geschäftspartners genutzt werden soll.
105
105
  # Nur in Verbindung mit OPOS relevant.
106
106
 
107
107
  # 18
108
- field 'Sachverhalt', :integer, :limit => 2
108
+ field 'Sachverhalt', :integer, limit: 2
109
109
  # Der Sachverhalt wird in Rechnungswesen pro verwendet, um Buchungen/Posten als Mahnzins/Mahngebühr zu identifizieren.
110
110
  # Für diese Posten werden z. B. beim Erstellen von Mahnungen keine Mahnzinsen berechnet.
111
111
  # 31 = Mahnzins
@@ -120,7 +120,7 @@ module Datev
120
120
  # 1 = Zinssperre
121
121
 
122
122
  # 20
123
- field 'Beleglink', :string, :limit => 210
123
+ field 'Beleglink', :string, limit: 210
124
124
  # Link auf den Buchungsbeleg, der digital in einem Dokumenten-Management-System (z. B. DATEV Dokumentenablage, DATEV DMS classic) abgelegt wurde.
125
125
  # Beispiel für eine Beleg-ID eines Belegs aus DATEV Unternehmen online:
126
126
  # CB6A8F8F-099A-B3A9-2BAA-0CB64E299BA
@@ -128,8 +128,8 @@ module Datev
128
128
 
129
129
  # 21 bis 36
130
130
  (1..8).each do |number|
131
- field "Beleginfo – Art #{number}", :string, :limit => 20
132
- field "Beleginfo – Inhalt #{number}", :string, :limit => 210
131
+ field "Beleginfo – Art #{number}", :string, limit: 20
132
+ field "Beleginfo – Inhalt #{number}", :string, limit: 210
133
133
  end
134
134
  # Bei einem ASCII-Format, das aus einem DATEV pro-Rechnungswesen-Programm erstellt wurde, können diese Felder Informationen aus einem Beleg (z. B. einem elektronischen Kontoumsatz) enthalten.
135
135
  # Wenn die Feldlänge eines Beleginfo-Inhalts-Felds überschritten wird, wird die Information im nächsten Beleginfo-Feld weitergeführt.
@@ -142,32 +142,32 @@ module Datev
142
142
  # Buchungsspezifische Inhalte zu den oben genannten Informationsarten
143
143
 
144
144
  # 37
145
- field 'KOST1 – Kostenstelle', :string, :limit => 8
145
+ field 'KOST1 – Kostenstelle', :string, limit: 8
146
146
  # Über KOST1 erfolgt die Zuordnung des Geschäftsvorfalls für die anschließende Kostenrechnung.
147
147
 
148
148
  # 38
149
- field 'KOST2 – Kostenstelle', :string, :limit => 8
149
+ field 'KOST2 – Kostenstelle', :string, limit: 8
150
150
  # Über KOST2 erfolgt die Zuordnung des Geschäftsvorfalls für die anschließende Kostenrechnung.
151
151
 
152
152
  # 39
153
- field 'Kost Menge', :decimal, :precision => 11, :scale => 2
153
+ field 'Kost Menge', :decimal, precision: 11, scale: 2
154
154
  # Im KOST-Mengenfeld wird die Wertgabe zu einer bestimmten Bezugsgröße für eine Kostenstelle erfasst. Diese Bezugsgröße kann z. B. kg, g, cm, m, % sein. Die Bezugsgröße ist definiert in den Kostenrechnungs-Stammdaten.
155
155
  # Beispiel: 123123123,12
156
156
 
157
157
  # 40
158
- field 'EU-Land u. USt-IdNr.', :string, :limit => 15
158
+ field 'EU-Land u. USt-IdNr.', :string, limit: 15
159
159
  # Die USt-IdNr. besteht aus:
160
160
  # 2-stelligen Länderkürzel (siehe Dok.-Nr. 1080169; Ausnahme Griechenland: Das Länderkürzel lautet EL)
161
161
  # 13-stelliger USt-IdNr.
162
162
 
163
163
  # 41
164
- field 'EU-Steuersatz', :decimal, :precision => 4, :scale => 2
164
+ field 'EU-Steuersatz', :decimal, precision: 4, scale: 2
165
165
  # Nur für entsprechende EU-Buchungen:
166
166
  # Der im EU-Bestimmungsland gültige Steuersatz.
167
167
  # Beispiel: 12,12
168
168
 
169
169
  # 42
170
- field 'Abw. Versteuerungsart', :string, :limit => 1
170
+ field 'Abw. Versteuerungsart', :string, limit: 1
171
171
  # Für Buchungen, die in einer von der Mandantenstammdaten-Schlüsselung abweichenden Umsatzsteuerart verarbeitet werden sollen, kann die abweichende Versteuerungsart im Buchungssatz übergeben werden:
172
172
  # I = Ist-Versteuerung
173
173
  # K = keine Umsatzsteuerrechnung
@@ -175,31 +175,31 @@ module Datev
175
175
  # S = Soll-Versteuerung
176
176
 
177
177
  # 43
178
- field 'Sachverhalt L+L', :integer, :limit => 3
178
+ field 'Sachverhalt L+L', :integer, limit: 3
179
179
  # Sachverhalte gem. § 13b Abs. 1 Satz 1 Nrn. 1.ff UStG
180
180
  # Achtung: Der Wert 0 ist unzulässig.
181
181
  # (siehe Dok.-Nr. 1034915)
182
182
 
183
183
  # 44
184
- field 'Funktionsergänzung L+L', :integer, :limit => 3
184
+ field 'Funktionsergänzung L+L', :integer, limit: 3
185
185
  # Steuersatz/Funktion zum L+L-Sachverhalt
186
186
  # Achtung: Der Wert 0 ist unzulässig.
187
187
  # (siehe Dok.-Nr. 1034915)
188
188
 
189
189
  # 45
190
- field 'BU 49 Hauptfunktionstyp', :integer, :limit => 1
190
+ field 'BU 49 Hauptfunktionstyp', :integer, limit: 1
191
191
  # Bei Verwendung des BU-Schlüssels 49 für "andere Steuersätze" muss der steuerliche Sachverhalt mitgegeben werden.
192
192
 
193
193
  # 46
194
- field 'BU 49 Hauptfunktionsnummer', :integer, :limit => 2
194
+ field 'BU 49 Hauptfunktionsnummer', :integer, limit: 2
195
195
 
196
196
  # 47
197
- field 'BU 49 Funktionsergänzung', :integer, :limit => 3
197
+ field 'BU 49 Funktionsergänzung', :integer, limit: 3
198
198
 
199
199
  # 48 bis 87
200
200
  (1..20).each do |number|
201
- field "Zusatzinformation – Inhalt #{number}", :string, :limit => 210
202
- field "Zusatzinformation – Art #{number}", :string, :limit => 20
201
+ field "Zusatzinformation – Art #{number}", :string, limit: 20
202
+ field "Zusatzinformation – Inhalt #{number}", :string, limit: 210
203
203
  end
204
204
  # Zusatzinformationen, die zu Buchungssätzen erfasst werden können.
205
205
  # Diese Zusatzinformationen besitzen den Charakter eines Notizzettels und können frei erfasst werden.
@@ -210,42 +210,42 @@ module Datev
210
210
  # Informationsinhalt: Buchungsspezifische Inhalte zu den oben genannten Informationsarten.
211
211
 
212
212
  # 88
213
- field 'Stück', :integer, :limit => 8
213
+ field 'Stück', :integer, limit: 8
214
214
  # Wirkt sich nur bei Sachverhalt mit SKR14 Land- und Forstwirtschaft aus, für andere SKR werden die Felder beim Import/Export überlesen bzw. leer exportiert.
215
215
 
216
216
  # 89
217
- field 'Gewicht', :decimal, :limit => 10, :scale => 2
217
+ field 'Gewicht', :decimal, limit: 10, scale: 2
218
218
 
219
219
  # 90
220
- field 'Zahlweise', :integer, :limit => 2
220
+ field 'Zahlweise', :integer, limit: 2
221
221
  # OPOS-Informationen kommunal
222
222
  # 1 = Lastschrift
223
223
  # 2 = Mahnung
224
224
  # 3 = Zahlung
225
225
 
226
226
  # 91
227
- field 'Forderungsart', :string, :limit => 10
227
+ field 'Forderungsart', :string, limit: 10
228
228
  # OPOS-Informationen kommunal
229
229
 
230
230
  # 92
231
- field 'Veranlagungsjahr', :date, :format => '%Y'
231
+ field 'Veranlagungsjahr', :date, format: '%Y'
232
232
  # OPOS-Informationen kommunal
233
233
 
234
234
  # 93
235
- field 'Zugeordnete Fälligkeit', :date, :format => '%d%m%Y'
235
+ field 'Zugeordnete Fälligkeit', :date, format: '%d%m%Y'
236
236
  # OPOS-Informationen kommunal
237
237
 
238
238
  # 94
239
- field 'Skontotyp', :integer, :limit => 1
239
+ field 'Skontotyp', :integer, limit: 1
240
240
  # 1 = Einkauf von Waren
241
241
  # 2 = Erwerb von Roh-Hilfs- und Betriebsstoffen
242
242
 
243
243
  # 95
244
- field 'Auftragsnummer', :string, :limit => 30
244
+ field 'Auftragsnummer', :string, limit: 30
245
245
  # Allgemeine Bezeichnung, des Auftrags/Projekts
246
246
 
247
247
  # 96
248
- field 'Buchungstyp', :string, :limit => 2
248
+ field 'Buchungstyp', :string, limit: 2
249
249
  # AA = Angeforderte Anzahlung/Abschlagsrechnung
250
250
  # AG = Erhaltene Anzahlung (Geldeingang)
251
251
  # AV = Erhaltene Anzahlung (Verbindlichkeit)
@@ -255,44 +255,44 @@ module Datev
255
255
  # SO = Sonstige
256
256
 
257
257
  # 97
258
- field 'USt-Schlüssel (Anzahlungen)', :integer, :limit => 2
258
+ field 'USt-Schlüssel (Anzahlungen)', :integer, limit: 2
259
259
  # USt-Schlüssel der späteren Schlussrechnung
260
260
 
261
261
  # 98
262
- field 'EU-Mitgliedstaat (Anzahlungen)', :string, :limit => 2
262
+ field 'EU-Mitgliedstaat (Anzahlungen)', :string, limit: 2
263
263
  # EU-Mitgliedstaat der späteren Schlussrechnung
264
264
  # (siehe Dok.-Nr. 1080169)
265
265
 
266
266
  # 99
267
- field 'Sachverhalt L+L (Anzahlungen)', :integer, :limit => 3
267
+ field 'Sachverhalt L+L (Anzahlungen)', :integer, limit: 3
268
268
  # L+L-Sachverhalt der späteren Schlussrechnung
269
269
  # Sachverhalte gem. § 13b Abs. 1 Satz 1 Nrn. 1.-5. UStG
270
270
  # Achtung: Der Wert 0 ist unzulässig.
271
271
 
272
272
  # 100
273
- field 'EU-Steuersatz (Anzahlungen)', :decimal, :precision => 4, :scale => 2
273
+ field 'EU-Steuersatz (Anzahlungen)', :decimal, precision: 4, scale: 2
274
274
  # EU-Steuersatz der späteren Schlussrechnung
275
275
  # Nur für entsprechende EU-Buchungen: Der im EU-Bestimmungsland gültige Steuersatz.
276
276
  # Beispiel: 12,12
277
277
 
278
278
  # 101
279
- field 'Erlöskonto (Anzahlungen)', :integer, :limit => 9
279
+ field 'Erlöskonto (Anzahlungen)', :integer, limit: 9
280
280
  # Erlöskonto der späteren Schlussrechnung
281
281
 
282
282
  # 102
283
- field 'Herkunft-Kz', :string, :limit => 2
283
+ field 'Herkunft-Kz', :string, limit: 2
284
284
  # Wird beim Import durch SV (Stapelverarbeitung) ersetzt.
285
285
 
286
286
  # 103
287
- field 'Leerfeld', :string, :limit => 36
287
+ field 'Leerfeld', :string, limit: 36
288
288
  # Wird von DATEV verwendet.
289
289
 
290
290
  # 104
291
- field 'KOST-Datum', :date, :format => '%d%m%Y'
291
+ field 'KOST-Datum', :date, format: '%d%m%Y'
292
292
  # Format TTMMJJJJ
293
293
 
294
294
  # 105
295
- field 'SEPA-Mandatsreferenz', :string, :limit => 35
295
+ field 'SEPA-Mandatsreferenz', :string, limit: 35
296
296
  # Vom Zahlungsempfänger individuell vergebenes Kennzeichen eines Mandats (z. B. Rechnungs- oder Kundennummer).
297
297
 
298
298
  # 106
@@ -301,26 +301,26 @@ module Datev
301
301
  # 1 = Skontosperre
302
302
 
303
303
  # 107
304
- field 'Gesellschaftername', :string, :limit => 76
304
+ field 'Gesellschaftername', :string, limit: 76
305
305
 
306
306
  # 108
307
- field 'Beteiligtennummer', :integer, :limit => 4
307
+ field 'Beteiligtennummer', :integer, limit: 4
308
308
 
309
309
  # 109
310
- field 'Identifikationsnummer', :string, :limit => 11
310
+ field 'Identifikationsnummer', :string, limit: 11
311
311
 
312
312
  # 110
313
- field 'Zeichnernummer', :string, :limit => 20
313
+ field 'Zeichnernummer', :string, limit: 20
314
314
 
315
315
  # 111
316
- field 'Postensperre bis', :date, :format => '%d%m%Y'
316
+ field 'Postensperre bis', :date, format: '%d%m%Y'
317
317
 
318
318
  # 112
319
- field 'Bezeichnung', :string, :limit => 30
319
+ field 'Bezeichnung', :string, limit: 30
320
320
  # SoBil-Sachverhalt
321
321
 
322
322
  # 113
323
- field 'Kennzeichen', :integer, :limit => 2
323
+ field 'Kennzeichen', :integer, limit: 2
324
324
  # SoBil-Buchung
325
325
 
326
326
  # 114
@@ -332,10 +332,10 @@ module Datev
332
332
  # Ab Jahreswechselversion 2016/2017 gilt das auch bei Inhalt = leer.
333
333
 
334
334
  # 115
335
- field 'Leistungsdatum', :date, :format => '%d%m%Y'
335
+ field 'Leistungsdatum', :date, format: '%d%m%Y'
336
336
 
337
337
  # 116
338
- field 'Datum Zuord.', :date, :format => '%d%m%Y'
338
+ field 'Datum Zuord.', :date, format: '%d%m%Y'
339
339
  # Steuerperiode
340
340
  end
341
341
  end
@@ -1,23 +1,23 @@
1
1
  module Datev
2
2
  class Contact < Base
3
3
  def self.bank_account(number)
4
- field "Bankleitzahl #{number}", :string, :limit => 8
4
+ field "Bankleitzahl #{number}", :string, limit: 8
5
5
 
6
- field "Bankbezeichnung #{number}", :string, :limit => 30
6
+ field "Bankbezeichnung #{number}", :string, limit: 30
7
7
 
8
- field "Bankkonto-Nummer #{number}", :string, :limit => 10
8
+ field "Bankkonto-Nummer #{number}", :string, limit: 10
9
9
 
10
- field "Länderkennzeichen #{number}", :string, :limit => 2
10
+ field "Länderkennzeichen #{number}", :string, limit: 2
11
11
  # ISO-Code beachten (siehe Dok.-Nr. 1080169)
12
12
 
13
- field "IBAN #{number}", :string, :limit => 34
13
+ field "IBAN #{number}", :string, limit: 34
14
14
 
15
- field "Leerfeld #{number}", :string, :limit => 1
15
+ field "Leerfeld #{number}", :string, limit: 1
16
16
 
17
- field "SWIFT-Code #{number}", :string, :limit => 11
17
+ field "SWIFT-Code #{number}", :string, limit: 11
18
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
19
 
20
- field "Abw. Kontoinhaber #{number}", :string, :limit => 70
20
+ field "Abw. Kontoinhaber #{number}", :string, limit: 70
21
21
 
22
22
  field "Kennz. Haupt-Bankverb. #{number}", :boolean
23
23
  # Kennzeichnung als Haupt-Bankverbindung
@@ -25,45 +25,45 @@ module Datev
25
25
  # 0 = Nein
26
26
  # Nur eine Bankverbindung eines Debitoren oder Kreditoren kann als Haupt-Bankverbindung gekennzeichnet werden.
27
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'
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
30
  end
31
31
 
32
32
  # http://www.datev.de/dnlexom/client/app/index.html#/document/1036228/D103622800012
33
33
 
34
34
  # 1
35
- field 'Konto', :integer, :limit => 9, :required => true
35
+ field 'Konto', :integer, limit: 9, required: true
36
36
  # Personen-Kontonummer (abhängig von der Information im Header)
37
37
  # Sachkontennummernlänge + 1 = Personenkontenlänge
38
38
 
39
39
  # 2
40
- field 'Name (Adressatentyp Unternehmen)', :string, :limit => 50
40
+ field 'Name (Adressatentyp Unternehmen)', :string, limit: 50
41
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
42
 
43
43
  # 3
44
- field 'Unternehmensgegenstand', :string, :limit => 50
44
+ field 'Unternehmensgegenstand', :string, limit: 50
45
45
 
46
46
  # 4
47
- field 'Name (Adressatentyp natürl. Person)', :string, :limit => 30
47
+ field 'Name (Adressatentyp natürl. Person)', :string, limit: 30
48
48
 
49
49
  # 5
50
- field 'Vorname (Adressatentyp natürl. Person)', :string, :limit => 30
50
+ field 'Vorname (Adressatentyp natürl. Person)', :string, limit: 30
51
51
 
52
52
  # 6
53
- field 'Name (Adressatentyp keine Angabe)', :string, :limit => 50
53
+ field 'Name (Adressatentyp keine Angabe)', :string, limit: 50
54
54
 
55
55
  # 7
56
- field 'Adressatentyp', :string, :limit => 1
56
+ field 'Adressatentyp', :string, limit: 1
57
57
  # 0 = keine Angabe
58
58
  # 1 = natürliche Person
59
59
  # 2 = Unternehmen
60
60
  # Standardwert = Unternehmen
61
61
 
62
62
  # 8
63
- field 'Kurzbezeichnung', :string, :limit => 15
63
+ field 'Kurzbezeichnung', :string, limit: 15
64
64
 
65
65
  # 9
66
- field 'EU-Land', :string, :limit => 2
66
+ field 'EU-Land', :string, limit: 2
67
67
  # Die USt-IdNr. besteht aus
68
68
  # 2-stelligen Länderkürzel
69
69
  # (siehe Dok.-Nr. 1080169; Ausnahme Griechenland: Das Länderkürzel lautet EL)
@@ -71,114 +71,114 @@ module Datev
71
71
  # Beachten Sie bitte, dass kein Leerzeichen zwischen diesen beiden Eingabewerten sein darf.
72
72
 
73
73
  # 10
74
- field 'EU-USt-IdNr.', :string, :limit => 13
74
+ field 'EU-USt-IdNr.', :string, limit: 13
75
75
 
76
76
  # 11
77
- field 'Anrede', :string, :limit => 30
77
+ field 'Anrede', :string, limit: 30
78
78
 
79
79
  # 12
80
- field 'Titel/Akad. Grad', :string, :limit => 25
80
+ field 'Titel/Akad. Grad', :string, limit: 25
81
81
  # Nur bei Adressatentyp "natürliche Person" relevant.
82
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
83
 
84
84
  # 13
85
- field 'Adelstitel', :string, :limit => 15
85
+ field 'Adelstitel', :string, limit: 15
86
86
  # Nur bei Adressatentyp "natürliche Person" relevant.
87
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
88
 
89
89
  # 14
90
- field 'Namensvorsatz', :string, :limit => 14
90
+ field 'Namensvorsatz', :string, limit: 14
91
91
  # Nur bei Adressatentyp "natürliche Person" relevant.
92
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
93
 
94
94
  # 15
95
- field 'Adressart', :string, :limit => 3
95
+ field 'Adressart', :string, limit: 3
96
96
  # STR = Straße
97
97
  # PF = Postfach
98
98
  # GK = Großkunde
99
99
  # Wird die Adressart nicht übergeben, wird sie automatisch in Abhängigkeit zu den übergebenen Feldern (Straße oder Postfach) gesetzt.
100
100
 
101
101
  # 16
102
- field 'Straße', :string, :limit => 36
102
+ field 'Straße', :string, limit: 36
103
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
104
 
105
105
  #17
106
- field 'Postfach', :string, :limit => 10
106
+ field 'Postfach', :string, limit: 10
107
107
 
108
108
  # 18
109
- field 'Postleitzahl', :string, :limit => 10
109
+ field 'Postleitzahl', :string, limit: 10
110
110
 
111
111
  # 19
112
- field 'Ort', :string, :limit => 30
112
+ field 'Ort', :string, limit: 30
113
113
 
114
114
  # 20
115
- field 'Land', :string, :limit => 2
115
+ field 'Land', :string, limit: 2
116
116
  # ISO-Code beachten! (Dok.-Nr. 1080169)
117
117
 
118
118
  # 21
119
- field 'Versandzusatz', :string, :limit => 50
119
+ field 'Versandzusatz', :string, limit: 50
120
120
 
121
121
  # 22
122
- field 'Adresszusatz', :string, :limit => 36
122
+ field 'Adresszusatz', :string, limit: 36
123
123
  # Beispiel: z. Hd. Herrn Mustermann
124
124
 
125
125
  # 23
126
- field 'Abweichende Anrede', :string, :limit => 30
126
+ field 'Abweichende Anrede', :string, limit: 30
127
127
  # Es kann ein beliebiger individueller Text verwendet werden.
128
128
 
129
129
  # 24
130
- field 'Abw. Zustellbezeichnung 1', :string, :limit => 50
130
+ field 'Abw. Zustellbezeichnung 1', :string, limit: 50
131
131
 
132
132
  # 25
133
- field 'Abw. Zustellbezeichnung 2', :string, :limit => 36
133
+ field 'Abw. Zustellbezeichnung 2', :string, limit: 36
134
134
 
135
135
  # 26
136
136
  field 'Kennz. Korrespondenzadresse', :boolean
137
137
  # 1= Kennzeichnung Korrespondenzadresse
138
138
 
139
139
  # 27
140
- field 'Adresse Gültig von', :date, :format => '%d%m%Y'
140
+ field 'Adresse Gültig von', :date, format: '%d%m%Y'
141
141
 
142
142
  # 28
143
- field 'Adresse Gültig bis', :date, :format => '%d%m%Y'
143
+ field 'Adresse Gültig bis', :date, format: '%d%m%Y'
144
144
 
145
145
  # 29
146
- field 'Telefon', :string, :limit => 60
146
+ field 'Telefon', :string, limit: 60
147
147
  # Standard-Telefonnummer
148
148
 
149
149
  # 30
150
- field 'Bemerkung (Telefon)', :string, :limit => 40
150
+ field 'Bemerkung (Telefon)', :string, limit: 40
151
151
 
152
152
  # 31
153
- field 'Telefon Geschäftsleitung', :string, :limit => 60
153
+ field 'Telefon Geschäftsleitung', :string, limit: 60
154
154
  # Geschäftsleitungs-Telefonnummer
155
155
 
156
156
  # 32
157
- field 'Bemerkung (Telefon GL)', :string, :limit => 40
157
+ field 'Bemerkung (Telefon GL)', :string, limit: 40
158
158
 
159
159
  # 33
160
- field 'E-Mail', :string, :limit => 60
160
+ field 'E-Mail', :string, limit: 60
161
161
 
162
162
  # 34
163
- field 'Bemerkung (E-Mail)', :string, :limit => 40
163
+ field 'Bemerkung (E-Mail)', :string, limit: 40
164
164
 
165
165
  # 35
166
- field 'Internet', :string, :limit => 60
166
+ field 'Internet', :string, limit: 60
167
167
 
168
168
  # 36
169
- field 'Bemerkung (Internet)', :string, :limit => 40
169
+ field 'Bemerkung (Internet)', :string, limit: 40
170
170
 
171
171
  # 37
172
- field 'Fax', :string, :limit => 60
172
+ field 'Fax', :string, limit: 60
173
173
 
174
174
  # 38
175
- field 'Bemerkung (Fax)', :string, :limit => 40
175
+ field 'Bemerkung (Fax)', :string, limit: 40
176
176
 
177
177
  # 39
178
- field 'Sonstige', :string, :limit => 60
178
+ field 'Sonstige', :string, limit: 60
179
179
 
180
180
  # 40
181
- field 'Bemerkung (Sonstige)', :string, :limit => 40
181
+ field 'Bemerkung (Sonstige)', :string, limit: 40
182
182
 
183
183
  # 41 bis 95
184
184
  (1..5).each do |number|
@@ -186,23 +186,23 @@ module Datev
186
186
  end
187
187
 
188
188
  # 96
189
- field 'Leerfeld 11', :integer, :limit => 3
189
+ field 'Leerfeld 11', :integer, limit: 3
190
190
 
191
191
  # 97
192
- field 'Briefanrede', :string, :limit => 100
192
+ field 'Briefanrede', :string, limit: 100
193
193
 
194
194
  # 98
195
- field 'Grußformel', :string, :limit => 50
195
+ field 'Grußformel', :string, limit: 50
196
196
 
197
197
  # 99
198
- field 'Kundennummer', :string, :limit => 15
198
+ field 'Kundennummer', :string, limit: 15
199
199
  # Kann nicht geändert werden, wenn zentralisierte Geschäftspartner verwendet werden.
200
200
 
201
201
  # 100
202
- field 'Steuernummer', :string, :limit => 20
202
+ field 'Steuernummer', :string, limit: 20
203
203
 
204
204
  # 101
205
- field 'Sprache', :integer, :limit => 2
205
+ field 'Sprache', :integer, limit: 2
206
206
  # 1 = Deutsch
207
207
  # 4 = Französisch
208
208
  # 5 = Englisch
@@ -210,13 +210,13 @@ module Datev
210
210
  # 19 = Italienisch
211
211
 
212
212
  # 102
213
- field 'Ansprechpartner', :string, :limit => 40
213
+ field 'Ansprechpartner', :string, limit: 40
214
214
 
215
215
  # 103
216
- field 'Vertreter', :string, :limit => 40
216
+ field 'Vertreter', :string, limit: 40
217
217
 
218
218
  # 104
219
- field 'Sachbearbeiter', :string, :limit => 40
219
+ field 'Sachbearbeiter', :string, limit: 40
220
220
 
221
221
  # 105
222
222
  field 'Diverse-Konto', :boolean
@@ -224,50 +224,50 @@ module Datev
224
224
  # 1 = Ja
225
225
 
226
226
  # 106
227
- field 'Ausgabeziel', :integer, :limit => 1
227
+ field 'Ausgabeziel', :integer, limit: 1
228
228
  # 1 = Druck 
229
229
  # 2 = Telefax
230
230
  # 3 = E-Mail
231
231
 
232
232
  # 107
233
- field 'Währungssteuerung', :integer, :limit => 1
233
+ field 'Währungssteuerung', :integer, limit: 1
234
234
  # 0 = Zahlungen in Eingabewährung
235
235
  # 2 = Ausgabe in EUR
236
236
 
237
237
  # 108
238
- field 'Kreditlimit (Debitor)', :integer, :limit => 10
238
+ field 'Kreditlimit (Debitor)', :integer, limit: 10
239
239
  # Nur für Debitoren gültig
240
240
  # Beispiel: 1.123.123.123
241
241
 
242
242
  # 109
243
- field 'Zahlungsbedingung', :integer, :limit => 3
243
+ field 'Zahlungsbedingung', :integer, limit: 3
244
244
  # Eine gespeicherte Zahlungsbedingung kann hier einem Geschäftspartner zugeordnet werden.
245
245
 
246
246
  # 110
247
- field 'Fälligkeit in Tagen (Debitor)', :integer, :limit => 3
247
+ field 'Fälligkeit in Tagen (Debitor)', :integer, limit: 3
248
248
  # Nur für Debitoren gültig
249
249
 
250
250
  # 111
251
- field 'Skonto in Prozent (Debitor)', :decimal, :precision => 4, :scale => 2
251
+ field 'Skonto in Prozent (Debitor)', :decimal, precision: 4, scale: 2
252
252
  # Nur für Debitoren gültig
253
253
  # Beispiel: 12,12
254
254
 
255
255
  # 112 bis 120
256
256
  (1..5).each do |number|
257
257
  if 3 == number
258
- field "Kreditoren-Ziel #{number} Brutto (Tage)", :integer, :limit => 3
258
+ field "Kreditoren-Ziel #{number} Brutto (Tage)", :integer, limit: 3
259
259
  else
260
- field "Kreditoren-Ziel #{number} (Tage)", :integer, :limit => 2
260
+ field "Kreditoren-Ziel #{number} (Tage)", :integer, limit: 2
261
261
  # Nur für Kreditoren gültig
262
262
 
263
- field "Kreditoren-Skonto #{number} (%)", :decimal, :precision => 4, :scale => 2
263
+ field "Kreditoren-Skonto #{number} (%)", :decimal, precision: 4, scale: 2
264
264
  # Nur für Kreditoren gültig
265
265
  # Beispiel: 12,12
266
266
  end
267
267
  end
268
268
 
269
269
  # 121
270
- field 'Mahnung', :integer, :limit => 1
270
+ field 'Mahnung', :integer, limit: 1
271
271
  # 0 = Keine Angaben
272
272
  # 1 = 1. Mahnung
273
273
  # 2 = 2. Mahnung
@@ -279,34 +279,34 @@ module Datev
279
279
  # 9 = keine Mahnung
280
280
 
281
281
  # 122
282
- field 'Kontoauszug', :integer, :limit => 1
282
+ field 'Kontoauszug', :integer, limit: 1
283
283
  # 1 = Kontoauszug für alle Posten
284
284
  # 2 = Auszug nur dann, wenn ein Posten mahnfähig ist
285
285
  # 3 = Auszug für alle mahnfälligen Posten
286
286
  # 9 = kein Kontoauszug
287
287
 
288
- field 'Mahntext', :integer, :limit => 1
288
+ field 'Mahntext', :integer, limit: 1
289
289
  # Leer = keinen Mahntext ausgewählt
290
290
  # 1 = Textgruppe 1
291
291
  # ...
292
292
  # 9 = Textgruppe 9
293
293
 
294
294
  # 124
295
- field 'Mahntext 2', :integer, :limit => 1
295
+ field 'Mahntext 2', :integer, limit: 1
296
296
  # Leer = keinen Mahntext ausgewählt
297
297
  # 1 = Textgruppe 1
298
298
  # ...
299
299
  # 9 = Textgruppe 9
300
300
 
301
301
  # 125
302
- field 'Mahntext 3', :integer, :limit => 1
302
+ field 'Mahntext 3', :integer, limit: 1
303
303
  # Leer = keinen Mahntext ausgewählt
304
304
  # 1 = Textgruppe 1
305
305
  # ...
306
306
  # 9 = Textgruppe 9
307
307
 
308
308
  # 126
309
- field 'Kontoauszugstext', :integer, :limit => 1
309
+ field 'Kontoauszugstext', :integer, limit: 1
310
310
  # Leer = kein Kontoauszugstext ausgewählt
311
311
  # 1 = Kontoauszugstext 1
312
312
  # ...
@@ -314,15 +314,15 @@ module Datev
314
314
  # 9 = Kein Kontoauszugstext
315
315
 
316
316
  # 127
317
- field 'Mahnlimit Betrag', :decimal, :precision => 7, :scale => 2
317
+ field 'Mahnlimit Betrag', :decimal, precision: 7, scale: 2
318
318
  # Beispiel: 12.123,12
319
319
 
320
320
  # 128
321
- field 'Mahnlimit %', :decimal, :precision => 4, :scale => 2
321
+ field 'Mahnlimit %', :decimal, precision: 4, scale: 2
322
322
  # Beispiel: 12,12
323
323
 
324
324
  # 129
325
- field 'Zinsberechnung', :integer, :limit => 1
325
+ field 'Zinsberechnung', :integer, limit: 1
326
326
  # 0 = MPD-Schlüsselung gilt
327
327
  # 1 = Fester Zinssatz
328
328
  # 2 = Zinssatz über Staffel
@@ -330,12 +330,12 @@ module Datev
330
330
 
331
331
  # 130 - 132
332
332
  (1..3).each do |number|
333
- field "Mahnzinssatz #{number}", :decimal, :precision => 4, :scale => 2
333
+ field "Mahnzinssatz #{number}", :decimal, precision: 4, scale: 2
334
334
  # Beispiel: 12,12
335
335
  end
336
336
 
337
337
  # 133
338
- field 'Lastschrift', :string, :limit => 1
338
+ field 'Lastschrift', :string, limit: 1
339
339
  # Leer bzw. 0 = keine Angaben, es gilt die MPD-Schlüsselung
340
340
  # 1 = Einzellastschrift mit einer Rechnung
341
341
  # 2 = Einzellastschrift mit mehreren Rechnungen
@@ -348,16 +348,16 @@ module Datev
348
348
  # 9 = kein Lastschriftverfahren bei diesem Debitor
349
349
 
350
350
  # 134
351
- field 'Verfahren', :string, :limit => 1
351
+ field 'Verfahren', :string, limit: 1
352
352
  # 0 = Einzugsermächtigung
353
353
  # 1 = Abbuchungsverfahren
354
354
 
355
355
  # 135
356
- field 'Mandantenbank', :integer, :limit => 4
356
+ field 'Mandantenbank', :integer, limit: 4
357
357
  # Zuordnung der gespeicherten Mandantenbank, die für das Lastschriftverfahren verwendet werden soll.
358
358
 
359
359
  # 136
360
- field 'Zahlungsträger', :string, :limit => 1
360
+ field 'Zahlungsträger', :string, limit: 1
361
361
  # Leer bzw. 0 = keine Angaben, es gilt die MPD-Schlüsselung
362
362
  # 1 = Einzelüberweisung mit einer Rechnung
363
363
  # 2 = Einzelüberweisung mit mehreren Rechnungen
@@ -371,57 +371,57 @@ module Datev
371
371
 
372
372
  # 137 bis 151
373
373
  (1..15).each do |number|
374
- field "Indiv. Feld #{number}", :string, :limit => 40
374
+ field "Indiv. Feld #{number}", :string, limit: 40
375
375
 
376
376
  # 11 bis 15 wird derzeit nicht übernommen
377
377
  end
378
378
 
379
379
  # 152
380
- field 'Abweichende Anrede (Rechnungsadresse)', :string, :limit => 30
380
+ field 'Abweichende Anrede (Rechnungsadresse)', :string, limit: 30
381
381
  # Es kann ein beliebiger individueller Text verwendet werden.
382
382
 
383
383
  # 153
384
- field 'Adressart (Rechnungsadresse)', :string, :limit => 3
384
+ field 'Adressart (Rechnungsadresse)', :string, limit: 3
385
385
  # STR = Straße 
386
386
  # PF = Postfach
387
387
  # GK = Großkunde
388
388
  # Wird die Adressart nicht übergeben, wird sie automatisch in Abhängigkeit zu den übergebenen Feldern (Straße oder Postfach) gesetzt.
389
389
 
390
390
  # 154
391
- field 'Straße (Rechnungsadresse)', :string, :limit => 36
391
+ field 'Straße (Rechnungsadresse)', :string, limit: 36
392
392
  # 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.
393
393
 
394
394
  # 155
395
- field 'Postfach (Rechnungsadresse)', :string, :limit => 10
395
+ field 'Postfach (Rechnungsadresse)', :string, limit: 10
396
396
 
397
397
  # 156
398
- field 'Postleitzahl (Rechnungsadresse)', :string, :limit => 10
398
+ field 'Postleitzahl (Rechnungsadresse)', :string, limit: 10
399
399
 
400
400
  # 157
401
- field 'Ort (Rechnungsadresse)', :string, :limit => 30
401
+ field 'Ort (Rechnungsadresse)', :string, limit: 30
402
402
 
403
403
  # 158
404
- field 'Land (Rechnungsadresse)', :string, :limit => 2
404
+ field 'Land (Rechnungsadresse)', :string, limit: 2
405
405
  # ISO-Code beachten (siehe Dok.-Nr. 1080169)
406
406
 
407
407
  # 159
408
- field 'Versandzusatz (Rechnungsadresse)', :string, :limit => 50
408
+ field 'Versandzusatz (Rechnungsadresse)', :string, limit: 50
409
409
 
410
410
  # 160
411
- field 'Adresszusatz (Rechnungsadresse)', :string, :limit => 36
411
+ field 'Adresszusatz (Rechnungsadresse)', :string, limit: 36
412
412
  # Beispiel: z. Hd. Herrn Mustermann
413
413
 
414
414
  # 161
415
- field 'Abw. Zustellbezeichnung 1 (Rechnungsadresse)', :string, :limit => 50
415
+ field 'Abw. Zustellbezeichnung 1 (Rechnungsadresse)', :string, limit: 50
416
416
 
417
417
  # 162
418
- field 'Abw. Zustellbezeichnung 2 (Rechnungsadresse)', :string, :limit => 36
418
+ field 'Abw. Zustellbezeichnung 2 (Rechnungsadresse)', :string, limit: 36
419
419
 
420
420
  # 163
421
- field 'Adresse Gültig von (Rechnungsadresse)', :date, :format => '%d%m%Y'
421
+ field 'Adresse Gültig von (Rechnungsadresse)', :date, format: '%d%m%Y'
422
422
 
423
423
  # 164
424
- field 'Adresse Gültig bis (Rechnungsadresse)', :date, :format => '%d%m%Y'
424
+ field 'Adresse Gültig bis (Rechnungsadresse)', :date, format: '%d%m%Y'
425
425
 
426
426
  # 165 bis 219
427
427
  (6..10).each do |number|
@@ -429,7 +429,7 @@ module Datev
429
429
  end
430
430
 
431
431
  # 220
432
- field 'Nummer Fremdsystem', :string, :limit => 15
432
+ field 'Nummer Fremdsystem', :string, limit: 15
433
433
  # Achtung: Wird bei Verwendung zentralisierter Geschäftspartner von DATEV überschrieben.
434
434
 
435
435
  # 221
@@ -439,46 +439,46 @@ module Datev
439
439
 
440
440
  # 222 bis 231
441
441
  (1..10).each do |number|
442
- field "SEPA-Mandatsreferenz #{number}", :string, :limit => 35
442
+ field "SEPA-Mandatsreferenz #{number}", :string, limit: 35
443
443
  # 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.
444
444
  end
445
445
 
446
446
  # 232
447
- field 'Verknüpftes OPOS-Konto', :integer, :limit => 9
447
+ field 'Verknüpftes OPOS-Konto', :integer, limit: 9
448
448
  # 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.
449
449
 
450
450
  # --- Erweiterungen zur Jahreswechselversion 2015/2016
451
451
 
452
452
  # 233
453
- field 'Mahnsperre bis', :date, :format => '%d%m%Y'
453
+ field 'Mahnsperre bis', :date, format: '%d%m%Y'
454
454
 
455
455
  # 234
456
- field 'Lastschriftsperre bis', :date, :format => '%d%m%Y'
456
+ field 'Lastschriftsperre bis', :date, format: '%d%m%Y'
457
457
 
458
458
  # 235
459
- field 'Zahlungssperre bis', :date, :format => '%d%m%Y'
459
+ field 'Zahlungssperre bis', :date, format: '%d%m%Y'
460
460
 
461
461
  # 236
462
- field 'Gebührenberechnung', :integer, :limit => 1
462
+ field 'Gebührenberechnung', :integer, limit: 1
463
463
  # 0 = MPD-Schlüsselung gilt
464
464
  # 1 = Mahngebühr berechnen
465
465
  # 9 = Keine Berechnung für diesen Debitor
466
466
 
467
467
  # 237 bis 239
468
468
  (1..3).each do |number|
469
- field "Mahngebühr #{number}", :decimal, :precision => 4, :scale => 2
469
+ field "Mahngebühr #{number}", :decimal, precision: 4, scale: 2
470
470
  # Beispiel: 12,12
471
471
  end
472
472
 
473
473
  # 240
474
- field 'Pauschalberechnung', :integer, :limit => 1
474
+ field 'Pauschalberechnung', :integer, limit: 1
475
475
  # 0 = MPD-Schlüsselung gilt
476
476
  # 1 = Verzugspauschale berechnen
477
477
  # 9 = Keine Berechnung für diesen Debitor
478
478
 
479
479
  # 241 bis 243
480
480
  (1..3).each do |number|
481
- field "Verzugspauschale #{number}", :decimal, :precision => 5, :scale => 2
481
+ field "Verzugspauschale #{number}", :decimal, precision: 5, scale: 2
482
482
  # Beispiel: 12,12
483
483
  end
484
484
  end
@@ -1,16 +1,16 @@
1
1
  module Datev
2
2
  class Header < Base
3
3
  # 1
4
- field 'DATEV-Format-KZ', :string, :limit => 4
4
+ field 'DATEV-Format-KZ', :string, limit: 4
5
5
  # vom Datev angegeben
6
6
  # EXTF = für Datei-Formate, die von externen Programmen erstellt wurden
7
7
 
8
8
  # 2
9
- field 'Versionsnummer', :integer, :limit => 3
9
+ field 'Versionsnummer', :integer, limit: 3
10
10
  # entspricht der zugrundeliegenden Versionsnummer des Scnittstellen-Entwicklungsleitfadens
11
11
 
12
12
  # 3
13
- field 'Datenkategorie', :integer, :limit => 2
13
+ field 'Datenkategorie', :integer, limit: 2
14
14
  # vom Datev angegeben
15
15
 
16
16
  # 4
@@ -18,65 +18,65 @@ module Datev
18
18
  # vom Datev angegeben
19
19
 
20
20
  # 5
21
- field 'Formatversion', :integer, :limit => 3
21
+ field 'Formatversion', :integer, limit: 3
22
22
  # vom Datev angegeben
23
23
 
24
24
  # 6
25
- field 'Erzeugt am', :date, :format => '%Y%m%d%H%M%S%L'
25
+ field 'Erzeugt am', :date, format: '%Y%m%d%H%M%S%L'
26
26
 
27
27
  # 7
28
28
  field 'Importiert', :date
29
29
  # Darf nicht gefüllt werden, durch Import gesetzt.
30
30
 
31
31
  # 8
32
- field 'Herkunft', :string, :limit => 2
32
+ field 'Herkunft', :string, limit: 2
33
33
  # Herkunfts-Kennzeichen
34
34
  # Beim Import wird das Herkunfts-Kennzeichen durch „SV“ (= Stapelverarbeitung) ersetzt.
35
35
 
36
36
  # 9
37
- field 'Exportiert von', :string, :limit => 25
37
+ field 'Exportiert von', :string, limit: 25
38
38
  # Benutzername
39
39
 
40
40
  # 10
41
- field 'Importiert von', :string, :limit => 10
41
+ field 'Importiert von', :string, limit: 10
42
42
  # Darf nicht gefüllt werden, durch Import gesetzt.
43
43
 
44
44
  # 11
45
- field 'Berater', :integer, :limit => 7, :minimum => 1001
45
+ field 'Berater', :integer, limit: 7, minimum: 1001
46
46
  # Beraternummer
47
47
 
48
48
  # 12
49
- field 'Mandant', :integer, :limit => 5
49
+ field 'Mandant', :integer, limit: 5
50
50
  # Mandantennummer
51
51
 
52
52
  # 13
53
- field 'WJ-Beginn', :date, :format => '%Y%m%d'
53
+ field 'WJ-Beginn', :date, format: '%Y%m%d'
54
54
  # Wirtschaftsjahresbeginn
55
55
 
56
56
  # 14
57
- field 'Sachkontenlänge', :integer, :limit => 1
57
+ field 'Sachkontenlänge', :integer, limit: 1
58
58
  # Kleinste Sachkontenlänge = 4, Grösste Sachkontenlänge = 8
59
59
 
60
60
  # 15
61
- field 'Datum vom', :date, :format => '%Y%m%d'
61
+ field 'Datum vom', :date, format: '%Y%m%d'
62
62
 
63
63
  # 16
64
- field 'Datum bis', :date, :format => '%Y%m%d'
64
+ field 'Datum bis', :date, format: '%Y%m%d'
65
65
 
66
66
  # 17
67
- field 'Bezeichnung', :string, :limit => 30
67
+ field 'Bezeichnung', :string, limit: 30
68
68
  # Bezeichnung des Buchungsstapels
69
69
 
70
70
  # 18
71
- field 'Diktatkürzel', :string, :limit => 2
71
+ field 'Diktatkürzel', :string, limit: 2
72
72
  # Diktatkürzel Beispiel MM = Max Mustermann
73
73
 
74
74
  # 19
75
- field 'Buchungstyp', :integer, :limit => 1
75
+ field 'Buchungstyp', :integer, limit: 1
76
76
  # 1 = Finanzbuchhaltung, 2 = Jahresabschluss
77
77
 
78
78
  # 20
79
- field 'Rechnungslegungszweck' , :integer, :limit => 2
79
+ field 'Rechnungslegungszweck' , :integer, limit: 2
80
80
  # 0 oder leer = Rechnungslegungszweckunabhängig
81
81
 
82
82
  # 21
@@ -86,7 +86,7 @@ module Datev
86
86
  # 1 = Festschreibung
87
87
 
88
88
  # 22
89
- field 'WKZ', :string, :limit => 3
89
+ field 'WKZ', :string, limit: 3
90
90
  # Währungskennzeichen
91
91
 
92
92
  # 23
@@ -114,7 +114,7 @@ module Datev
114
114
  field 'reserviert 5', :string
115
115
 
116
116
  # 31
117
- field 'Anwendungsinformation', :string, :limit => 16
117
+ field 'Anwendungsinformation', :string, limit: 16
118
118
  # Verarbeitungskennzeichen der abgebenden Anwendung => Bsp. '9/2016'
119
119
  end
120
120
  end
@@ -1,6 +1,6 @@
1
1
  module Datev
2
2
  class Export
3
- CSV_OPTIONS = { :col_sep => ';', :encoding => 'windows-1252' }
3
+ CSV_OPTIONS = { col_sep: ';', encoding: 'windows-1252' }
4
4
 
5
5
  class << self
6
6
  attr_accessor :header_class, :row_class
@@ -1,3 +1,3 @@
1
1
  module Datev
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.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.6.0
4
+ version: 0.7.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: 2017-03-01 00:00:00.000000000 Z
11
+ date: 2018-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -134,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: 2.0.0
137
+ version: 2.2.0
138
138
  required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  requirements:
140
140
  - - ">="
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  version: '0'
143
143
  requirements: []
144
144
  rubyforge_project:
145
- rubygems_version: 2.6.10
145
+ rubygems_version: 2.7.5
146
146
  signing_key:
147
147
  specification_version: 4
148
148
  summary: Export booking data in DATEV format