feat: Add Eingabeseite 4 (Löschkonzept)

This commit is contained in:
2026-01-22 11:37:17 +01:00
parent e7633f9bc4
commit 186ad830c1
3 changed files with 493 additions and 1 deletions

View File

@@ -909,3 +909,179 @@ formElementSections:
label: Bedingungen
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: REVIEW_REQUIRED
# ============================================================================
# Löschkonzept Section (Spawned)
# ============================================================================
- title: Löschkonzept
shortTitle: Löschkonzept
description: Angaben zum Löschkonzept für Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten
spawnedFromElementReference: art_der_massnahme
formElementSubSections:
# Subsection 1: Grundlegende Optionen
- title: Grundlegende Angaben zum Löschkonzept
formElements:
# Checkbox 1: loeschkonzept_hinterlegen = checked
- reference: loeschkonzept_hinterlegen
title: Löschkonzept hinterlegen
description: ''
type: CHECKBOX
options:
- value: 'true'
label: Löschkonzept für die Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten hinterlegen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Checkbox 2: globales_loeschkonzept = not checked
- reference: globales_loeschkonzept
title: Globales Löschkonzept
description: ''
type: CHECKBOX
options:
- value: 'false'
label: Es kommt ein globales Löschkonzept hinsichtlich aller Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten zum Einsatz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Text field: globales_loeschkonzept_referenz (hidden because checkbox not checked)
- reference: globales_loeschkonzept_referenz
title: Referenz zum globalen Löschkonzept
description: Angabe der Dokumentreferenz oder des Verweises auf das globale Löschkonzept
type: TEXTFIELD
options:
- value: ''
label: Dokumentreferenz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Checkbox 3: teilweises_globales_loeschkonzept = not checked
- reference: teilweises_globales_loeschkonzept
title: Teilweises globales Löschkonzept
description: ''
type: CHECKBOX
options:
- value: 'false'
label: Ein globales Löschkonzept kommt teilweise zum Einsatz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Text field: teilweises_globales_loeschkonzept_referenz (hidden)
- reference: teilweises_globales_loeschkonzept_referenz
title: Referenz zum teilweise genutzten Löschkonzept
description: Angabe der Dokumentreferenz oder des Verweises auf das teilweise genutzte Löschkonzept
type: TEXTFIELD
options:
- value: ''
label: Dokumentreferenz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Rich text: teilweises_loeschkonzept_abweichungen (hidden)
- reference: teilweises_loeschkonzept_abweichungen
title: Abweichungen vom globalen Löschkonzept
description: Beschreiben Sie die Abweichungen vom globalen Löschkonzept
type: RICH_TEXT
options:
- value: ''
label: Abweichungen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# ============================================================================
# Table WITH LuV (luv_beabsichtigt = Ja) - 10 columns
# ============================================================================
- title: Löschkonzept (Umfassende Darstellung)
formElements:
- reference: loeschkonzept_umfassend_tabelle
title: Löschkonzept für Verarbeitungsvorgänge
description: Umfassendes Löschkonzept mit Arbeitnehmerdaten (mit Leistungs-/Verhaltenskontrolle)
type: TABLE
tableRowPreset:
sourceTableReference: umfassende_datenverarbeitung_tabelle
columnMappings:
- sourceColumnIndex: 0
targetColumnIndex: 0
- sourceColumnIndex: 4
targetColumnIndex: 1
- sourceColumnIndex: 5
targetColumnIndex: 2
canAddRows: false
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: luv_beabsichtigt
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: loeschkonzept_hinterlegen
formElementExpectedValue: 'true'
formElementOperator: EQUALS
options:
# Column 0: Verarbeitungsvorgang-ID (cross-referenced, auto-populated, read-only)
- value: '["V001", "V002", "V003", "V004", "V005"]'
label: Verarbeitungsvorgang-ID
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: NON_CRITICAL
columnConfig:
sourceTableReference: umfassende_datenverarbeitung_tabelle
sourceColumnIndex: 0
isReadOnly: true
# Column 1: Datenkategorie (cross-referenced, auto-populated, read-only)
- value: '["Stammdaten", "Arbeitszeitdaten", "Gehaltsdaten", "Leistungsdaten", "Produktionsdaten"]'
label: Datenkategorie
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
columnConfig:
sourceTableReference: umfassende_datenverarbeitung_tabelle
sourceColumnIndex: 4
isReadOnly: true
# Column 2: Arbeitnehmerdaten (cross-referenced, auto-populated, read-only)
- value: '["Name, Adresse, Personalnummer, Bankverbindung", "An-/Abmeldezeiten, Pausenzeiten, Überstunden", "Bruttogehalt, Abzüge, Zulagen, Sonderzahlungen", "Zielerreichung, Bewertungen, Entwicklungsgespräche", "Stückzahlen, Fehlerquoten, Maschinenzeiten"]'
label: Arbeitnehmerdaten
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
columnConfig:
sourceTableReference: umfassende_datenverarbeitung_tabelle
sourceColumnIndex: 5
isReadOnly: true
# Column 3: Speicherorte / Nebenpfade
- value: '["SAP HCM Infotype 0001/0002, Database Cluster PCL1", "SAP CATS (CAT2/CAT7), Zeitdatenbank", "SAP Payroll Cluster PCL1/PCL2", "SuccessFactors Performance & Goals", "SAP MES Production Tables"]'
label: Speicherorte / Nebenpfade
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: REVIEW_REQUIRED
# Column 4: Aufbewahrungszweck
- value: '["Personalakte, gesetzliche Aufbewahrungspflichten", "Arbeitszeitnachweis, Betriebsrat", "Lohnsteuer, Sozialversicherung", "Personalentwicklung, Nachweispflicht", "Produktionskontrolle, Qualitätssicherung"]'
label: Aufbewahrungszweck
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# Column 5: Aufbewahrungsfrist
- value: '["10 Jahre nach Austritt", "2 Jahre nach Erfassung", "10 Jahre nach Zahlungsende", "5 Jahre nach Beurteilungsjahr", "3 Jahre nach Produktionsende"]'
label: Aufbewahrungsfrist
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 6: Löschart
- value: '["Automatische Archivierung mit späterer Löschung", "Automatische Löschung", "Archivierung nach gesetzlicher Frist", "Manuelle Prüfung und Löschung", "Automatische Aggregierung"]'
label: Löschart
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 7: Löschmethode
- value: '["SAP ILM Archivierung mit Löschlauf", "SAP Reorganisation (RSSCD100)", "Archivlink mit physischer Löschung", "Manuelles Löschprogramm nach Review", "Aggregierung auf Abteilungsebene"]'
label: Löschmethode
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 8: Ausnahmen
- value: '["Gerichtliche Auskunftspflichten", "Keine", "Betriebsprüfungen durch Finanzbehörden", "Laufende Personalverfahren", "Produkthaftungsfälle"]'
label: Ausnahmen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# Column 9: Nachweisform
- value: '["ILM Löschprotokoll, Archivierungslog", "RSSCD100 Batch-Log", "DMS Löschzertifikat", "Löschprotokoll mit Freigabe HRBP", "Aggregierungsbericht mit Checksummen"]'
label: Nachweisform
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED

