king_dtaus 2.0.2.pre → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +9 -0
- data/Gemfile +1 -6
- data/README.markdown +59 -59
- data/Rakefile +11 -24
- data/king_dtaus.gemspec +22 -65
- data/lib/king_dta/account.rb +53 -27
- data/lib/king_dta/dta.rb +10 -0
- data/lib/king_dta/dtaus.rb +121 -130
- data/lib/king_dta/dtazv.rb +185 -226
- data/lib/king_dta/version.rb +3 -0
- data/spec/account_spec.rb +72 -21
- data/spec/dtaus_spec.rb +35 -12
- data/spec/dtazv_spec.rb +9 -12
- data/spec/spec_helper.rb +37 -36
- metadata +115 -119
- data/VERSION +0 -1
- data/docs/dtazv.pdf +0 -0
- data/docs/dtazv_bank_bbk.pdf +0 -0
- data/docs/example.output +0 -7
- data/spec/dtazv_test.rb +0 -105
data/spec/account_spec.rb
CHANGED
@@ -8,71 +8,122 @@ describe KingDta::Account do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should initialize a new account" do
|
11
|
-
lambda{
|
11
|
+
lambda{
|
12
|
+
KingDta::Account.new(:bank_account_number => @ba.bank_account_number,
|
13
|
+
:bank_number => @ba.bank_number,
|
14
|
+
:owner_name => @ba.owner_name)
|
15
|
+
}.should_not raise_error
|
12
16
|
end
|
13
17
|
|
14
18
|
it "should initialize a new dtazv account" do
|
15
|
-
lambda{
|
19
|
+
lambda{
|
16
20
|
KingDta::Account.new(sender_opts)
|
17
21
|
}.should_not raise_error
|
18
22
|
end
|
19
23
|
|
24
|
+
it "should convert bank_account_number to integer" do
|
25
|
+
opts = {:bank_account_number => '0123456',
|
26
|
+
:bank_number => @ba.bank_number,
|
27
|
+
:owner_name => @ba.owner_name}
|
28
|
+
anct = KingDta::Account.new(opts)
|
29
|
+
anct.bank_account_number.should == 123456
|
30
|
+
|
31
|
+
anct2 = KingDta::Account.new(opts.merge(:bank_account_number=>'012 345 6'))
|
32
|
+
anct2.bank_account_number.should == 123456
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should convert bank_number to integer" do
|
36
|
+
opts = {:bank_account_number => @ba.bank_account_number,
|
37
|
+
:bank_number => '0123',
|
38
|
+
:owner_name => @ba.owner_name}
|
39
|
+
anct = KingDta::Account.new(opts)
|
40
|
+
anct.bank_number.should == 123
|
41
|
+
|
42
|
+
anct2 = KingDta::Account.new(opts.merge(:bank_number=>'012 34 5'))
|
43
|
+
anct2.bank_number.should == 12345
|
44
|
+
end
|
45
|
+
|
20
46
|
it "should fail if bank account number is invalid" do
|
21
|
-
|
22
|
-
|
47
|
+
lambda{
|
48
|
+
KingDta::Account.new(:bank_account_number => 123456789011123456789011123456789011,
|
49
|
+
:bank_number => @ba.bank_number,
|
50
|
+
:owner_name => @ba.owner_name)
|
51
|
+
|
52
|
+
}.should raise_error(ArgumentError, 'Bank account number too long, max 10 allowed')
|
23
53
|
end
|
24
54
|
|
25
55
|
it "should fail if bank number is invalid" do
|
26
|
-
lambda{
|
27
|
-
|
56
|
+
lambda{
|
57
|
+
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
58
|
+
:bank_number => 0,
|
59
|
+
:owner_name => @ba.owner_name)
|
60
|
+
}.should raise_error(ArgumentError)
|
61
|
+
|
62
|
+
lambda{
|
63
|
+
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
64
|
+
:bank_number => 123456789101112,
|
65
|
+
:owner_name => @ba.owner_name)
|
66
|
+
}.should raise_error(ArgumentError, 'Bank number too long, max 8 allowed')
|
28
67
|
end
|
29
68
|
|
30
|
-
it "should fail if
|
31
|
-
lambda{
|
69
|
+
it "should fail if owner number is too long" do
|
70
|
+
lambda{
|
71
|
+
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
72
|
+
:bank_number => @ba.bank_number,
|
73
|
+
:owner_name => @ba.owner_name,
|
74
|
+
:owner_number => 12345678901)
|
75
|
+
}.should raise_error(ArgumentError, 'Owner number too long, max 10 allowed')
|
32
76
|
end
|
33
77
|
|
34
|
-
it "should fail if street and/or Zip Code is too long" do
|
78
|
+
it "should fail if street and/or Zip Code is too long" do
|
35
79
|
opts = sender_opts.merge( :bank_street => "Lorem ipsum dolor sit amet, consectetur")
|
36
80
|
lambda{
|
37
81
|
KingDta::Account.new(opts)
|
38
|
-
}.should raise_error(ArgumentError, 'Bank
|
82
|
+
}.should raise_error(ArgumentError, 'Bank street too long, max 35 allowed')
|
39
83
|
end
|
40
84
|
|
41
85
|
it "should fail if city is too long" do
|
42
86
|
opts = sender_opts.merge( :bank_city => "Lorem ipsum dolor sit amet, consecte")
|
43
|
-
lambda{
|
87
|
+
lambda{
|
44
88
|
KingDta::Account.new opts
|
45
|
-
}.should raise_error(ArgumentError, 'Bank
|
89
|
+
}.should raise_error(ArgumentError, 'Bank city too long, max 35 allowed')
|
46
90
|
end
|
47
91
|
|
48
92
|
it "should fail if bank name is too long" do
|
49
93
|
opts = sender_opts.merge( :bank_name => "Lorem ipsum dolor sit amet, consecte")
|
50
94
|
lambda{
|
51
95
|
KingDta::Account.new opts
|
52
|
-
}.should raise_error(ArgumentError, 'Bank
|
96
|
+
}.should raise_error(ArgumentError, 'Bank name too long, max 35 allowed')
|
53
97
|
end
|
54
98
|
|
55
99
|
it "should fail if client street is too long" do
|
56
|
-
opts = sender_opts.merge( :
|
100
|
+
opts = sender_opts.merge( :owner_street => "Lorem ipsum dolor sit amet, consecte")
|
57
101
|
lambda{
|
58
102
|
KingDta::Account.new opts
|
59
|
-
}.should raise_error(ArgumentError, '
|
103
|
+
}.should raise_error(ArgumentError, 'Owner street too long, max 35 allowed')
|
60
104
|
end
|
61
105
|
|
62
106
|
it "should fail if city is too long" do
|
63
|
-
opts = sender_opts.merge( :
|
107
|
+
opts = sender_opts.merge( :owner_city => "Lorem ipsum dolor sit amet, consecte")
|
64
108
|
lambda{
|
65
109
|
KingDta::Account.new opts
|
66
|
-
}.should raise_error(ArgumentError, '
|
110
|
+
}.should raise_error(ArgumentError, 'Owner city too long, max 35 allowed')
|
67
111
|
end
|
68
112
|
|
69
113
|
it "should return account street and zip" do
|
70
|
-
|
71
|
-
|
114
|
+
acnt = KingDta::Account.new( sender_opts )
|
115
|
+
acnt.bank_zip_city.should == "51063 BANK KOELN"
|
72
116
|
end
|
73
117
|
|
74
118
|
it "should return sender street and zip" do
|
75
|
-
|
76
|
-
|
119
|
+
acnt = KingDta::Account.new( sender_opts )
|
120
|
+
acnt.owner_zip_city.should == "51063 MEINE KOELN"
|
121
|
+
end
|
122
|
+
|
123
|
+
it "should set owner country code from iban" do
|
124
|
+
opts = receiver_opts
|
125
|
+
opts[:owner_country_code] = nil
|
126
|
+
acnt = KingDta::Account.new( opts )
|
127
|
+
acnt.owner_country_code.should == "PL"
|
77
128
|
end
|
78
129
|
end
|
data/spec/dtaus_spec.rb
CHANGED
@@ -8,9 +8,9 @@ describe KingDta::Dtaus do
|
|
8
8
|
@dtaus_gk = KingDta::Dtaus.new('GK', Date.today)
|
9
9
|
@kto1 = test_kto1
|
10
10
|
@kto2 = test_kto2
|
11
|
-
@dtaus.account = KingDta::Account.new(:
|
12
|
-
@dtaus_gk.account = KingDta::Account.new(:
|
13
|
-
@booking = KingDta::Booking.new(KingDta::Account.new(:
|
11
|
+
@dtaus.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number, :owner_name => @kto1.owner_name, :bank_name => @kto1.bank_name)
|
12
|
+
@dtaus_gk.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number, :owner_name => @kto1.owner_name, :bank_name => @kto1.bank_name)
|
13
|
+
@booking = KingDta::Booking.new(KingDta::Account.new(:bank_account_number => @kto2.bank_account_number, :bank_number => @kto2.bank_number, :owner_name => @kto2.owner_name, :bank_name => @kto2.bank_name), 220.25 )
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should not init without values" do
|
@@ -41,7 +41,7 @@ describe KingDta::Dtaus do
|
|
41
41
|
|
42
42
|
it "should not add a booking if closed" do
|
43
43
|
@dtaus.add(@booking)
|
44
|
-
negative_booking = KingDta::Booking.new(KingDta::Account.new(:
|
44
|
+
negative_booking = KingDta::Booking.new(KingDta::Account.new(:bank_account_number => @kto2.bank_account_number, :bank_number => @kto2.bank_number, :owner_name => @kto2.owner_name, :bank_name => @kto2.bank_name ), -120.25 )
|
45
45
|
lambda{ @dtaus.add(negative_booking) }.should raise_error(KingDta::Exception)
|
46
46
|
end
|
47
47
|
|
@@ -55,7 +55,7 @@ describe KingDta::Dtaus do
|
|
55
55
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"
|
56
56
|
str.should == out
|
57
57
|
#60-70 kontonummer mit nullen aufgefüllt - hier nicht da ktnr == 10 stellen
|
58
|
-
str[60...70].should == "#{test_kto1.
|
58
|
+
str[60...70].should == "#{test_kto1.bank_account_number}"
|
59
59
|
str.should include(test_kto1.bank_number)
|
60
60
|
end
|
61
61
|
|
@@ -85,17 +85,31 @@ describe KingDta::Dtaus do
|
|
85
85
|
@dtaus.add_c(@booking)
|
86
86
|
str = @dtaus.dta_string
|
87
87
|
str.length.should == 256
|
88
|
-
str.should include(@kto2.
|
88
|
+
str.should include(@kto2.owner_name.upcase)
|
89
89
|
out = "0216C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGSALESKING MONATSBEITRAG 08/1 010210 FREELANCER VERSION "
|
90
90
|
str.should == out
|
91
91
|
end
|
92
92
|
|
93
|
+
it "should create c-sektion with long account owner name in extension" do
|
94
|
+
@dtaus.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number,
|
95
|
+
:owner_name => 'A very long name exeeding 27 characters even longer 54 chars', :bank_name => @kto1.bank_name)
|
96
|
+
|
97
|
+
@dtaus.add(@booking)
|
98
|
+
@dtaus.bookings.first.text = 'SalesKing Monatsbeitrag 08/10 Freelancer Version'
|
99
|
+
@dtaus.add_c(@booking)
|
100
|
+
str = @dtaus.dta_string
|
101
|
+
str.length.should == 256
|
102
|
+
str.should include(@kto2.owner_name.upcase)
|
103
|
+
out = "0245C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH A VERY LONG NAME EXEEDING 2SALESKING MONATSBEITRAG 08/1 020210 FREELANCER VERSION 037 CHARACTERS EVEN LONGER 54 "
|
104
|
+
str.should == out
|
105
|
+
end
|
106
|
+
|
93
107
|
it "should create c-sektion with default booking text" do
|
94
108
|
@dtaus.default_text = 'Default verwendungszweck'
|
95
109
|
@dtaus.add_c(@booking)
|
96
110
|
str = @dtaus.dta_string
|
97
111
|
str.length.should == 256
|
98
|
-
str.should include(@kto2.
|
112
|
+
str.should include(@kto2.owner_name.upcase)
|
99
113
|
out = "0187C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGDEFAULT VERWENDUNGSZWECK 1 00 "
|
100
114
|
str.should == out
|
101
115
|
end
|
@@ -105,8 +119,8 @@ describe KingDta::Dtaus do
|
|
105
119
|
@dtaus.add(@booking)
|
106
120
|
str = @dtaus.create
|
107
121
|
str.length.should == 512
|
108
|
-
str.should include(@kto1.
|
109
|
-
str.should include(@kto2.
|
122
|
+
str.should include(@kto1.owner_name.upcase)
|
123
|
+
str.should include(@kto2.owner_name.upcase)
|
110
124
|
str.should include(@dtaus.default_text.upcase)
|
111
125
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"+
|
112
126
|
"0187C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGDEFAULT VERWENDUNGSZWECK 1 00 "+
|
@@ -114,12 +128,21 @@ describe KingDta::Dtaus do
|
|
114
128
|
str.should == out
|
115
129
|
end
|
116
130
|
|
131
|
+
it "should create whole dta string with long texts exeeding extension" do
|
132
|
+
@dtaus.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number,
|
133
|
+
:owner_name => 'A very long name exeeding 27 characters even longer 54 chars', :bank_name => @kto1.bank_name)
|
134
|
+
@dtaus.add(@booking)
|
135
|
+
@dtaus.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH' * 20
|
136
|
+
@dtaus.bookings.first.account.owner_name = 'A very long name exeeding 27 characters even longer 54 chars'
|
137
|
+
str = @dtaus.create ## should not raise error
|
138
|
+
end
|
139
|
+
|
117
140
|
it "should create whole dta string with long booking text in extension" do
|
118
141
|
@dtaus.add(@booking)
|
119
142
|
@dtaus.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH'
|
120
143
|
str = @dtaus.create
|
121
144
|
str.length.should == 640
|
122
|
-
str.should include(@kto2.
|
145
|
+
str.should include(@kto2.owner_name.upcase)
|
123
146
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"+
|
124
147
|
"0274C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGRGN R-3456-0102220 MONATSBE1 0302ITRAG 08/10 FREELANCER VERS02ION VIELEN DANK IHRE SALESK 02ING GMBH "+
|
125
148
|
"0128E 0000001000000000000000000000002787777000000000370400440000000022025 "
|
@@ -131,8 +154,8 @@ describe KingDta::Dtaus do
|
|
131
154
|
6.times { @dtaus.add(@booking) }
|
132
155
|
str = @dtaus.create
|
133
156
|
str.length.should == 1792
|
134
|
-
str.should include(@kto1.
|
135
|
-
str.should include(@kto2.
|
157
|
+
str.should include(@kto1.owner_name.upcase)
|
158
|
+
str.should include(@kto2.owner_name.upcase)
|
136
159
|
str.should include(@dtaus.default_text.upcase)
|
137
160
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"+
|
138
161
|
"0187C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGDEFAULT VERWENDUNGSZWECK 1 00 "+
|
data/spec/dtazv_spec.rb
CHANGED
@@ -9,7 +9,6 @@ describe KingDta::Dtazv do
|
|
9
9
|
@dtazv = KingDta::Dtazv.new(Date.parse('2011-08-28'))
|
10
10
|
@dtazv.account = KingDta::Account.new sender_opts
|
11
11
|
@booking = KingDta::Booking.new( KingDta::Account.new( receiver_opts ), 220.25)
|
12
|
-
|
13
12
|
end
|
14
13
|
|
15
14
|
it "should init without values" do
|
@@ -35,9 +34,7 @@ describe KingDta::Dtazv do
|
|
35
34
|
filename = File.join(File.dirname(__FILE__), 'test_output.dta')
|
36
35
|
@dtazv.create_file(filename)
|
37
36
|
str = ''
|
38
|
-
File.open(filename, 'r').each
|
39
|
-
str << ln
|
40
|
-
end
|
37
|
+
File.open(filename, 'r').each { |ln| str << ln }
|
41
38
|
str.length.should == 5120
|
42
39
|
#remove testfile
|
43
40
|
File.delete(filename)
|
@@ -63,8 +60,8 @@ describe KingDta::Dtazv do
|
|
63
60
|
@dtazv.add(@booking)
|
64
61
|
str = @dtazv.create
|
65
62
|
str.length.should == 1280
|
66
|
-
str.should include(receiver_opts[:
|
67
|
-
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000
|
63
|
+
str.should include(receiver_opts[:owner_name].upcase)
|
64
|
+
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000256Z000000000000220000000000000001 "
|
68
65
|
str.should == out
|
69
66
|
end
|
70
67
|
|
@@ -73,8 +70,8 @@ describe KingDta::Dtazv do
|
|
73
70
|
@dtazv.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH'
|
74
71
|
str = @dtazv.create
|
75
72
|
str.length.should == 1280
|
76
|
-
str.should include(receiver_opts[:
|
77
|
-
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000
|
73
|
+
str.should include(receiver_opts[:owner_name].upcase)
|
74
|
+
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250RGN R-3456-0102220 MONATSBEITRAG 08/10 FREELANCER VERSION VIELEN DANK IHRE SALESKING GMBH 00000000 0013 0 000256Z000000000000220000000000000001 "
|
78
75
|
str.should == out
|
79
76
|
end
|
80
77
|
|
@@ -82,9 +79,9 @@ describe KingDta::Dtazv do
|
|
82
79
|
6.times { @dtazv.add(@booking) }
|
83
80
|
str = @dtazv.create
|
84
81
|
str.length.should == 5120
|
85
|
-
str.should include(receiver_opts[:
|
86
|
-
str.should include(sender_opts[:
|
87
|
-
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000
|
82
|
+
str.should include(receiver_opts[:owner_name].upcase)
|
83
|
+
str.should include(sender_opts[:owner_name].upcase)
|
84
|
+
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000256Z000000000001320000000000000006 "
|
88
85
|
str.should == out
|
89
86
|
end
|
90
87
|
|
@@ -120,7 +117,7 @@ describe "KingDta::DtazvSegments" do
|
|
120
117
|
end
|
121
118
|
|
122
119
|
it "should return the proper T segment" do
|
123
|
-
@dtazv.add_t(@booking).should == "0768T37050299EUR1326049634#{@date.strftime("%y%m%d")}00000000
|
120
|
+
@dtazv.add_t(@booking).should == "0768T37050299EUR1326049634#{@date.strftime("%y%m%d")}00000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 00"
|
124
121
|
end
|
125
122
|
|
126
123
|
it "should return the proper length of T segment" do
|
data/spec/spec_helper.rb
CHANGED
@@ -4,10 +4,10 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
4
4
|
|
5
5
|
require 'simplecov'
|
6
6
|
SimpleCov.start 'rails'
|
7
|
-
SimpleCov.coverage_dir 'coverage
|
7
|
+
SimpleCov.coverage_dir 'coverage'
|
8
8
|
|
9
9
|
require 'rubygems'
|
10
|
-
require
|
10
|
+
require 'king_dtaus'
|
11
11
|
require 'rspec'
|
12
12
|
require 'ostruct'
|
13
13
|
require 'date'
|
@@ -15,75 +15,76 @@ require 'date'
|
|
15
15
|
RSpec.configure do |config|
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
# a full account, address infos are only needed if BIC or IBAN is unknown
|
19
19
|
def sender_opts
|
20
20
|
{
|
21
|
-
:
|
21
|
+
:bank_account_number => '1326049634',
|
22
22
|
:bank_number => '37050299',
|
23
23
|
:bank_name => 'Kreissparkasse Köln',
|
24
|
-
:bank_street =>
|
25
|
-
:bank_city =>
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
24
|
+
:bank_street => 'Bank Eine Straße 2',
|
25
|
+
:bank_city => 'Bank Köln',
|
26
|
+
:bank_zip => '51063',
|
27
|
+
:bank_country_code => 'DE',
|
28
|
+
:owner_number => '',
|
29
|
+
:owner_name =>'Jan Kus',
|
30
|
+
:owner_street => 'Meine Eine Straße 2',
|
31
|
+
:owner_city => 'Meine Köln',
|
32
|
+
:owner_zip_code => '51063',
|
33
|
+
:owner_country_code => 'DE'
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
37
37
|
def receiver_opts
|
38
38
|
{
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
42
|
-
:
|
43
|
-
:
|
44
|
-
:
|
45
|
-
:
|
46
|
-
|
47
|
-
:
|
48
|
-
:
|
49
|
-
:
|
50
|
-
:
|
51
|
-
:
|
39
|
+
:bank_iban => 'PL10105013151000002308622378',
|
40
|
+
:bank_bic => 'COBADEFF366',
|
41
|
+
:owner_name =>'Dalai Lama',
|
42
|
+
:owner_street => 'Bush-Avenue 55',
|
43
|
+
:owner_city => 'India',
|
44
|
+
:owner_zip_code => '445555',
|
45
|
+
:owner_country_code => 'DE' # actually wrong since iban is in poland
|
46
|
+
# only needed if no bic present
|
47
|
+
# :bank_name => 'Dalai Lamas Bank',
|
48
|
+
# :bank_street => "5th avenue",
|
49
|
+
# :bank_city => "Pulheim",
|
50
|
+
# :bank_zip => "55323",
|
51
|
+
# :owner_number => "",
|
52
|
+
# :bank_country_code => "DE",
|
52
53
|
}
|
53
54
|
end
|
54
55
|
|
55
56
|
def test_kto1
|
56
57
|
opts = {
|
57
|
-
:
|
58
|
+
:bank_account_number => '7828970037',
|
58
59
|
:bank_number => '37040044',
|
59
|
-
:
|
60
|
+
:owner_name =>'Gimme your Money AG',
|
60
61
|
:bank_name => 'Commerzbank Köln',
|
61
62
|
:zweck => 'Monatsbeitrag',
|
62
|
-
:
|
63
|
+
:owner_number => ""
|
63
64
|
}
|
64
65
|
TestKonto.new(opts)
|
65
66
|
end
|
66
67
|
|
67
68
|
def test_kto2
|
68
69
|
opts = {
|
69
|
-
:
|
70
|
+
:bank_account_number => '2787777',
|
70
71
|
:bank_number => '37040044',
|
71
|
-
:
|
72
|
+
:owner_name =>'Peter & May GmbH',
|
72
73
|
:bank_name => 'Commerzbank Köln',
|
73
74
|
:zweck => 'Monatsbeitrag',
|
74
|
-
:
|
75
|
+
:owner_number => ""
|
75
76
|
}
|
76
77
|
TestKonto.new(opts)
|
77
78
|
end
|
78
79
|
|
79
80
|
def test_kto3
|
80
81
|
opts = {
|
81
|
-
:
|
82
|
+
:bank_account_number => '2787777',
|
82
83
|
:bank_number => '37040044',
|
83
|
-
:
|
84
|
+
:owner_name =>'Andrew Müller',
|
84
85
|
:bank_name => 'Commerzbank Köln',
|
85
86
|
:zweck => 'Monatsbeitrag',
|
86
|
-
:
|
87
|
+
:owner_number => ""
|
87
88
|
}
|
88
89
|
TestKonto.new(opts)
|
89
90
|
end
|
metadata
CHANGED
@@ -1,128 +1,134 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: king_dtaus
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
- pre
|
11
|
-
version: 2.0.2.pre
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.2
|
5
|
+
prerelease:
|
12
6
|
platform: ruby
|
13
|
-
authors:
|
7
|
+
authors:
|
14
8
|
- Georg Leciejewski
|
15
9
|
- Georg Ledermann
|
16
10
|
- Jan Kus
|
17
11
|
autorequire:
|
18
12
|
bindir: bin
|
19
13
|
cert_chain: []
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
type: :runtime
|
26
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
14
|
+
date: 2011-11-15 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: i18n
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
27
19
|
none: false
|
28
|
-
requirements:
|
29
|
-
- -
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
|
32
|
-
|
33
|
-
- 0
|
34
|
-
version: "0"
|
35
|
-
name: king_dtaus
|
36
|
-
version_requirements: *id001
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '0'
|
24
|
+
type: :runtime
|
37
25
|
prerelease: false
|
38
|
-
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rdoc
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
39
40
|
type: :development
|
40
|
-
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
43
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
- 0
|
48
|
-
version: "0"
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
|
51
|
-
prerelease: false
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
type: :development
|
54
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
55
51
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
version: "0"
|
63
|
-
name: jeweler
|
64
|
-
version_requirements: *id003
|
65
|
-
prerelease: false
|
66
|
-
- !ruby/object:Gem::Dependency
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
67
56
|
type: :development
|
68
|
-
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
59
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
|
75
|
-
- 0
|
76
|
-
version: "0"
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
- !ruby/object:Gem::Dependency
|
77
65
|
name: simplecov
|
78
|
-
|
79
|
-
|
80
|
-
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
81
72
|
type: :development
|
82
|
-
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
75
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
|
89
|
-
- 0
|
90
|
-
version: "0"
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
- !ruby/object:Gem::Dependency
|
91
81
|
name: mocha
|
92
|
-
|
93
|
-
|
94
|
-
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
95
88
|
type: :development
|
96
|
-
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
91
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: rake
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.9.2
|
104
|
+
type: :development
|
107
105
|
prerelease: false
|
108
|
-
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 0.9.2
|
112
|
+
description: ! 'DTA/DTAUS and DTAZV are text-based formats to create bank transfers
|
113
|
+
for german banks.
|
114
|
+
|
115
|
+
This gem creates DTA/DATAUS files for inner german credit and debit(Gutschrift/Lastschrift)
|
116
|
+
transfers.
|
117
|
+
|
118
|
+
It is also capable of creating DTAZV credit-files for transfers from Germany to
|
119
|
+
European SEPA region.'
|
109
120
|
email: gl@salesking.eu
|
110
121
|
executables: []
|
111
|
-
|
112
122
|
extensions: []
|
113
|
-
|
114
|
-
extra_rdoc_files:
|
123
|
+
extra_rdoc_files:
|
115
124
|
- README.markdown
|
116
|
-
files:
|
125
|
+
files:
|
126
|
+
- .gitignore
|
117
127
|
- .travis.yml
|
118
128
|
- Gemfile
|
119
129
|
- MIT-LICENSE
|
120
130
|
- README.markdown
|
121
131
|
- Rakefile
|
122
|
-
- VERSION
|
123
|
-
- docs/dtazv.pdf
|
124
|
-
- docs/dtazv_bank_bbk.pdf
|
125
|
-
- docs/example.output
|
126
132
|
- king_dtaus.gemspec
|
127
133
|
- lib/king_dta/account.rb
|
128
134
|
- lib/king_dta/booking.rb
|
@@ -131,49 +137,39 @@ files:
|
|
131
137
|
- lib/king_dta/dtazv.rb
|
132
138
|
- lib/king_dta/exception.rb
|
133
139
|
- lib/king_dta/helper.rb
|
140
|
+
- lib/king_dta/version.rb
|
134
141
|
- lib/king_dtaus.rb
|
135
142
|
- spec/account_spec.rb
|
136
143
|
- spec/booking_spec.rb
|
137
144
|
- spec/dtaus_spec.rb
|
138
145
|
- spec/dtazv_spec.rb
|
139
|
-
- spec/dtazv_test.rb
|
140
146
|
- spec/helper_spec.rb
|
141
147
|
- spec/spec_helper.rb
|
142
|
-
has_rdoc: true
|
143
148
|
homepage: http://github.com/salesking/king_dtaus
|
144
149
|
licenses: []
|
145
|
-
|
146
150
|
post_install_message:
|
147
151
|
rdoc_options: []
|
148
|
-
|
149
|
-
require_paths:
|
152
|
+
require_paths:
|
150
153
|
- lib
|
151
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
152
155
|
none: false
|
153
|
-
requirements:
|
154
|
-
- -
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
|
157
|
-
segments:
|
156
|
+
requirements:
|
157
|
+
- - ! '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
segments:
|
158
161
|
- 0
|
159
|
-
|
160
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
|
+
hash: 1476023920337176562
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
164
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
|
166
|
-
segments:
|
167
|
-
- 1
|
168
|
-
- 3
|
169
|
-
- 1
|
170
|
-
version: 1.3.1
|
165
|
+
requirements:
|
166
|
+
- - ! '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
171
169
|
requirements: []
|
172
|
-
|
173
170
|
rubyforge_project:
|
174
|
-
rubygems_version: 1.
|
171
|
+
rubygems_version: 1.8.24
|
175
172
|
signing_key:
|
176
173
|
specification_version: 3
|
177
|
-
summary: Generate DTAUS
|
174
|
+
summary: Generate DTA/DTAUS and DTAZV bank transfer files .. the easy way
|
178
175
|
test_files: []
|
179
|
-
|