Class: DTAUS::Buchung

Inherits:
Object
  • Object
show all
Defined in:
lib/dtaus/buchung.rb

Overview

Buchung erstellen

buchung = Buchung.new(auftraggeber_konto, kunden_konto, betrag, verwendungszweck)

auftraggeber_konto und kunden_konto müssen ein DTAUS::Konto sein betrag muss ein Float sein

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_auftraggeber, _konto, _betrag, _text = "") ⇒ Buchung

Returns a new instance of Buchung.

Raises:

  • (DTAusException)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dtaus/buchung.rb', line 16

def initialize(_auftraggeber, _konto, _betrag, _text = "")
  raise DTAusException.new("Konto expected, got #{_konto.class}") unless _konto.is_a?(Konto)
  raise DTAUSException.new("Betrag is a #{_betrag.class}, expected Float") unless _betrag.is_a?(Float)
  raise DTAUSException.new("Betrag ist 0.0") unless _betrag > 0

  @auftraggeber = _auftraggeber
  @konto        = _konto
  @text         = DTAUS.convert_text(_text)

  raise IncorrectSize.new("Zuviele Erweiterungen: #{erweiterungen.size}, maximal 15. Verwendungszweck zu lang?") if erweiterungen.size > 15

  @betrag = (_betrag * 100).round.to_i  # Euro-Cent
  if betrag > 0
    @positiv  = true
  else
    @betrag   = -betrag # only store positive amounts
    @positiv  = false
  end
end

Instance Attribute Details

#auftraggeberObject (readonly)

Returns the value of attribute auftraggeber.



13
14
15
# File 'lib/dtaus/buchung.rb', line 13

def auftraggeber
  @auftraggeber
end

#betragObject (readonly)

Returns the value of attribute betrag.



13
14
15
# File 'lib/dtaus/buchung.rb', line 13

def betrag
  @betrag
end

#kontoObject (readonly)

Returns the value of attribute konto.



13
14
15
# File 'lib/dtaus/buchung.rb', line 13

def konto
  @konto
end

#positivObject (readonly) Also known as: positiv?

Returns the value of attribute positiv.



13
14
15
# File 'lib/dtaus/buchung.rb', line 13

def positiv
  @positiv
end

#textObject (readonly)

Returns the value of attribute text.



13
14
15
# File 'lib/dtaus/buchung.rb', line 13

def text
  @text
end

Instance Method Details

#erweiterungenObject



58
59
60
# File 'lib/dtaus/buchung.rb', line 58

def erweiterungen
  @erweiterungen ||= konto.erweiterungen + auftraggeber.erweiterungen + verwendungszweck_erweiterungen
end

#sizeObject



66
67
68
# File 'lib/dtaus/buchung.rb', line 66

def size
  (187 + erweiterungen.size * 29)
end

#to_dtaObject



62
63
64
# File 'lib/dtaus/buchung.rb', line 62

def to_dta
  "#{dataC}#{dataC_erweiterungen}"
end

#verwendungszweck_erweiterungenObject



54
55
56
# File 'lib/dtaus/buchung.rb', line 54

def verwendungszweck_erweiterungen
  Erweiterung.from_string(:verwendungszweck, text)
end

#zahlungsartObject

5 Zeichen Art der Transaktion (7a: 2 Zeichen, 7b: 3 Zeichen) “04000” Lastschrift des Abbuchungsauftragsverfahren “05000” Lastschrift des Einzugsermächtigungsverfahren “05005” Lastschrift aus Verfügung im elektronischen Cash-System “05006” Wie 05005 mit ausländischen Karten “05015” Lastschrift aus Verfügung im elec. Cash-System - POZ “51000” Überweisungs-Gutschrift “53000” Überweisung Lohn/Gehalt/Rente “54XXJ” Vermögenswirksame Leistung (VL) mit Sparzulage “56000” Überweisung öffentlicher Kassen Die im Textschlüssel mit XX bezeichnete Stelle ist 00 oder der Prozentsatz der Sparzulage. Die im Textschlüssel mit J bezeichnete Stelle wird bei Übernahme in eine Zahlung automatisch mit der jeweils aktuellen Jahresendziffer (z.B. 7, wenn 97) ersetzt.



50
51
52
# File 'lib/dtaus/buchung.rb', line 50

def zahlungsart
  '05000'
end