datev 0.4.0 → 0.5.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/README.md +1 -1
- data/examples/EXTF_Buchungsstapel.csv +3 -3
- data/examples/EXTF_Kontenbeschriftungen.csv +4 -4
- data/examples/EXTF_Stammdaten.csv +4 -4
- data/lib/datev.rb +0 -2
- data/lib/datev/base/header.rb +17 -1
- data/lib/datev/export.rb +11 -11
- data/lib/datev/field/integer_field.rb +10 -0
- data/lib/datev/field/string_field.rb +12 -1
- data/lib/datev/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f3e035a9aa694d548569863f6270876c5716d00a
|
|
4
|
+
data.tar.gz: a6ba5d87cf277273acdf5a2c1f9affdc09242747
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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' =>
|
|
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
|
|
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
|
|
4
|
-
5950,00;S
|
|
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
|
|
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
|
|
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
|
|
4
|
-
70001;Meyer GmbH;;;;;
|
|
5
|
-
70002;Schulze GmbH;;;;;
|
|
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
data/lib/datev/base/header.rb
CHANGED
|
@@ -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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
26
|
-
write(
|
|
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
|
|
33
|
-
|
|
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
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.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-
|
|
11
|
+
date: 2016-09-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|