Class: DTAUS
- Inherits:
-
Object
- Object
- DTAUS
- Defined in:
- lib/dtaus.rb,
lib/dtaus/konto.rb,
lib/dtaus/buchung.rb,
lib/dtaus/erweiterung.rb
Overview
:title:DTAUS-Datei erstellen
DTAUS-Datei für Sammellastschrift erstellen
Quick How-To:
auftraggeber = DTAUS::Konto.new(1234567890, 12345670, 'Muster GmbH', 'Deutsche Bank', true)
kunde = DTAUS::Konto.new(1234567890, 12345670, 'Max Meier-Schulze', 'Sparkasse')
buchung = DTAUS::Buchung.new(auftraggeber, kunde, 39.99, 'Vielen Dank für ihren Einkauf vom 01.01.2010. Rechnungsnummer 12345')
dta = DTAUS.new(auftraggeber)
dta.add(buchung)
dta.to_file
Typ der Datei ist ‘LK’ (Lastschrift Kunde)
Infos zu DTAUS: www.infodrom.org/projects/dtaus/dtaus.php3 DTAUS online check: www.xpecto.de/index.php?id=148,7
Defined Under Namespace
Classes: Buchung, DTAUSException, Erweiterung, IncorrectSize, Konto
Instance Attribute Summary collapse
-
#auftraggeber ⇒ Object
readonly
Returns the value of attribute auftraggeber.
-
#buchungen ⇒ Object
readonly
Returns the value of attribute buchungen.
-
#datum ⇒ Object
readonly
Returns the value of attribute datum.
-
#positiv ⇒ Object
(also: #positiv?)
readonly
Returns the value of attribute positiv.
Class Method Summary collapse
-
.convert_number(_number) ⇒ Object
Konvertiert einen String in einen Integer indem alle Nicht-Digits entfernt werden.
-
.convert_text(_text) ⇒ Object
Zeichen umsetzen gemäss DTA-Norm.
Instance Method Summary collapse
-
#add(buchung) ⇒ Object
Eine Buchung hinzufügen.
-
#initialize(auftraggeber, datum = Time.new) ⇒ DTAUS
constructor
A new instance of DTAUS.
-
#to_dta ⇒ Object
(also: #to_s)
Gibt die DTAUS-Datei als String zurück.
-
#to_file(filename = 'DTAUS0.TXT') ⇒ Object
Schreibt die DTAUS-Datei Standarddateiname ist DTAUS0.TXT.
-
#typ ⇒ Object
2 Zeichen Art der Transaktionen “LB” für Lastschriften Bankseitig “LK” für Lastschriften Kundenseitig “GB” für Gutschriften Bankseitig “GK” für Gutschriften Kundenseitig.
Constructor Details
#initialize(auftraggeber, datum = Time.new) ⇒ DTAUS
Returns a new instance of DTAUS.
33 34 35 36 37 38 39 40 |
# File 'lib/dtaus.rb', line 33 def initialize(auftraggeber, datum = Time.new) raise DTAUSException.new("Konto expected, got #{auftraggeber.class}") unless auftraggeber.is_a?(DTAUS::Konto) raise DTAUSException.new("Date or Time expected, got #{datum.class}") unless datum.is_a?(Date) or datum.is_a?(Time) @datum = datum @auftraggeber = auftraggeber @buchungen = [] end |
Instance Attribute Details
#auftraggeber ⇒ Object (readonly)
Returns the value of attribute auftraggeber.
30 31 32 |
# File 'lib/dtaus.rb', line 30 def auftraggeber @auftraggeber end |
#buchungen ⇒ Object (readonly)
Returns the value of attribute buchungen.
30 31 32 |
# File 'lib/dtaus.rb', line 30 def buchungen @buchungen end |
#datum ⇒ Object (readonly)
Returns the value of attribute datum.
30 31 32 |
# File 'lib/dtaus.rb', line 30 def datum @datum end |
#positiv ⇒ Object (readonly) Also known as: positiv?
Returns the value of attribute positiv.
30 31 32 |
# File 'lib/dtaus.rb', line 30 def positiv @positiv end |
Class Method Details
.convert_number(_number) ⇒ Object
Konvertiert einen String in einen Integer indem alle Nicht-Digits entfernt werden. Lässt Integer unberührt.
105 106 107 108 109 110 111 |
# File 'lib/dtaus.rb', line 105 def self.convert_number(_number) case _number when Integer then _number when String then _number.strip.gsub(/\D/, '').to_i else raise DTAUSException.new("Cannot convert #{_number.class} to Integer") end end |
.convert_text(_text) ⇒ Object
Zeichen umsetzen gemäss DTA-Norm
88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/dtaus.rb', line 88 def self.convert_text(_text) tmp = _text.to_s.dup tmp = tmp.upcase() tmp = tmp.gsub('Ä', 'AE') tmp = tmp.gsub('Ü', 'UE') tmp = tmp.gsub('Ö', 'OE') tmp = tmp.gsub('ä', 'AE') tmp = tmp.gsub('ü', 'UE') tmp = tmp.gsub('ö', 'OE') tmp = tmp.gsub('ß', 'SS') tmp = tmp.strip end |
Instance Method Details
#add(buchung) ⇒ Object
Eine Buchung hinzufügen. Es wird geprüft, ob das Vorzeichen identisch mit den bisherigen Vorzeichen ist.
55 56 57 58 59 60 61 62 63 |
# File 'lib/dtaus.rb', line 55 def add(buchung) raise DTAUSException.new("Buchung expected, got #{buchung.class}") unless buchung.is_a?(DTAUS::Buchung) # Die erste Buchung bestimmt, ob alle Beträge positiv oder negativ sind. if buchungen == [] @positiv = buchung.positiv? # alle Beträge sind positiv. Variable wird mit erstem Eintrag geändert end raise DTAusException.new("Das Vorzeichen wechselte") if @positiv != buchung.positiv? @buchungen << buchung end |
#to_dta ⇒ Object Also known as: to_s
Gibt die DTAUS-Datei als String zurück
67 68 69 70 71 72 73 74 |
# File 'lib/dtaus.rb', line 67 def to_dta raise DTAUSException.new("Keine Buchungen vorhanden") unless buchungen.size > 0 temp = dataA temp += buchungen.inject(''){|temp, buchung| temp += buchung.to_dta} temp += dataE raise IncorrectSize.new("Datensatzlänge ist nicht durch 128 teilbar: #{temp.size}") if temp.size % 128 != 0 temp end |
#to_file(filename = 'DTAUS0.TXT') ⇒ Object
Schreibt die DTAUS-Datei Standarddateiname ist DTAUS0.TXT
80 81 82 83 84 |
# File 'lib/dtaus.rb', line 80 def to_file(filename ='DTAUS0.TXT') File.open(filename, 'w') do |file| file << to_dta end end |
#typ ⇒ Object
2 Zeichen Art der Transaktionen “LB” für Lastschriften Bankseitig “LK” für Lastschriften Kundenseitig “GB” für Gutschriften Bankseitig “GK” für Gutschriften Kundenseitig
48 49 50 |
# File 'lib/dtaus.rb', line 48 def typ 'LK' end |