Files
sufw-anweisenheiten/schema.json
T
Rob 2433478680 In PDF Javascript gespeicherte Feldoptionen verwenden
Die Kosten-pro-Tag-Berechnung und die Drop-Down-Optionen im Anwesenheitsfeld werden per Javsacript gemacht. JS funktioniert aber in pyumpdf nicht, darum werden die korrekten Optionen aus dem JS ausgelesen und dieses 1:1 in den Feldern gesetzt. Mittels Schalter in der config können auch wieder die Rohwerte aus dem Excel gesetzt werden. (PDF muss dann von Hand geöffnet und gespeichert werden damit die entgültigen passenden Werte enthalten sind).
2026-04-16 17:04:11 +02:00

91 lines
3.1 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Attendance PDF Generator – Konfiguration",
"description": "Konfigurationsschema für config.json",
"type": "object",
"required": [
"antragsnummer",
"ort",
"template_pdf",
"output_dir",
"excel_year_pattern",
"excel_name_header",
"excel_name_column",
"excel_seq_column",
"excel_day_start_col",
"excel_day_end_col",
"month_mapping",
"valid_status_codes",
"plan_hours_value",
"pauschale_value"
],
"properties": {
"antragsnummer": {
"type": "string",
"description": "SAB-Antragsnummer (statisch, aus config)"
},
"ort": {
"type": "string",
"description": "Ort für die Unterschrift (statisch, aus config)"
},
"template_pdf": {
"type": "string",
"description": "Relativer Pfad zum PDF-Template"
},
"output_dir": {
"type": "string",
"description": "Ausgabeverzeichnis für generierte PDFs"
},
"excel_year_pattern": {
"type": "string",
"description": "Regex-Muster zur Jahresextraktion aus dem Dateinamen"
},
"excel_name_header": {
"type": "string",
"description": "Text in der Headerzeile der Namensspalte"
},
"excel_name_column": {
"type": "integer",
"description": "0-basierter Spaltenindex der Namensspalte (Spalte B = 1)"
},
"excel_seq_column": {
"type": "integer",
"description": "0-basierter Spaltenindex der lfd. Nummer (Spalte A = 0)"
},
"excel_day_start_col": {
"type": "integer",
"description": "0-basierter Spaltenindex des ersten Tages (Spalte J = 9)"
},
"excel_day_end_col": {
"type": "integer",
"description": "0-basierter Spaltenindex des letzten Tages (Spalte AN = 39)"
},
"month_mapping": {
"type": "object",
"description": "Mapping der deutschen Monatsabkürzungen auf zweistellige Monatsnummern",
"additionalProperties": {
"type": "string",
"pattern": "^(0[1-9]|1[0-2])$"
}
},
"valid_status_codes": {
"type": "array",
"items": { "type": "string" },
"description": "Gültige String-Statuscodes in Excel-Zellen (außer numerisch)"
},
"plan_hours_value": {
"type": "string",
"description": "Wert für das plan.N Dropdown (immer '6')"
},
"pauschale_value": {
"type": "string",
"description": "Wert für das pauschale.N Feld wenn anwesend"
},
"pdf_use_display_values": {
"type": "boolean",
"description": "true = Dropdown-Anzeigewerte ins PDF schreiben (z.B. 'X = anwesend'); false = rohe Export-Werte (z.B. 'X')",
"default": true
}
}
}