lib/dtaus/dta_generator.rb
def segment_a
      result = '0128'                                                     #  4 Zeichen  Länge des Datensatzes, immer 128 Bytes, also immer "0128"
      result += 'A'                                                       #  1 Zeichen  Datensatz-Typ, immer 'A'
      result += segment_a_transaktionstyp(@datensatz.transaktionstyp)     #  2 Zeichen  Art der Transaktionen
      result += '%8i' % @datensatz.auftraggeber_konto.blz                 #  8 Zeichen  Bankleitzahl des Auftraggebers
      result += '%08i' % 0                                                #  8 Zeichen  CST, "00000000", nur belegt, wenn Diskettenabsender Kreditinstitut
      result += '%-27.27s' % @datensatz.auftraggeber_konto.kontoinhaber   # 27 Zeichen  Name des Auftraggebers
      result += @datensatz.ausfuehrungsdatum.strftime("%d%m%y")           #  6 Zeichen  aktuelles Datum im Format DDMMJJ
      result += ' ' * 4                                                   #  4 Zeichen  CST, "    " (Blanks)
      result += '%010i' % @datensatz.auftraggeber_konto.kontonummer       # 10 Zeichen  Kontonummer des Auftraggebers
      result += '%010i' % 0                                               # 10 Zeichen  Optionale Referenznummer
      result += ' '  * 15                                                 # 15 Zeichen  Reserviert, 15 Blanks
      result += '%8s' % @datensatz.ausfuehrungsdatum.strftime("%d%m%Y")   #  8 Zeichen  Optionales Ausführungsdatum im Format DDMMJJJJ. Nicht jünger als Erstellungsdatum (A7), jedoch höchstens 15 Kalendertage später. Sonst Blanks.
      result += ' ' * 24                                                  # 24 Zeichen  Reserviert, 24 Blanks
      result += '1'                                                       #  1 Zeichen  Währungskennzeichen ('1' = Euro)
      
      raise IncorrectSizeException.new("A-Segment: #{result.size} Zeichen, 128 erwartet.") if result.size != 128
      
      result
    end
def segment_a
      result = '0128'                                                     #  4 Zeichen  Länge des Datensatzes, immer 128 Bytes, also immer "0128"
      result += 'A'                                                       #  1 Zeichen  Datensatz-Typ, immer 'A'
      result += segment_a_transaktionstyp(@datensatz.transaktionstyp)     #  2 Zeichen  Art der Transaktionen
      result += '%8i' % @datensatz.auftraggeber_konto.blz                 #  8 Zeichen  Bankleitzahl des Auftraggebers
      result += '%08i' % 0                                                #  8 Zeichen  CST, "00000000", nur belegt, wenn Diskettenabsender Kreditinstitut
      result += '%-27.27s' % @datensatz.auftraggeber_konto.kontoinhaber   # 27 Zeichen  Name des Auftraggebers
      result += @datensatz.ausfuehrungsdatum.strftime("%d%m%y")           #  6 Zeichen  aktuelles Datum im Format DDMMJJ
      result += ' ' * 4                                                   #  4 Zeichen  CST, "    " (Blanks)
      result += '%010i' % @datensatz.auftraggeber_konto.kontonummer       # 10 Zeichen  Kontonummer des Auftraggebers
      result += '%010i' % 0                                               # 10 Zeichen  Optionale Referenznummer
      result += ' '  * 15                                                 # 15 Zeichen  Reserviert, 15 Blanks
      result += '%8s' % @datensatz.ausfuehrungsdatum.strftime("%d%m%Y")   #  8 Zeichen  Optionales Ausführungsdatum im Format DDMMJJJJ. Nicht jünger als Erstellungsdatum (A7), jedoch höchstens 15 Kalendertage später. Sonst Blanks.
      result += ' ' * 24                                                  # 24 Zeichen  Reserviert, 24 Blanks
      result += '1'                                                       #  1 Zeichen  Währungskennzeichen ('1' = Euro)
      
      raise IncorrectSizeException.new("A-Segment: #{result.size} Zeichen, 128 erwartet.") if result.size != 128
      
      result
    end
Erstellt A-Segment (HEADER) der DTAUS-Datei
--
 Aufbau des Segments:

 Nr. Start Länge     Beschreibung
 1   0     4 Zeichen   Länge des Datensatzes, immer 128 Bytes, also immer "0128"
 2   4     1 Zeichen   Datensatz-Typ, immer 'A'
 3   5     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
 4   7     8 Zeichen   Bankleitzahl des Auftraggebers
 5   15    8 Zeichen   CST, "00000000", nur belegt, wenn Diskettenabsender Kreditinstitut
 6   23    27 Zeichen  Name des Auftraggebers
 7   50    6 Zeichen   aktuelles Datum im Format DDMMJJ
 8   56    4 Zeichen   CST, "    " (Blanks)
 9   60    10 Zeichen  Kontonummer des Auftraggebers
 10  70    10 Zeichen  Optionale Referenznummer
 11a 80    15 Zeichen  Reserviert, 15 Blanks
 11b 95    8 Zeichen   Ausführungsdatum im Format DDMMJJJJ. Nicht jünger als Erstellungsdatum (A7), jedoch höchstens 15 Kalendertage später. Sonst Blanks.
 11c 103   24 Zeichen  Reserviert, 24 Blanks
 12  127   1 Zeichen   Währungskennzeichen
             " " = DM
             "1" = Euro
++
 Insgesamt 128 Zeichen