Add audit logging for Bewerb changes, implement ZNS B-Satz export, enhance Zeitplan tab with audit log display, export dialog, and clickable Bewerb items, and integrate FixedWidthLineBuilder utility.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package at.mocode.zns.parser
|
||||
|
||||
import at.mocode.core.utils.parser.FixedWidthLineBuilder
|
||||
import at.mocode.core.utils.parser.FixedWidthLineReader
|
||||
import kotlinx.datetime.LocalDate
|
||||
|
||||
@@ -70,4 +71,36 @@ object ZnsBewerbParser {
|
||||
datum = datum
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Erzeugt eine B-Satz Zeile für die n2-XXXXX.dat Datei.
|
||||
* Verwendet eine Standardlänge von 80 Zeichen.
|
||||
*/
|
||||
fun build(bewerb: ZnsBewerb): String {
|
||||
val builder = FixedWidthLineBuilder(80)
|
||||
// Stelle 1: ID (Blank) - Standardmäßig Blank durch Buffer-Initialisierung
|
||||
|
||||
// Stelle 2-3: Bewerbnummer (2-stellig)
|
||||
builder.setInt(2, 2, bewerb.bewerbNummer % 100)
|
||||
|
||||
// Stelle 4: Abteilung
|
||||
builder.setInt(4, 1, bewerb.abteilung)
|
||||
|
||||
// Stelle 5-39: Bewerbname
|
||||
builder.setString(5, 35, bewerb.name)
|
||||
|
||||
// Stelle 40-43: Klasse
|
||||
builder.setString(40, 4, bewerb.klasse)
|
||||
|
||||
// Stelle 44-51: Kategorie
|
||||
builder.setString(44, 8, bewerb.kategorie)
|
||||
|
||||
// Stelle 53-60: Datum (JJJJMMTT) - Achtung: FixedWidthLineReader nutzte 53,8 (1-basiert)
|
||||
builder.setLocalDate(53, bewerb.datum)
|
||||
|
||||
// Stelle 61-63: Bewerbnummer (3-stellig)
|
||||
builder.setInt(61, 3, bewerb.bewerbNummer)
|
||||
|
||||
return builder.toString()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user