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
Erstellt den Erweiterungen-Teil des C-Segments für diese Buchung