king_dtaus 2.0.2 → 2.0.3.pre
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.
- data/Gemfile +6 -1
- data/README.markdown +22 -17
- data/Rakefile +24 -11
- data/VERSION +1 -0
- data/docs/dtazv.pdf +0 -0
- data/docs/dtazv_bank_bbk.pdf +0 -0
- data/docs/example.output +7 -0
- data/king_dtaus.gemspec +64 -22
- data/lib/king_dta/account.rb +18 -38
- data/lib/king_dta/dtaus.rb +8 -8
- data/lib/king_dta/dtazv.rb +11 -8
- data/spec/account_spec.rb +15 -43
- data/spec/dtaus_spec.rb +0 -23
- data/spec/spec_helper.rb +15 -15
- metadata +118 -115
- data/.gitignore +0 -9
- data/lib/king_dta/version.rb +0 -3
data/Gemfile
CHANGED
data/README.markdown
CHANGED
|
@@ -18,35 +18,37 @@ We love building payment applications.
|
|
|
18
18
|
|
|
19
19
|
## Features
|
|
20
20
|
|
|
21
|
-
* Create DTAUS debit
|
|
22
|
-
* Create DTAUS credit
|
|
23
|
-
* Create DTAZV debit
|
|
24
|
-
*
|
|
25
|
-
* works with ruby 1.8 & 1.9.2
|
|
21
|
+
* Create DTAUS debit advice (Lastschrift)
|
|
22
|
+
* Create DTAUS credit advice (Gutschrift)
|
|
23
|
+
* Create DTAZV debit advice
|
|
24
|
+
* High test coverage to ensure software quality
|
|
26
25
|
|
|
27
|
-
## Version Info
|
|
26
|
+
## Beta Version Info
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
We are working on version 2 of the gem with some breaking changes!
|
|
30
29
|
|
|
31
30
|
* account attributes now passed in as hash
|
|
32
|
-
* renamed account
|
|
33
|
-
* renamed account.account_number
|
|
31
|
+
* renamed of account attributes client_xy => owner_xy
|
|
32
|
+
* renamed account.account_number to bank_account_number
|
|
34
33
|
* added iban/bic to account
|
|
35
34
|
* DTAZV added
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
To try it use:
|
|
37
|
+
gem install king_dtaus --pre
|
|
38
|
+
# or add a pre version to your Gemfile
|
|
39
|
+
gem 'king_dtaus', '2.0.3.pre'
|
|
40
40
|
|
|
41
41
|
## TODOs
|
|
42
42
|
|
|
43
|
-
*
|
|
43
|
+
* first gem with no todo's - never seen it, huh? - just kidding
|
|
44
|
+
* some more edge-case tests needed
|
|
44
45
|
|
|
45
46
|
## Resources
|
|
46
47
|
|
|
47
48
|
* SalesKing: http://salesking.eu
|
|
48
49
|
* DTAZV-Viewer: http://www.meta-evolutions.de/pages/artikel-20070630-dtazv-datei-betrachter.html
|
|
49
50
|
* DTA/DTAZV PHP Pear: http://pear.php.net/package/Payment_DTA
|
|
51
|
+
* Ruby Kernel Module: http://www.ruby-doc.org/core/classes/Kernel.html
|
|
50
52
|
* Windata ZV-Tools: http://www.windata.de/Site/2Produkte2/ZVTools.aspx
|
|
51
53
|
* The Swift Codes: http://www.theswiftcodes.com/
|
|
52
54
|
* StarMoney: http://www.starmoney.de/index.php?id=starmoneybusiness_testen
|
|
@@ -89,7 +91,7 @@ Here are some examples how to create a DTA- or DTAZV-File. Also check out the sp
|
|
|
89
91
|
|
|
90
92
|
### DTAZV
|
|
91
93
|
|
|
92
|
-
@dtazv = KingDta::Dtazv.new()
|
|
94
|
+
@dtazv = KingDta::Dtazv.new(Date.today)
|
|
93
95
|
|
|
94
96
|
# sender account
|
|
95
97
|
@dtazv.account = KingDta::Account.new(
|
|
@@ -113,7 +115,7 @@ Here are some examples how to create a DTA- or DTAZV-File. Also check out the sp
|
|
|
113
115
|
# get output as string
|
|
114
116
|
@dtazv.create
|
|
115
117
|
|
|
116
|
-
also make sure to read the
|
|
118
|
+
also make sure to read the specs
|
|
117
119
|
|
|
118
120
|
## Credits
|
|
119
121
|
|
|
@@ -123,6 +125,9 @@ Bugfixes and enhancements by
|
|
|
123
125
|
* Kim Rudolph - https://github.com/krudolph
|
|
124
126
|
* Thorsten Böttger - https://github.com/alto
|
|
125
127
|
* Jan Kus - https://github.com/koos
|
|
126
|
-
* used https://rubygems.org/gems/DTAUS as a starting point
|
|
127
128
|
|
|
128
|
-
|
|
129
|
+
This gem used https://rubygems.org/gems/DTAUS as a starting point.
|
|
130
|
+
It was disected, turned into a real class structure, bugs were fixed and
|
|
131
|
+
of course a full test suite ensures its functionality.
|
|
132
|
+
|
|
133
|
+
Copyright (c) 2009-2011 Georg Leciejewski (SalesKing), Jan Kus (Railslove), released under the MIT license
|
data/Rakefile
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
require 'rake'
|
|
2
|
-
require 'rspec'
|
|
3
2
|
require 'rspec/core/rake_task'
|
|
4
|
-
|
|
5
|
-
require 'bundler/gem_helper'
|
|
6
|
-
Bundler::GemHelper.install_tasks
|
|
3
|
+
|
|
7
4
|
desc "Run specs"
|
|
8
5
|
RSpec::Core::RakeTask.new
|
|
6
|
+
|
|
9
7
|
task :default => :spec
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
RSpec::Core::RakeTask.new(:coverage) do |t|
|
|
10
|
+
t.rcov = true
|
|
11
|
+
t.rcov_opts = %q[--exclude "spec"]
|
|
12
|
+
t.verbose = true
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
|
16
|
+
|
|
17
|
+
begin
|
|
18
|
+
require 'jeweler'
|
|
19
|
+
Jeweler::Tasks.new do |gem|
|
|
20
|
+
gem.name = "king_dtaus"
|
|
21
|
+
gem.summary = %Q{Generate DTAUS strings and files}
|
|
22
|
+
gem.description = %Q{DTAUS is a text-based format, to create bank transfers for german banks. This gem helps with the creation of those transfer files.}
|
|
23
|
+
gem.email = "gl@salesking.eu"
|
|
24
|
+
gem.homepage = "http://github.com/salesking/king_dtaus"
|
|
25
|
+
gem.authors = ["Georg Leciejewski", "Georg Ledermann", "Jan Kus"]
|
|
26
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
27
|
+
end
|
|
28
|
+
Jeweler::GemcutterTasks.new
|
|
29
|
+
rescue LoadError
|
|
30
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
|
18
31
|
end
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.0.3.pre
|
data/docs/dtazv.pdf
ADDED
|
Binary file
|
|
Binary file
|
data/docs/example.output
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
0256P37040044 Commerzbank Köln 5th avenue 55323 los angeles1106080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
2
|
+
|
|
3
|
+
0256Q370400447828970037 GIMME YOUR MONEY AG 6th avenue 445555 los angeles11060801110608N000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
4
|
+
|
|
5
|
+
0572T37040044EUR782897003711060837040044EUR0037040044 MARKF1100 FIDEL CASTRO 0 GR1601101250000000012300695EUR00000000000220025 0 0 0 0 00013 0 00000000000000000000000000000000000000000000000000000 00
|
|
6
|
+
|
|
7
|
+
256Y000000000000000000000000000000000000000000000000000000000000000000000001 0
|
data/king_dtaus.gemspec
CHANGED
|
@@ -1,34 +1,76 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
1
4
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
$:.push File.expand_path('../lib', __FILE__)
|
|
3
|
-
require 'king_dta/version'
|
|
4
5
|
|
|
5
6
|
Gem::Specification.new do |s|
|
|
6
7
|
s.name = %q{king_dtaus}
|
|
7
|
-
s.version =
|
|
8
|
+
s.version = "2.0.3.pre"
|
|
8
9
|
|
|
9
|
-
s.required_rubygems_version = Gem::Requirement.new(
|
|
10
|
-
s.authors = [
|
|
11
|
-
s.date = %q{2011-
|
|
12
|
-
s.
|
|
13
|
-
s.description = %q{DTA/DTAUS and DTAZV are text-based formats to create bank transfers for german banks.
|
|
14
|
-
This gem creates DTA/DATAUS files for inner german credit and debit(Gutschrift/Lastschrift) transfers.
|
|
15
|
-
It is also capable of creating DTAZV credit-files for transfers from Germany to European SEPA region.}
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["Georg Leciejewski", "Georg Ledermann", "Jan Kus"]
|
|
12
|
+
s.date = %q{2011-09-03}
|
|
13
|
+
s.description = %q{DTAUS is a text-based format, to create bank transfers for german banks. This gem helps with the creation of those transfer files.}
|
|
16
14
|
s.email = %q{gl@salesking.eu}
|
|
17
|
-
s.extra_rdoc_files = [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
s.
|
|
21
|
-
|
|
15
|
+
s.extra_rdoc_files = [
|
|
16
|
+
"README.markdown"
|
|
17
|
+
]
|
|
18
|
+
s.files = [
|
|
19
|
+
".travis.yml",
|
|
20
|
+
"Gemfile",
|
|
21
|
+
"MIT-LICENSE",
|
|
22
|
+
"README.markdown",
|
|
23
|
+
"Rakefile",
|
|
24
|
+
"VERSION",
|
|
25
|
+
"docs/dtazv.pdf",
|
|
26
|
+
"docs/dtazv_bank_bbk.pdf",
|
|
27
|
+
"docs/example.output",
|
|
28
|
+
"king_dtaus.gemspec",
|
|
29
|
+
"lib/king_dta/account.rb",
|
|
30
|
+
"lib/king_dta/booking.rb",
|
|
31
|
+
"lib/king_dta/dta.rb",
|
|
32
|
+
"lib/king_dta/dtaus.rb",
|
|
33
|
+
"lib/king_dta/dtazv.rb",
|
|
34
|
+
"lib/king_dta/exception.rb",
|
|
35
|
+
"lib/king_dta/helper.rb",
|
|
36
|
+
"lib/king_dtaus.rb",
|
|
37
|
+
"spec/account_spec.rb",
|
|
38
|
+
"spec/booking_spec.rb",
|
|
39
|
+
"spec/dtaus_spec.rb",
|
|
40
|
+
"spec/dtazv_spec.rb",
|
|
41
|
+
"spec/helper_spec.rb",
|
|
42
|
+
"spec/spec_helper.rb"
|
|
43
|
+
]
|
|
22
44
|
s.homepage = %q{http://github.com/salesking/king_dtaus}
|
|
23
|
-
s.require_paths = [
|
|
45
|
+
s.require_paths = ["lib"]
|
|
24
46
|
s.rubygems_version = %q{1.6.2}
|
|
47
|
+
s.summary = %q{Generate DTAUS strings and files}
|
|
25
48
|
|
|
26
|
-
s.
|
|
27
|
-
|
|
28
|
-
s.add_development_dependency 'rspec'
|
|
29
|
-
s.add_development_dependency 'simplecov'
|
|
30
|
-
s.add_development_dependency 'mocha'
|
|
31
|
-
s.add_development_dependency 'rake', '>= 0.9.2'
|
|
49
|
+
if s.respond_to? :specification_version then
|
|
50
|
+
s.specification_version = 3
|
|
32
51
|
|
|
52
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
53
|
+
s.add_runtime_dependency(%q<king_dtaus>, [">= 0"])
|
|
54
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
|
55
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
56
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
57
|
+
s.add_development_dependency(%q<mocha>, [">= 0"])
|
|
58
|
+
s.add_development_dependency(%q<i18n>, [">= 0"])
|
|
59
|
+
else
|
|
60
|
+
s.add_dependency(%q<king_dtaus>, [">= 0"])
|
|
61
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
|
62
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
63
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
64
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
|
65
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
|
66
|
+
end
|
|
67
|
+
else
|
|
68
|
+
s.add_dependency(%q<king_dtaus>, [">= 0"])
|
|
69
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
|
70
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
71
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
72
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
|
73
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
|
74
|
+
end
|
|
33
75
|
end
|
|
34
76
|
|
data/lib/king_dta/account.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
module KingDta
|
|
3
|
-
#
|
|
3
|
+
# A bank account with name of the account owner,
|
|
4
|
+
# Kontodaten verwalten mit Name des Inhabers und Bank, Bankleitzahl und Kontonummer.
|
|
4
5
|
class Account
|
|
5
6
|
include KingDta::Helper
|
|
6
|
-
|
|
7
|
-
attr_accessor :bank_street, :bank_city,
|
|
7
|
+
|
|
8
|
+
attr_accessor :bank_account_number, :bank_number, :bank_street, :bank_city,
|
|
8
9
|
:bank_zip, :bank_name, :bank_country_code, :bank_iban,
|
|
9
10
|
:bank_bic,
|
|
10
11
|
:owner_name, :owner_number, :owner_street, :owner_city,
|
|
11
12
|
:owner_zip_code, :owner_country_code
|
|
12
|
-
attr_reader :bank_account_number, :bank_number
|
|
13
13
|
|
|
14
|
+
# TODO test
|
|
14
15
|
def initialize(args={})
|
|
15
16
|
|
|
16
17
|
@bank_street = convert_text(args.delete(:bank_street))
|
|
@@ -25,44 +26,23 @@ module KingDta
|
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
raise ArgumentError.new('Owner number too long, max 10 allowed') if @owner_number && "#{@owner_number}".length > 10
|
|
28
|
-
raise ArgumentError.new(
|
|
29
|
-
raise ArgumentError.new(
|
|
30
|
-
raise ArgumentError.new(
|
|
31
|
-
|
|
29
|
+
raise ArgumentError.new("Owner street too long, max 35 allowed") if @owner_street && @owner_street.length > 35
|
|
30
|
+
raise ArgumentError.new("Owner city too long, max 35 allowed") if @owner_city && @owner_city.length > 35
|
|
31
|
+
raise ArgumentError.new("Owner country code too long, max 2 allowed") if @owner_country_code && @owner_country_code.length > 2
|
|
32
32
|
|
|
33
|
-
raise ArgumentError.new(
|
|
34
|
-
raise ArgumentError.new("Bank
|
|
33
|
+
raise ArgumentError.new('Bank account number too long, max 35 allowed') if @bank_account_number && "#{@bank_account_number}".length > 35
|
|
34
|
+
raise ArgumentError.new("Bank account number cannot be 0") if @bank_account_number && @bank_account_number == 0
|
|
35
|
+
# raise ArgumentError.new('Bank iban too long, max 11 allowed') if @bank_iban && @bank_iban.between?(15,32)
|
|
35
36
|
|
|
36
|
-
raise ArgumentError.new(
|
|
37
|
-
raise ArgumentError.new('Bank city too long, max 35 allowed') if @bank_city && @bank_city.length > 35
|
|
38
|
-
raise ArgumentError.new('Bank name too long, max 35 allowed') if @bank_name && @bank_name.length > 35
|
|
39
|
-
raise ArgumentError.new('Bank country code too long, max 2 allowed') if @bank_country_code && @bank_country_code.length > 2
|
|
40
|
-
|
|
41
|
-
@owner_country_code = @bank_iban[0..1 ] if @bank_iban && !@owner_country_code
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# Cast given account number to integer. Strips spaces and leading zeros
|
|
45
|
-
# from the bank account number.
|
|
46
|
-
# DTA relies on integers for checksums and field values.
|
|
47
|
-
# @param [String|Integer] number
|
|
48
|
-
def bank_account_number=(number)
|
|
49
|
-
nr_str = "#{number}".gsub(/\s/,'')
|
|
50
|
-
raise ArgumentError.new('Bank account number too long, max 10 allowed') if nr_str.length > 10
|
|
51
|
-
raise ArgumentError.new('Bank account number cannot be 0') if nr_str == '0'
|
|
52
|
-
|
|
53
|
-
@bank_account_number = nr_str.to_i
|
|
54
|
-
end
|
|
37
|
+
raise ArgumentError.new("Bank bic wrong length,#{@bank_bic.length} must be between 8-11") if @bank_bic && !@bank_bic.length.between?(8,11)
|
|
55
38
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
raise ArgumentError.new('Bank number too long, max 8 allowed') if nr_str.length > 8
|
|
63
|
-
raise ArgumentError.new('Bank number cannot be 0') if nr_str == '0'
|
|
39
|
+
raise ArgumentError.new('Bank number too long, max 11 allowed') if @bank_number && "#{@bank_number}".length > 11
|
|
40
|
+
raise ArgumentError.new("Bank number cannot be 0") if @bank_number && @bank_number == 0
|
|
41
|
+
raise ArgumentError.new("Bank street too long, max 35 allowed") if @bank_street && @bank_street.length > 35
|
|
42
|
+
raise ArgumentError.new("Bank city too long, max 35 allowed") if @bank_city && @bank_city.length > 35
|
|
43
|
+
raise ArgumentError.new("Bank name too long, max 35 allowed") if @bank_name && @bank_name.length > 35
|
|
44
|
+
raise ArgumentError.new("Bank country code too long, max 2 allowed") if @bank_country_code && @bank_country_code.length > 2
|
|
64
45
|
|
|
65
|
-
@bank_number = nr_str.to_i
|
|
66
46
|
end
|
|
67
47
|
|
|
68
48
|
def bank_zip_city
|
data/lib/king_dta/dtaus.rb
CHANGED
|
@@ -36,8 +36,8 @@ module KingDta
|
|
|
36
36
|
def set_checksums
|
|
37
37
|
@sum_bank_account_numbers, @sum_bank_numbers, @sum_values = 0,0,0
|
|
38
38
|
bookings.each do |b|
|
|
39
|
-
@sum_bank_account_numbers += b.account.bank_account_number
|
|
40
|
-
@sum_bank_numbers += b.account.bank_number
|
|
39
|
+
@sum_bank_account_numbers += b.account.bank_account_number.to_i
|
|
40
|
+
@sum_bank_numbers += b.account.bank_number.to_i
|
|
41
41
|
@sum_values += b.value
|
|
42
42
|
end
|
|
43
43
|
end
|
|
@@ -63,7 +63,7 @@ module KingDta
|
|
|
63
63
|
# 11b 95 8 Ausführungsdatum Format DDMMJJJJ. max A7 + 15 Tage. Default Blanks.
|
|
64
64
|
# 11c 103 24 Reserviert, 24 Blanks
|
|
65
65
|
# 12 127 1 Währungskennzeichen "1" = Euro
|
|
66
|
-
#
|
|
66
|
+
#
|
|
67
67
|
# Insgesamt 128 Zeichen
|
|
68
68
|
def add_a
|
|
69
69
|
data = '0128'
|
|
@@ -74,7 +74,7 @@ module KingDta
|
|
|
74
74
|
data += '%-27.27s' % @account.owner_name
|
|
75
75
|
data += @date.strftime("%d%m%y") # creation date - today
|
|
76
76
|
data += ' ' * 4
|
|
77
|
-
data += '%010i' % @account.bank_account_number
|
|
77
|
+
data += '%010i' % @account.bank_account_number.to_i
|
|
78
78
|
data += '%010i' % 0
|
|
79
79
|
data += ' ' * 15
|
|
80
80
|
data += '%8s' % @date.strftime("%d%m%Y") #Ausführungsdatum - ja hier 8 Stellen
|
|
@@ -153,13 +153,13 @@ module KingDta
|
|
|
153
153
|
data1 = 'C'
|
|
154
154
|
data1 += '%08i' % 0
|
|
155
155
|
data1 += '%-08i' % booking.account.bank_number
|
|
156
|
-
data1 += '%010i' % booking.account.bank_account_number
|
|
156
|
+
data1 += '%010i' % booking.account.bank_account_number.to_i
|
|
157
157
|
data1 += '0%011i0' % (booking.account.owner_number || 0) #interne Kundennummer
|
|
158
158
|
data1 += zahlungsart
|
|
159
159
|
data1 += ' '
|
|
160
160
|
data1 += '0' * 11
|
|
161
161
|
data1 += '%08i' % @account.bank_number
|
|
162
|
-
data1 += '%010i' % @account.bank_account_number
|
|
162
|
+
data1 += '%010i' % @account.bank_account_number.to_i
|
|
163
163
|
data1 += '%011i' % booking.value #Betrag in Euro einschl. Nachkomma
|
|
164
164
|
data1 += ' ' * 3
|
|
165
165
|
data1 += '%-27.27s' % booking.account.owner_name
|
|
@@ -172,7 +172,7 @@ module KingDta
|
|
|
172
172
|
booking_txt = booking.text || default_text
|
|
173
173
|
#Erste 27 Zeichen
|
|
174
174
|
#if text < 26 fill with spaces
|
|
175
|
-
data2 +=
|
|
175
|
+
data2 += booking_txt[0..26].ljust(27)
|
|
176
176
|
booking_txt = booking_txt[27..999]
|
|
177
177
|
# cut text into 27 long pieces
|
|
178
178
|
while booking_txt && booking_txt.size > 0 && exts.size < 13
|
|
@@ -184,7 +184,7 @@ module KingDta
|
|
|
184
184
|
data2 += '1' #EUR
|
|
185
185
|
data2 += ' ' * 2
|
|
186
186
|
# Gesamte Satzlänge ermitteln ( data1(+4) + data2 + Erweiterungen )
|
|
187
|
-
data1 = "%04i#{data1}" % ( data1.size + 4 + data2.size
|
|
187
|
+
data1 = "%04i#{data1}" % ( data1.size + 4 + data2.size+ 2 + exts.size * 29 )
|
|
188
188
|
raise "DTAUS: Längenfehler C/1 #{data1.size} nicht 128, #{booking.account.owner_name}" unless data1.size == 128
|
|
189
189
|
dta_string << data1
|
|
190
190
|
#Anzahl Erweiterungen anfügen
|
data/lib/king_dta/dtazv.rb
CHANGED
|
@@ -35,8 +35,9 @@ module KingDta
|
|
|
35
35
|
# Datensatz Q - kurze Variante
|
|
36
36
|
# Die Bundesbank nimmt Q-Sätze in 2 Varianten entgegen. Die lange Variante ist identisch mit
|
|
37
37
|
# den von den Auftraggebern gelieferten Q-Sätzen. In der kurzen Variante sind nur die Felder
|
|
38
|
-
# enthalten, die von der Bundesbank bei der Bearbeitung der Meldungen benötigt werden
|
|
39
|
-
#
|
|
38
|
+
# enthalten, die von der Bundesbank bei der Bearbeitung der Meldungen benötigt werden; das in der
|
|
39
|
+
# kurzen Variante nicht enthaltene Feld ist in der folgenden Tabelle durch Schattierung und Kursivschrift
|
|
40
|
+
# kenntlich gemacht. Beide Varianten dürfen in einer Datei vorkommen.
|
|
40
41
|
# [ Anmerk.: Bei der Kurzen Variante entfällt die Kundennummer ]
|
|
41
42
|
#
|
|
42
43
|
# === Fields
|
|
@@ -44,7 +45,7 @@ module KingDta
|
|
|
44
45
|
# 1 1 4 Satzlänge numerisch bei Disketten und DFÜ
|
|
45
46
|
# 2 5 1 Satzart Konstante "Q"
|
|
46
47
|
# 3 6 8 BLZ Erstbeauftragtes Kreditinstitut
|
|
47
|
-
# 4 14 10
|
|
48
|
+
# 4 14 10 Kundennummer Entfällt bei der kurzen Variante
|
|
48
49
|
# 5 24 4x35 Auftraggeberdaten Zeile 1 und 2: Name;
|
|
49
50
|
# Zeile 3: Straße/Postfach; Zeile 4: Ort
|
|
50
51
|
# 6 164 6 Erstellungsdatum Format: JJMMTT
|
|
@@ -66,7 +67,7 @@ module KingDta
|
|
|
66
67
|
data1 += @date.strftime("%y%m%d") # Erstellungsdatum
|
|
67
68
|
data1 += '01'
|
|
68
69
|
data1 += @date.strftime("%y%m%d") # Ausführungstermin
|
|
69
|
-
data1 += "N"
|
|
70
|
+
data1 += "N"
|
|
70
71
|
data1 += "%02i" % 0
|
|
71
72
|
data1 += '%08i' % 0
|
|
72
73
|
data1 += '%068s' % ''
|
|
@@ -111,11 +112,13 @@ module KingDta
|
|
|
111
112
|
# Pflicht, wenn T8 nicht belegt; nicht zu belegen bei Scheckziehungen,
|
|
112
113
|
# 9b 68 4x35 Anschrift Bank des Zahlungsempfängers. Pflicht wenn T8 nicht belegt
|
|
113
114
|
# Wenn Anschrift nicht bekannt„UNBEKANNT"
|
|
114
|
-
# Zeile 1 und 2: Name Zeile 3: Straße Zeile 4: Ort
|
|
115
|
+
# Zeile 1 und 2: Name Zeile 3: Straße Zeile 4: Ort
|
|
115
116
|
# Nicht zu belegen bei Scheckziehungen
|
|
116
117
|
#
|
|
117
|
-
#
|
|
118
|
-
#
|
|
118
|
+
# 10a 3 208 alpha Ländercode für Land des 2-stelliger ISO-alpha-Ländercode gemäß P P - P
|
|
119
|
+
# Zahlungsempfängers bzw. Länderverzeichnis für die Zahlungsbilanzstatistik;
|
|
120
|
+
# Scheckempfängers linksbündig zu belegen; 3. Stelle Leerzeichen
|
|
121
|
+
# 10b 4x35 211 alpha Zahlungsempfänger bzw. Bei Zahlungsauftrag: Zahlungsempfänger Bei P P Angabe eines Scheckempfängers nicht P Angabe eines Scheck empfängers nicht möglich
|
|
119
122
|
# Scheckempfänger Scheckziehung: Scheckempfänger Zeile 1 und 2: möglich
|
|
120
123
|
# Name Zeile 3 : Straße Zeile 4 : Ort/Land.
|
|
121
124
|
# Entfällt bei der kurzen Variante NUR FUER DIE BEARBEITUNG DER MELDUNGEN--------------------------------------------------------------------------------------------------------
|
|
@@ -204,7 +207,7 @@ module KingDta
|
|
|
204
207
|
data2 += '%08i' % 0 # KANN/PFLICHT 6 BLZ
|
|
205
208
|
data2 += '%03s' % '' # KANN/PFLICHT 7a ISO-Währungscode
|
|
206
209
|
data2 += '%010i' % 0 # KANN/PFLICHT 7b BLZ
|
|
207
|
-
data2 += '%-011s' % booking.account.bank_bic
|
|
210
|
+
data2 += '%-011s' % booking.account.bank_bic
|
|
208
211
|
data2 += '%-03s' % booking.account.bank_country_code # Pflichtfelder wenn T8 leer
|
|
209
212
|
data2 += '%-070s' % booking.account.bank_name
|
|
210
213
|
data2 += '%-035.35s' % booking.account.bank_street
|
data/spec/account_spec.rb
CHANGED
|
@@ -8,7 +8,7 @@ describe KingDta::Account do
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
it "should initialize a new account" do
|
|
11
|
-
lambda{
|
|
11
|
+
lambda{
|
|
12
12
|
KingDta::Account.new(:bank_account_number => @ba.bank_account_number,
|
|
13
13
|
:bank_number => @ba.bank_number,
|
|
14
14
|
:owner_name => @ba.owner_name)
|
|
@@ -16,58 +16,37 @@ describe KingDta::Account do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
it "should initialize a new dtazv account" do
|
|
19
|
-
lambda{
|
|
19
|
+
lambda{
|
|
20
20
|
KingDta::Account.new(sender_opts)
|
|
21
21
|
}.should_not raise_error
|
|
22
22
|
end
|
|
23
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
|
-
|
|
46
24
|
it "should fail if bank account number is invalid" do
|
|
47
|
-
lambda{
|
|
25
|
+
# lambda{ KingDta::Account.new(0, @ba.bank_number, @ba.owner_name) }.should raise_error(ArgumentError)
|
|
26
|
+
lambda{
|
|
48
27
|
KingDta::Account.new(:bank_account_number => 123456789011123456789011123456789011,
|
|
49
28
|
:bank_number => @ba.bank_number,
|
|
50
29
|
:owner_name => @ba.owner_name)
|
|
51
30
|
|
|
52
|
-
}.should raise_error(ArgumentError, 'Bank account number too long, max
|
|
31
|
+
}.should raise_error(ArgumentError, 'Bank account number too long, max 35 allowed')
|
|
53
32
|
end
|
|
54
33
|
|
|
55
34
|
it "should fail if bank number is invalid" do
|
|
56
|
-
lambda{
|
|
35
|
+
lambda{
|
|
57
36
|
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
|
58
37
|
:bank_number => 0,
|
|
59
38
|
:owner_name => @ba.owner_name)
|
|
60
39
|
}.should raise_error(ArgumentError)
|
|
61
40
|
|
|
62
|
-
lambda{
|
|
41
|
+
lambda{
|
|
63
42
|
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
|
64
43
|
:bank_number => 123456789101112,
|
|
65
44
|
:owner_name => @ba.owner_name)
|
|
66
|
-
}.should raise_error(ArgumentError, 'Bank number too long, max
|
|
45
|
+
}.should raise_error(ArgumentError, 'Bank number too long, max 11 allowed')
|
|
67
46
|
end
|
|
68
47
|
|
|
69
48
|
it "should fail if owner number is too long" do
|
|
70
|
-
lambda{
|
|
49
|
+
lambda{
|
|
71
50
|
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
|
72
51
|
:bank_number => @ba.bank_number,
|
|
73
52
|
:owner_name => @ba.owner_name,
|
|
@@ -75,7 +54,7 @@ describe KingDta::Account do
|
|
|
75
54
|
}.should raise_error(ArgumentError, 'Owner number too long, max 10 allowed')
|
|
76
55
|
end
|
|
77
56
|
|
|
78
|
-
it "should fail if street and/or Zip Code is too long" do
|
|
57
|
+
it "should fail if street and/or Zip Code is too long" do
|
|
79
58
|
opts = sender_opts.merge( :bank_street => "Lorem ipsum dolor sit amet, consectetur")
|
|
80
59
|
lambda{
|
|
81
60
|
KingDta::Account.new(opts)
|
|
@@ -84,7 +63,7 @@ describe KingDta::Account do
|
|
|
84
63
|
|
|
85
64
|
it "should fail if city is too long" do
|
|
86
65
|
opts = sender_opts.merge( :bank_city => "Lorem ipsum dolor sit amet, consecte")
|
|
87
|
-
lambda{
|
|
66
|
+
lambda{
|
|
88
67
|
KingDta::Account.new opts
|
|
89
68
|
}.should raise_error(ArgumentError, 'Bank city too long, max 35 allowed')
|
|
90
69
|
end
|
|
@@ -111,19 +90,12 @@ describe KingDta::Account do
|
|
|
111
90
|
end
|
|
112
91
|
|
|
113
92
|
it "should return account street and zip" do
|
|
114
|
-
|
|
115
|
-
|
|
93
|
+
konto = KingDta::Account.new( sender_opts )
|
|
94
|
+
konto.bank_zip_city.should == "51063 BANK KOELN"
|
|
116
95
|
end
|
|
117
96
|
|
|
118
97
|
it "should return sender street and zip" do
|
|
119
|
-
|
|
120
|
-
|
|
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"
|
|
98
|
+
konto = KingDta::Account.new( sender_opts )
|
|
99
|
+
konto.owner_zip_city.should == "51063 MEINE KOELN"
|
|
128
100
|
end
|
|
129
101
|
end
|
data/spec/dtaus_spec.rb
CHANGED
|
@@ -90,20 +90,6 @@ describe KingDta::Dtaus do
|
|
|
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
|
-
|
|
107
93
|
it "should create c-sektion with default booking text" do
|
|
108
94
|
@dtaus.default_text = 'Default verwendungszweck'
|
|
109
95
|
@dtaus.add_c(@booking)
|
|
@@ -128,15 +114,6 @@ describe KingDta::Dtaus do
|
|
|
128
114
|
str.should == out
|
|
129
115
|
end
|
|
130
116
|
|
|
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
|
-
|
|
140
117
|
it "should create whole dta string with long booking text in extension" do
|
|
141
118
|
@dtaus.add(@booking)
|
|
142
119
|
@dtaus.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH'
|
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/rspec'
|
|
8
8
|
|
|
9
9
|
require 'rubygems'
|
|
10
|
-
require
|
|
10
|
+
require "king_dtaus"
|
|
11
11
|
require 'rspec'
|
|
12
12
|
require 'ostruct'
|
|
13
13
|
require 'date'
|
|
@@ -21,16 +21,16 @@ def sender_opts
|
|
|
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
|
-
:bank_zip =>
|
|
27
|
-
:bank_country_code =>
|
|
28
|
-
:owner_number =>
|
|
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
29
|
:owner_name =>'Jan Kus',
|
|
30
|
-
:owner_street =>
|
|
31
|
-
:owner_city =>
|
|
32
|
-
:owner_zip_code =>
|
|
33
|
-
:owner_country_code =>
|
|
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
|
|
|
@@ -39,10 +39,10 @@ def receiver_opts
|
|
|
39
39
|
:bank_iban => 'PL10105013151000002308622378',
|
|
40
40
|
:bank_bic => 'COBADEFF366',
|
|
41
41
|
:owner_name =>'Dalai Lama',
|
|
42
|
-
:owner_street =>
|
|
43
|
-
:owner_city =>
|
|
44
|
-
:owner_zip_code =>
|
|
45
|
-
:owner_country_code =>
|
|
42
|
+
:owner_street => "Bush-Avenue 55",
|
|
43
|
+
:owner_city => "India",
|
|
44
|
+
:owner_zip_code => "445555",
|
|
45
|
+
:owner_country_code => "DE"
|
|
46
46
|
# only needed if no bic present
|
|
47
47
|
# :bank_name => 'Dalai Lamas Bank',
|
|
48
48
|
# :bank_street => "5th avenue",
|
metadata
CHANGED
|
@@ -1,134 +1,128 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: king_dtaus
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 961916008
|
|
5
|
+
prerelease: 6
|
|
6
|
+
segments:
|
|
7
|
+
- 2
|
|
8
|
+
- 0
|
|
9
|
+
- 3
|
|
10
|
+
- pre
|
|
11
|
+
version: 2.0.3.pre
|
|
6
12
|
platform: ruby
|
|
7
|
-
authors:
|
|
13
|
+
authors:
|
|
8
14
|
- Georg Leciejewski
|
|
9
15
|
- Georg Ledermann
|
|
10
16
|
- Jan Kus
|
|
11
17
|
autorequire:
|
|
12
18
|
bindir: bin
|
|
13
19
|
cert_chain: []
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
none: false
|
|
20
|
-
requirements:
|
|
21
|
-
- - ! '>='
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version: '0'
|
|
20
|
+
|
|
21
|
+
date: 2011-09-03 00:00:00 +02:00
|
|
22
|
+
default_executable:
|
|
23
|
+
dependencies:
|
|
24
|
+
- !ruby/object:Gem::Dependency
|
|
24
25
|
type: :runtime
|
|
25
|
-
|
|
26
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
27
27
|
none: false
|
|
28
|
-
requirements:
|
|
29
|
-
- -
|
|
30
|
-
- !ruby/object:Gem::Version
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- - ! '>='
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '0'
|
|
40
|
-
type: :development
|
|
28
|
+
requirements:
|
|
29
|
+
- - ">="
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
hash: 3
|
|
32
|
+
segments:
|
|
33
|
+
- 0
|
|
34
|
+
version: "0"
|
|
35
|
+
name: king_dtaus
|
|
36
|
+
version_requirements: *id001
|
|
41
37
|
prerelease: false
|
|
42
|
-
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
39
|
+
type: :development
|
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
43
41
|
none: false
|
|
44
|
-
requirements:
|
|
45
|
-
- -
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
hash: 3
|
|
46
|
+
segments:
|
|
47
|
+
- 0
|
|
48
|
+
version: "0"
|
|
49
49
|
name: rspec
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- - ! '>='
|
|
54
|
-
- !ruby/object:Gem::Version
|
|
55
|
-
version: '0'
|
|
50
|
+
version_requirements: *id002
|
|
51
|
+
prerelease: false
|
|
52
|
+
- !ruby/object:Gem::Dependency
|
|
56
53
|
type: :development
|
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
55
|
+
none: false
|
|
56
|
+
requirements:
|
|
57
|
+
- - ">="
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
hash: 3
|
|
60
|
+
segments:
|
|
61
|
+
- 0
|
|
62
|
+
version: "0"
|
|
63
|
+
name: jeweler
|
|
64
|
+
version_requirements: *id003
|
|
57
65
|
prerelease: false
|
|
58
|
-
|
|
66
|
+
- !ruby/object:Gem::Dependency
|
|
67
|
+
type: :development
|
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
59
69
|
none: false
|
|
60
|
-
requirements:
|
|
61
|
-
- -
|
|
62
|
-
- !ruby/object:Gem::Version
|
|
63
|
-
|
|
64
|
-
|
|
70
|
+
requirements:
|
|
71
|
+
- - ">="
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
hash: 3
|
|
74
|
+
segments:
|
|
75
|
+
- 0
|
|
76
|
+
version: "0"
|
|
65
77
|
name: simplecov
|
|
66
|
-
|
|
67
|
-
none: false
|
|
68
|
-
requirements:
|
|
69
|
-
- - ! '>='
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
version: '0'
|
|
72
|
-
type: :development
|
|
78
|
+
version_requirements: *id004
|
|
73
79
|
prerelease: false
|
|
74
|
-
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
type: :development
|
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
75
83
|
none: false
|
|
76
|
-
requirements:
|
|
77
|
-
- -
|
|
78
|
-
- !ruby/object:Gem::Version
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
hash: 3
|
|
88
|
+
segments:
|
|
89
|
+
- 0
|
|
90
|
+
version: "0"
|
|
81
91
|
name: mocha
|
|
82
|
-
|
|
83
|
-
none: false
|
|
84
|
-
requirements:
|
|
85
|
-
- - ! '>='
|
|
86
|
-
- !ruby/object:Gem::Version
|
|
87
|
-
version: '0'
|
|
88
|
-
type: :development
|
|
92
|
+
version_requirements: *id005
|
|
89
93
|
prerelease: false
|
|
90
|
-
|
|
91
|
-
none: false
|
|
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
|
|
94
|
+
- !ruby/object:Gem::Dependency
|
|
104
95
|
type: :development
|
|
105
|
-
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
96
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
107
97
|
none: false
|
|
108
|
-
requirements:
|
|
109
|
-
- -
|
|
110
|
-
- !ruby/object:Gem::Version
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
European SEPA region.'
|
|
98
|
+
requirements:
|
|
99
|
+
- - ">="
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
hash: 3
|
|
102
|
+
segments:
|
|
103
|
+
- 0
|
|
104
|
+
version: "0"
|
|
105
|
+
name: i18n
|
|
106
|
+
version_requirements: *id006
|
|
107
|
+
prerelease: false
|
|
108
|
+
description: DTAUS is a text-based format, to create bank transfers for german banks. This gem helps with the creation of those transfer files.
|
|
120
109
|
email: gl@salesking.eu
|
|
121
110
|
executables: []
|
|
111
|
+
|
|
122
112
|
extensions: []
|
|
123
|
-
|
|
113
|
+
|
|
114
|
+
extra_rdoc_files:
|
|
124
115
|
- README.markdown
|
|
125
|
-
files:
|
|
126
|
-
- .gitignore
|
|
116
|
+
files:
|
|
127
117
|
- .travis.yml
|
|
128
118
|
- Gemfile
|
|
129
119
|
- MIT-LICENSE
|
|
130
120
|
- README.markdown
|
|
131
121
|
- Rakefile
|
|
122
|
+
- VERSION
|
|
123
|
+
- docs/dtazv.pdf
|
|
124
|
+
- docs/dtazv_bank_bbk.pdf
|
|
125
|
+
- docs/example.output
|
|
132
126
|
- king_dtaus.gemspec
|
|
133
127
|
- lib/king_dta/account.rb
|
|
134
128
|
- lib/king_dta/booking.rb
|
|
@@ -137,7 +131,6 @@ files:
|
|
|
137
131
|
- lib/king_dta/dtazv.rb
|
|
138
132
|
- lib/king_dta/exception.rb
|
|
139
133
|
- lib/king_dta/helper.rb
|
|
140
|
-
- lib/king_dta/version.rb
|
|
141
134
|
- lib/king_dtaus.rb
|
|
142
135
|
- spec/account_spec.rb
|
|
143
136
|
- spec/booking_spec.rb
|
|
@@ -145,31 +138,41 @@ files:
|
|
|
145
138
|
- spec/dtazv_spec.rb
|
|
146
139
|
- spec/helper_spec.rb
|
|
147
140
|
- spec/spec_helper.rb
|
|
141
|
+
has_rdoc: true
|
|
148
142
|
homepage: http://github.com/salesking/king_dtaus
|
|
149
143
|
licenses: []
|
|
144
|
+
|
|
150
145
|
post_install_message:
|
|
151
146
|
rdoc_options: []
|
|
152
|
-
|
|
147
|
+
|
|
148
|
+
require_paths:
|
|
153
149
|
- lib
|
|
154
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
155
151
|
none: false
|
|
156
|
-
requirements:
|
|
157
|
-
- -
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
|
|
160
|
-
segments:
|
|
152
|
+
requirements:
|
|
153
|
+
- - ">="
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
hash: 3
|
|
156
|
+
segments:
|
|
161
157
|
- 0
|
|
162
|
-
|
|
163
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
|
+
version: "0"
|
|
159
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
160
|
none: false
|
|
165
|
-
requirements:
|
|
166
|
-
- -
|
|
167
|
-
- !ruby/object:Gem::Version
|
|
168
|
-
|
|
161
|
+
requirements:
|
|
162
|
+
- - ">"
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
hash: 25
|
|
165
|
+
segments:
|
|
166
|
+
- 1
|
|
167
|
+
- 3
|
|
168
|
+
- 1
|
|
169
|
+
version: 1.3.1
|
|
169
170
|
requirements: []
|
|
171
|
+
|
|
170
172
|
rubyforge_project:
|
|
171
|
-
rubygems_version: 1.
|
|
173
|
+
rubygems_version: 1.6.2
|
|
172
174
|
signing_key:
|
|
173
175
|
specification_version: 3
|
|
174
|
-
summary: Generate
|
|
176
|
+
summary: Generate DTAUS strings and files
|
|
175
177
|
test_files: []
|
|
178
|
+
|
data/.gitignore
DELETED
data/lib/king_dta/version.rb
DELETED