datev 0.4.0 → 0.5.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: b6c528c7ca4a5ad0e5aceec6ac0776778513f979
4
- data.tar.gz: 0bec1561db96d7e0f026fa66091bb5de0a0dab60
3
+ metadata.gz: f3e035a9aa694d548569863f6270876c5716d00a
4
+ data.tar.gz: a6ba5d87cf277273acdf5a2c1f9affdc09242747
5
5
  SHA512:
6
- metadata.gz: 6899a123c19ab1617bb4d3bc55b1f9bab2c74a91156813ed3c1adc31686ce72b993ed02b8fb4f3a054f34cfdfaa31b714cea795a9e83cf9cc0f20f38948a4eee
7
- data.tar.gz: a01fbbdb2086ada39ae9ca6e0f45bc5adddd26e90c642f6eba1327b597375336e4774e8849638957d47122a0c00c8060e03321659c9203717fdf8b8fb31fa82b
6
+ metadata.gz: 5211fd3179fd43c2c78d46797c70b5332d93f60333659201135609dc13e0ecedea657143a98da470c478fe6b62e9ab5f47c1dced77ded376d0ea317f6a6b6f7c
7
+ data.tar.gz: 4d99bbbcab81b468445781817c778e77fdca0da773b2d350b20efbed3b79ed057e924667ef488a7940c8cee0ae8ad14c3347f7871d4058370b81ef5aec70b228
data/README.md CHANGED
@@ -28,7 +28,7 @@ Or install it yourself as:
28
28
  export = Datev::BookingExport.new(
29
29
  'Herkunft' => 'XY',
30
30
  'Exportiert von' => 'Chief Accounting Officer',
31
- 'Berater' => 123,
31
+ 'Berater' => 1001,
32
32
  'Mandant' => 456,
33
33
  'WJ-Beginn' => Date.new(2016,1,1),
34
34
  'Datum vom' => Date.new(2016,6,1),
@@ -1,4 +1,4 @@
1
- EXTF;510;21;Buchungsstapel;7;20160623152500000;;XY;Chief Accounting Officer;;123;456;20160101;4;20160601;20160630;Beispiel-Buchungen;;1;;;EUR;;;;
1
+ "EXTF";510;21;"Buchungsstapel";7;20160623152500000;;"XY";"Chief Accounting Officer";"";1001;456;20160101;4;20160601;20160630;"Beispiel-Buchungen";"";1;;;"EUR";"";"";"";"";"";;;"";""
2
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.
3
- 24,95;H;;;;;1200;4940;8;2106;;;;Fachbuch: Controlling f�r Dummies;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4
- 5950,00;S;;;;;10000;8400;;2206;RE201606-135;;;Honorar FiBu-Seminar;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
+ 24,95;"H";"";;;"";1200;4940;"8";2106;"";"";;"Fachbuch: Controlling f�r Dummies";;"";;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;"";;"";;;;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;;;"";;;;"";"";;"";;;;"";"";;"";;"";;"";"";;"";;;;
4
+ 5950,00;"S";"";;;"";10000;8400;"";2206;"RE201606-135";"";;"Honorar FiBu-Seminar";;"";;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;"";;"";;;;;;"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";;;;"";;;;"";"";;"";;;;"";"";;"";;"";;"";"";;"";;;;
@@ -1,5 +1,5 @@
1
- EXTF;510;20;Kontenbeschriftungen;2;20160623152500000;;XY;Chief Accounting Officer;;123;456;20160101;4;;;Beispiel-Konten;;;;;;;;;
1
+ "EXTF";510;20;"Kontenbeschriftungen";2;20160623152500000;;"XY";"Chief Accounting Officer";"";1001;456;20160101;4;;;"Beispiel-Konten";"";;;;"";"";"";"";"";"";;;"";""
2
2
  Konto;Kontenbeschriftung;Sprach-ID
3
- 400;Betriebsausstattung;de-DE
4
- 1000;Kasse;de-DE
5
- 1200;Girokonto;de-DE
3
+ 400;"Betriebsausstattung";"de-DE"
4
+ 1000;"Kasse";"de-DE"
5
+ 1200;"Girokonto";"de-DE"
@@ -1,5 +1,5 @@
1
- EXTF;510;16;Debitoren/Kreditoren;4;20160623152500000;;XY;Chief Accounting Officer;;123;456;20160101;4;;;Kunden und Lieferanten;;;;;;;;;
1
+ "EXTF";510;16;"Debitoren/Kreditoren";4;20160623152500000;;"XY";"Chief Accounting Officer";"";1001;456;20160101;4;;;"Kunden und Lieferanten";"";;;;"";"";"";"";"";"";;;"";""
2
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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
@@ -20,5 +20,3 @@ require 'datev/export'
20
20
  require 'datev/export/account_export'
21
21
  require 'datev/export/contact_export'
22
22
  require 'datev/export/booking_export'
23
-
24
- require 'csv'
@@ -42,7 +42,7 @@ module Datev
42
42
  # Darf nicht gefüllt werden, durch Import gesetzt.
43
43
 
44
44
  # 11
45
- field 'Berater', :integer, :limit => 7
45
+ field 'Berater', :integer, :limit => 7, :minimum => 1001
46
46
  # Beraternummer
47
47
 
48
48
  # 12
@@ -91,5 +91,21 @@ module Datev
91
91
  field 'reserviert 3', :string
92
92
  field 'reserviert 4', :string
93
93
  field 'reserviert 5', :string
94
+
95
+ # 27
96
+ field 'SKR', :string
97
+
98
+ # 28
99
+ field 'Branchenlösung-Id', :integer
100
+
101
+ # 29
102
+ field 'reserviert 6', :integer
103
+
104
+ # 30
105
+ field 'reserviert 7', :string
106
+
107
+ # 31
108
+ field 'Anwendungsinformation', :string, :limit => 16
109
+ # Verarbeitungskennzeichen der abgebenden Anwendung => Bsp. '9/2016'
94
110
  end
95
111
  end
data/lib/datev/export.rb CHANGED
@@ -16,26 +16,26 @@ module Datev
16
16
  end
17
17
 
18
18
  def to_s
19
- CSV.generate(CSV_OPTIONS) do |csv|
20
- write(csv)
19
+ string = to_csv_line(@header.output) <<
20
+ to_csv_line(self.class.row_class.fields.map(&:name))
21
+
22
+ @rows.each do |row|
23
+ string << to_csv_line(row.output(@header))
21
24
  end
25
+
26
+ string.encode(CSV_OPTIONS[:encoding])
22
27
  end
23
28
 
24
29
  def to_file(filename)
25
- CSV.open(filename, 'wb', CSV_OPTIONS) do |csv|
26
- write(csv)
30
+ File.open(filename, 'wb') do |file|
31
+ file.write(to_s)
27
32
  end
28
33
  end
29
34
 
30
35
  private
31
36
 
32
- def write(csv)
33
- csv << @header.output
34
- csv << self.class.row_class.fields.map(&:name)
35
-
36
- @rows.each do |row|
37
- csv << row.output(@header)
38
- end
37
+ def to_csv_line(data)
38
+ data.join(CSV_OPTIONS[:col_sep]) + "\n"
39
39
  end
40
40
  end
41
41
  end
@@ -4,12 +4,22 @@ module Datev
4
4
  options[:limit]
5
5
  end
6
6
 
7
+ def maximum
8
+ options[:maximum]
9
+ end
10
+
11
+ def minimum
12
+ options[:minimum]
13
+ end
14
+
7
15
  def validate!(value)
8
16
  super
9
17
 
10
18
  if value
11
19
  raise ArgumentError.new("Value given for field '#{name}' is not an Integer") unless value.is_a?(Integer)
12
20
  raise ArgumentError.new("Value '#{value}' for field '#{name}' is too long") if limit && value.to_s.length > limit
21
+ raise ArgumentError.new("Value '#{value}' for field '#{name}' is too large") if maximum && value > maximum
22
+ raise ArgumentError.new("Value '#{value}' for field '#{name}' is too small") if minimum && value < minimum
13
23
  end
14
24
  end
15
25
 
@@ -14,7 +14,18 @@ module Datev
14
14
  end
15
15
 
16
16
  def output(value, _context=nil)
17
- value.slice(0, limit || 255) if value
17
+ value = value.slice(0, limit || 255) if value
18
+
19
+ quote(value)
20
+ end
21
+
22
+ private
23
+
24
+ def quote(value)
25
+ # Existing quotes have to be doubled
26
+ value = value.gsub('"','""') if value
27
+
28
+ "\"#{value}\""
18
29
  end
19
30
  end
20
31
  end
data/lib/datev/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Datev
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.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.4.0
4
+ version: 0.5.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-30 00:00:00.000000000 Z
11
+ date: 2016-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler