Refactor CreateAdvowareAkte and SyncAdvowareAkte to synchronize only Aktennummer; update localization keys for advowareAktenzeichen; adjust microtime values in config and state files

This commit is contained in:
2026-03-23 21:41:01 +01:00
parent ea4738d9eb
commit cb3da68673
9 changed files with 24 additions and 62 deletions

View File

@@ -83,17 +83,14 @@ class CreateAdvowareAkte implements AfterSave
private function createNewAkte(Entity $kuendigung): void
{
// Hole oder generiere Aktennummer
// Hole Aktennummer aus Kündigung (falls vorhanden)
$aktennummer = $kuendigung->get('aktennr');
if (!$aktennummer) {
$aktennummer = time();
}
// Hole oder generiere Aktenzeichen
$aktenzeichen = $kuendigung->get('advowareAktenzeichen');
if (!$aktenzeichen) {
$aktenzeichen = 'AZ-' . date('Y-m-d-His');
}
// Generiere Aktenzeichen (wird in CAdvowareAkten gespeichert)
$aktenzeichen = 'AZ-' . date('Y-m-d-His');
// Erstelle AdvowareAkte
$akteData = [
@@ -117,8 +114,11 @@ class CreateAdvowareAkte implements AfterSave
$kuendigung->set('advowareAktenId', $akte->getId());
$this->entityManager->saveEntity($kuendigung, ['silent' => true, 'skipHooks' => true]);
// Synchronisiere Aktennummer zurück zur Kündigung
$this->syncAktennummer($kuendigung, $akte);
// Synchronisiere Aktennummer zurück zur Kündigung (falls leer war)
if (!$kuendigung->get('aktennr') && $akte->get('aktennummer')) {
$kuendigung->set('aktennr', $akte->get('aktennummer'));
$this->entityManager->saveEntity($kuendigung, ['silent' => true, 'skipHooks' => true]);
}
$GLOBALS['log']->info("CKuendigung CreateAdvowareAkte: Created new AdvowareAkte: {$akte->getId()}");
} else {
@@ -128,21 +128,11 @@ class CreateAdvowareAkte implements AfterSave
private function syncAktennummer(Entity $kuendigung, Entity $akte): void
{
$needsUpdate = false;
// Synchronisiere nur Aktennummer (nicht Aktenzeichen, das ist in der Beziehung)
if (!$kuendigung->get('aktennr') && $akte->get('aktennummer')) {
$kuendigung->set('aktennr', $akte->get('aktennummer'));
$needsUpdate = true;
}
if (!$kuendigung->get('advowareAktenzeichen') && $akte->get('aktenzeichen')) {
$kuendigung->set('advowareAktenzeichen', $akte->get('aktenzeichen'));
$needsUpdate = true;
}
if ($needsUpdate) {
$this->entityManager->saveEntity($kuendigung, ['silent' => true, 'skipHooks' => true]);
$GLOBALS['log']->info("CKuendigung CreateAdvowareAkte: Synchronized Aktennummer/Aktenzeichen");
$GLOBALS['log']->info("CKuendigung CreateAdvowareAkte: Synchronized Aktennummer");
}
}
}

View File

@@ -62,22 +62,14 @@ class SyncAdvowareAkte implements AfterRelate
// Verknüpfe AdvowareAkte mit Kündigung (belongsTo relationship - set field directly)
$entity->set('advowareAktenId', $advowareAkteId);
// Synchronisiere Aktennummer und Aktenzeichen
$needsUpdate = false;
// Synchronisiere nur Aktennummer (Aktenzeichen kommt über Beziehung)
if (!$entity->get('aktennr') && $advowareAkte->get('aktennummer')) {
$entity->set('aktennr', $advowareAkte->get('aktennummer'));
$needsUpdate = true;
}
if (!$entity->get('advowareAktenzeichen') && $advowareAkte->get('aktenzeichen')) {
$entity->set('advowareAktenzeichen', $advowareAkte->get('aktenzeichen'));
$needsUpdate = true;
}
// Save once with all changes
$this->entityManager->saveEntity($entity, ['silent' => true, 'skipHooks' => true]);
$GLOBALS['log']->info("CKuendigung SyncAdvowareAkte: Successfully linked AdvowareAkte and synchronized fields to Kündigung");
$GLOBALS['log']->info("CKuendigung SyncAdvowareAkte: Successfully linked AdvowareAkte and synchronized Aktennummer to Kündigung");
}
} else {
$GLOBALS['log']->info("CKuendigung SyncAdvowareAkte: Räumungsklage {$foreignEntity->getId()} has no AdvowareAkte yet");