lib/dtaus/dta_generator.rb
def segment_c_erweiterungen(buchung)
      erweiterungen = buchung.erweiterungen + @datensatz.auftraggeber_konto.erweiterungen
      
      result  = @datensatz.auftraggeber_konto.kontoinhaber[0..26].ljust(27)   # 27 Zeichen  Name des Auftraggebers
      result += buchung.verwendungszweck[0..26].ljust(27)                     # 27 Zeichen  Verwendungszweck
      result += '1'                                                           # 1 Zeichen  Währungskennzeichen ('1' = Euro)
      result += '  '                                                          # 2 Zeichen   Reserviert, 2 Blanks
      result += "%02i" % erweiterungen.size                                   # 2 Zeichen   Anzahl der Erweiterungsdatensätze, "00" bis "15"
      
      result += erweiterungen[0..1].inject('') {|tmp, erweiterung| tmp += "#{erweiterung.type}#{erweiterung.text}"}
      result  = result.ljust(128)
      
      if erweiterungen.size > 2
        erweiterungen[2..-1].each_slice(4) do |slice|
          result += slice.inject('') {|tmp, erweiterung| tmp += "#{erweiterung.type}#{erweiterung.text}"}.ljust(128)
        end
      end
      
      if result.size > 256 * 3 or result.size % 128 != 0
        raise IncorrectSizeException.new("Erweiterungen: #{result.size} Zeichen") 
      end
      
      result
    end
def segment_c_erweiterungen(buchung)
      erweiterungen = buchung.erweiterungen + @datensatz.auftraggeber_konto.erweiterungen
      
      result  = @datensatz.auftraggeber_konto.kontoinhaber[0..26].ljust(27)   # 27 Zeichen  Name des Auftraggebers
      result += buchung.verwendungszweck[0..26].ljust(27)                     # 27 Zeichen  Verwendungszweck
      result += '1'                                                           # 1 Zeichen  Währungskennzeichen ('1' = Euro)
      result += '  '                                                          # 2 Zeichen   Reserviert, 2 Blanks
      result += "%02i" % erweiterungen.size                                   # 2 Zeichen   Anzahl der Erweiterungsdatensätze, "00" bis "15"
      
      result += erweiterungen[0..1].inject('') {|tmp, erweiterung| tmp += "#{erweiterung.type}#{erweiterung.text}"}
      result  = result.ljust(128)
      
      if erweiterungen.size > 2
        erweiterungen[2..-1].each_slice(4) do |slice|
          result += slice.inject('') {|tmp, erweiterung| tmp += "#{erweiterung.type}#{erweiterung.text}"}.ljust(128)
        end
      end
      
      if result.size > 256 * 3 or result.size % 128 != 0
        raise IncorrectSizeException.new("Erweiterungen: #{result.size} Zeichen") 
      end
      
      result
    end
def segment_c_erweiterungen ( buchung ) erweiterungen = buchung . erweiterungen + @datensatz . auftraggeber_konto . erweiterungen result = @datensatz . auftraggeber_konto . kontoinhaber [ 0 .. 26 ] . ljust ( 27 ) # 27 Zeichen  Name des Auftraggebers result += buchung . verwendungszweck [ 0 .. 26 ] . ljust ( 27 ) # 27 Zeichen  Verwendungszweck result += '1' # 1 Zeichen  Währungskennzeichen ('1' = Euro) result += '  ' # 2 Zeichen   Reserviert, 2 Blanks result += "%02i" % erweiterungen . size # 2 Zeichen   Anzahl der Erweiterungsdatensätze, "00" bis "15" result += erweiterungen [ 0 .. 1 ] . inject ( '' ) { | tmp , erweiterung | tmp += "#{erweiterung.type}#{erweiterung.text}" } result = result . ljust ( 128 ) if erweiterungen . size > 2 erweiterungen [ 2 .. - 1 ] . each_slice ( 4 ) do | slice | result += slice . inject ( '' ) { | tmp , erweiterung | tmp += "#{erweiterung.type}#{erweiterung.text}" } . ljust ( 128 ) end end if result . size > 256 * 3 or result . size % 128 != 0 raise IncorrectSizeException . new ( "Erweiterungen: #{result.size} Zeichen" ) end result end
Erstellt den Erweiterungen-Teil des C-Segments für diese Buchung
Erstellt den Erweiterungen - Teil des C - Segments für diese Buchung