Class: DTAUS::Konto

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

Overview

Kontodaten mit Name des Inhabers, Bank, Bankleitzahl und Kontonummer. Kann zwischen Auftraggeber und Kundenkonto unterscheiden.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Konto

Erstellt ein neues Konto

params as Hash:

:kontonummer

die Kontonummer

:blz

die Bankleitzahl

:kontoinhaber

der Name der Kontoinhabers

:bankname

der Name der Bank

:is_auftraggeber

Boolischer Wert, ob dieses Konto ein Auftraggeberkonto ist; wird gebraucht, um den Typ der Erweiterung zu bestimmen; optional, default-Wert ist false

:kundennummer

eine Kundennummer; optional, defautl-Wert ist 0



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/dtaus/konto.rb', line 23

def initialize(params = {})
  # defaults
  params = {
    :is_auftraggeber => false,
    :kundennummer => 0
  }.merge(params)
  
  [:blz, :bankname, :kontoinhaber, :kontonummer].each do |attr|
    raise ArgumentError.new("Missing params[:#{attr}] for new Konto.") if params[attr].nil?
  end
  
  @is_auftraggeber = params[:is_auftraggeber]

  @kontonummer  = Converter.convert_number(params[:kontonummer])
  @blz          = Converter.convert_number(params[:blz])
  @kundennummer = Converter.convert_number(params[:kundennummer])
  @kontoinhaber = Converter.convert_text(params[:kontoinhaber])
  @bankname     = Converter.convert_text(params[:bankname])

  if @kontonummer == 0 or @kontonummer.to_s.size > 10
    raise DTAUSException.new("Ungültige Kontonummer: #{@kontonummer}") 
  end
  if @blz  == 0 or @blz.to_s.size > 8
    raise DTAUSException.new("Ungültige Bankleitzahl: #{@blz}")   
  end
  if @kundennummer.to_s.size > 11
    raise DTAUSException.new("Ungültige Kundennummer: #{@kundennummer}")   
  end
  
end

Instance Attribute Details

#banknameObject (readonly)

Returns the value of attribute bankname.



8
9
10
# File 'lib/dtaus/konto.rb', line 8

def bankname
  @bankname
end

#blzObject (readonly)

Returns the value of attribute blz.



8
9
10
# File 'lib/dtaus/konto.rb', line 8

def blz
  @blz
end

#is_auftraggeberObject (readonly) Also known as: is_auftraggeber?

Returns the value of attribute is_auftraggeber.



8
9
10
# File 'lib/dtaus/konto.rb', line 8

def is_auftraggeber
  @is_auftraggeber
end

#kontoinhaberObject (readonly)

Returns the value of attribute kontoinhaber.



8
9
10
# File 'lib/dtaus/konto.rb', line 8

def kontoinhaber
  @kontoinhaber
end

#kontonummerObject (readonly)

Returns the value of attribute kontonummer.



8
9
10
# File 'lib/dtaus/konto.rb', line 8

def kontonummer
  @kontonummer
end

#kundennummerObject (readonly)

Returns the value of attribute kundennummer.



8
9
10
# File 'lib/dtaus/konto.rb', line 8

def kundennummer
  @kundennummer
end

Instance Method Details

#erweiterungenObject

Erstellt eine Liste von Erweiterungen für den Kontoinhaber



55
56
57
# File 'lib/dtaus/konto.rb', line 55

def erweiterungen
  Erweiterung.from_string(is_auftraggeber? ? :auftraggeber : :kunde, kontoinhaber)
end