View File

@@ -43,6 +43,10 @@ formElementSections:
sectionSpawnConditionType: SHOW
sectionSpawnExpectedValue: Einführung
sectionSpawnOperator: EQUALS
- templateReference: loeschkonzept_template
sectionSpawnConditionType: SHOW
sectionSpawnExpectedValue: Einführung
sectionSpawnOperator: EQUALS
# Einführung: Allgemeine Informationen
- title: Allgemeine Informationen
@@ -2212,6 +2216,312 @@ formElementSections:
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: REVIEW_REQUIRED
# ============================================================================
# Löschkonzept - Deletion Concept Section
# ============================================================================
- title: Löschkonzept
shortTitle: Löschkonzept
description: Angaben zum Löschkonzept für Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten
isTemplate: true
templateReference: loeschkonzept_template
titleTemplate: Löschkonzept
formElementSubSections:
# Subsection 1: Grundlegende Optionen (Checkboxes)
- title: Grundlegende Angaben zum Löschkonzept
formElements:
# Checkbox 1: Standard deletion concept
- reference: loeschkonzept_hinterlegen
title: Löschkonzept hinterlegen
description: ''
type: CHECKBOX
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
options:
- value: 'false'
label: Löschkonzept für die Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten hinterlegen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Checkbox 2: Global deletion concept
- reference: globales_loeschkonzept
title: Globales Löschkonzept
description: ''
type: CHECKBOX
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
options:
- value: 'false'
label: Es kommt ein globales Löschkonzept hinsichtlich aller Verarbeitungsvorgänge, Datenkategorien und Arbeitnehmerdaten zum Einsatz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Text field for global concept reference
- reference: globales_loeschkonzept_referenz
title: Referenz zum globalen Löschkonzept
description: Angabe der Dokumentreferenz oder des Verweises auf das globale Löschkonzept
type: TEXTFIELD
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: globales_loeschkonzept
formElementExpectedValue: 'true'
formElementOperator: EQUALS
options:
- value: ''
label: Dokumentreferenz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Checkbox 3: Partial global deletion concept
- reference: teilweises_globales_loeschkonzept
title: Teilweises globales Löschkonzept
description: ''
type: CHECKBOX
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
options:
- value: 'false'
label: Ein globales Löschkonzept kommt teilweise zum Einsatz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Text field for partial global concept reference
- reference: teilweises_globales_loeschkonzept_referenz
title: Referenz zum teilweise genutzten Löschkonzept
description: Angabe der Dokumentreferenz oder des Verweises auf das teilweise genutzte Löschkonzept
type: TEXTFIELD
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: teilweises_globales_loeschkonzept
formElementExpectedValue: 'true'
formElementOperator: EQUALS
options:
- value: ''
label: Dokumentreferenz
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Rich text for deviations description
- reference: teilweises_loeschkonzept_abweichungen
title: Abweichungen vom globalen Löschkonzept
description: Beschreiben Sie die Abweichungen vom globalen Löschkonzept
type: RICH_TEXT
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: teilweises_globales_loeschkonzept
formElementExpectedValue: true
formElementOperator: EQUALS
options:
- value: ''
label: Abweichungen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# ============================================================================
# Table WITHOUT LuV (luv_beabsichtigt = Nein) - 9 columns
# ============================================================================
- title: Löschkonzept (Einfache Darstellung)
formElements:
- reference: loeschkonzept_einfach_tabelle
title: Löschkonzept für Verarbeitungsvorgänge
description: Übersicht des Löschkonzepts (ohne Leistungs-/Verhaltenskontrolle)
type: TABLE
tableRowPreset:
sourceTableReference: einfache_datenverarbeitung_tabelle
columnMappings:
- sourceColumnIndex: 0
targetColumnIndex: 0
- sourceColumnIndex: 4
targetColumnIndex: 1
canAddRows: false
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: luv_beabsichtigt
formElementExpectedValue: Nein
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: loeschkonzept_hinterlegen
formElementExpectedValue: 'true'
formElementOperator: EQUALS
options:
# Column 0: Verarbeitungsvorgang-ID (cross-referenced, read-only)
- value: '[]'
label: Verarbeitungsvorgang-ID
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: NON_CRITICAL
columnConfig:
sourceTableReference: einfache_datenverarbeitung_tabelle
sourceColumnIndex: 0
isReadOnly: true
# Column 1: Datenkategorie (cross-referenced, read-only)
- value: '[]'
label: Datenkategorie
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
columnConfig:
sourceTableReference: einfache_datenverarbeitung_tabelle
sourceColumnIndex: 4
isReadOnly: true
# Column 2: Speicherorte / Nebenpfade
- value: '[]'
label: Speicherorte / Nebenpfade
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: REVIEW_REQUIRED
# Column 3: Aufbewahrungszweck
- value: '[]'
label: Aufbewahrungszweck
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# Column 4: Aufbewahrungsfrist
- value: '[]'
label: Aufbewahrungsfrist
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 5: Löschart
- value: '[]'
label: Löschart
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 6: Löschmethode
- value: '[]'
label: Löschmethode
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 7: Ausnahmen
- value: '[]'
label: Ausnahmen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# Column 8: Nachweisform
- value: '[]'
label: Nachweisform
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# ============================================================================
# Table WITH LuV (luv_beabsichtigt = Ja) - 10 columns
# ============================================================================
- title: Löschkonzept (Umfassende Darstellung)
formElements:
- reference: loeschkonzept_umfassend_tabelle
title: Löschkonzept für Verarbeitungsvorgänge
description: Umfassendes Löschkonzept mit Arbeitnehmerdaten (mit Leistungs-/Verhaltenskontrolle)
type: TABLE
tableRowPreset:
sourceTableReference: umfassende_datenverarbeitung_tabelle
columnMappings:
- sourceColumnIndex: 0
targetColumnIndex: 0
- sourceColumnIndex: 4
targetColumnIndex: 1
- sourceColumnIndex: 5
targetColumnIndex: 2
canAddRows: false
visibilityConditions:
- formElementConditionType: SHOW
sourceFormElementReference: personenbezogene_daten_verarbeitet
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: luv_beabsichtigt
formElementExpectedValue: Ja
formElementOperator: EQUALS
- formElementConditionType: SHOW
sourceFormElementReference: loeschkonzept_hinterlegen
formElementExpectedValue: 'true'
formElementOperator: EQUALS
options:
# Column 0: Verarbeitungsvorgang-ID (cross-referenced, read-only)
- value: '[]'
label: Verarbeitungsvorgang-ID
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: NON_CRITICAL
columnConfig:
sourceTableReference: umfassende_datenverarbeitung_tabelle
sourceColumnIndex: 0
isReadOnly: true
# Column 1: Datenkategorie (cross-referenced, read-only)
- value: '[]'
label: Datenkategorie
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
columnConfig:
sourceTableReference: umfassende_datenverarbeitung_tabelle
sourceColumnIndex: 4
isReadOnly: true
# Column 2: Arbeitnehmerdaten (cross-referenced, read-only)
- value: '[]'
label: Arbeitnehmerdaten
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
columnConfig:
sourceTableReference: umfassende_datenverarbeitung_tabelle
sourceColumnIndex: 5
isReadOnly: true
# Column 3: Speicherorte / Nebenpfade
- value: '[]'
label: Speicherorte / Nebenpfade
processingPurpose: SYSTEM_OPERATION
employeeDataCategory: REVIEW_REQUIRED
# Column 4: Aufbewahrungszweck
- value: '[]'
label: Aufbewahrungszweck
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# Column 5: Aufbewahrungsfrist
- value: '[]'
label: Aufbewahrungsfrist
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 6: Löschart
- value: '[]'
label: Löschart
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 7: Löschmethode
- value: '[]'
label: Löschmethode
processingPurpose: DATA_ANALYSIS
employeeDataCategory: SENSITIVE
# Column 8: Ausnahmen
- value: '[]'
label: Ausnahmen
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# Column 9: Nachweisform
- value: '[]'
label: Nachweisform
processingPurpose: DATA_ANALYSIS
employeeDataCategory: REVIEW_REQUIRED
# AI GENERATED TEMPLATES BELOW THIS LINE - WILL BE REPLACED LATER
# Änderung: Schnittstellen
- title: Änderung Schnittstellen

View File

@@ -1,5 +1,5 @@
import type { FormElementDto, FormElementVisibilityCondition, VisibilityConditionOperator } from '~~/.api-client'
import { VisibilityConditionOperator as VCOperator, VisibilityConditionType as VCType } from '~~/.api-client'
import { VisibilityConditionOperator as VCOperator, VisibilityConditionType as VCType, FormElementType } from '~~/.api-client'
export function useFormElementVisibility() {
/**
@@ -65,6 +65,12 @@ export function useFormElementVisibility() {
}
function getFormElementValue(element: FormElementDto): string {
// For CHECKBOX with a single option, return the value directly
if (element.type === FormElementType.Checkbox && element.options.length === 1) {
return element.options[0]?.value || ''
}
// For other element types (RADIOBUTTON, SELECT, etc.), find the selected option and return its label
const selectedOption = element.options.find((option) => option.value === 'true')
return selectedOption?.label || ''
}