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:
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"modifiedBy": "Geändert von",
|
||||
"freigeschalteteNutzer": "Freigeschaltete Nutzer",
|
||||
"collaborators": "Mitarbeiter",
|
||||
"advowareAktenzeichen": "Advoware Aktenzeichen",
|
||||
"advowareAkten": "Advoware Akte",
|
||||
"aktennr": "Advoware Identifikator",
|
||||
"advowareLastSync": "Letzter Sync",
|
||||
"syncStatus": "Sync Status",
|
||||
@@ -106,7 +106,6 @@
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"advowareAktenzeichen": "Aktenzeichen aus Advoware für die Synchronisation",
|
||||
"aktennr": "Eindeutige Kündigungs-Nummer aus Advoware",
|
||||
"syncStatus": "Status der Advoware-Synchronisation: pending_sync = Warte auf Sync, clean = erfolgreich synchronisiert, unclean = Änderungen ausstehend, failed = Fehler, no_sync = Nicht synchronisiert",
|
||||
"sendungsverfolgungsnummer": "Sendungsverfolgungsnummer für Einschreiben",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"modifiedBy": "Modified By",
|
||||
"freigeschalteteNutzer": "Authorized Users",
|
||||
"collaborators": "Collaborators",
|
||||
"advowareAktenzeichen": "Advoware File Number",
|
||||
"advowareAkten": "Advoware File",
|
||||
"aktennr": "Case Number",
|
||||
"advowareLastSync": "Last Sync",
|
||||
"syncStatus": "Sync Status",
|
||||
@@ -105,7 +105,6 @@
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"advowareAktenzeichen": "File number from Advoware for synchronization",
|
||||
"aktennr": "Case number from Advoware",
|
||||
"syncStatus": "Advoware synchronization status: pending_sync = Waiting for sync, clean = successfully synchronized, unclean = changes pending, failed = error, no_sync = Not synchronized",
|
||||
"sendungsverfolgungsnummer": "Tracking number for registered mail",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"name": "status"
|
||||
},
|
||||
{
|
||||
"name": "advowareAktenzeichen"
|
||||
"name": "advowareAkten"
|
||||
}
|
||||
],
|
||||
[
|
||||
|
||||
@@ -52,14 +52,6 @@
|
||||
"tooltipText"
|
||||
]
|
||||
},
|
||||
"advowareAktenzeichen": {
|
||||
"type": "varchar",
|
||||
"required": false,
|
||||
"maxLength": 100,
|
||||
"tooltip": true,
|
||||
"isCustom": true,
|
||||
"copyToClipboard": true
|
||||
},
|
||||
"aktennr": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
@@ -421,11 +413,7 @@
|
||||
"aktennr"
|
||||
]
|
||||
},
|
||||
"advowareAktenzeichen": {
|
||||
"columns": [
|
||||
"advowareAktenzeichen"
|
||||
]
|
||||
},
|
||||
|
||||
"status": {
|
||||
"columns": [
|
||||
"status",
|
||||
|
||||
@@ -428,19 +428,13 @@ class CVmhRumungsklage extends \Espo\Services\Record
|
||||
|
||||
// 2. If no existing Akte found, create new one
|
||||
if (!$advowareAkte) {
|
||||
// Collect Aktennummer and Aktenzeichen from Kündigungen
|
||||
// Collect Aktennummer from Kündigungen (Aktenzeichen wird neu generiert)
|
||||
$aktennummer = null;
|
||||
$aktenzeichen = null;
|
||||
|
||||
foreach ($alleKuendigungen as $kuendigung) {
|
||||
if (!$aktennummer && $kuendigung->get('aktennr')) {
|
||||
$aktennummer = $kuendigung->get('aktennr');
|
||||
}
|
||||
if (!$aktenzeichen && $kuendigung->get('advowareAktenzeichen')) {
|
||||
$aktenzeichen = $kuendigung->get('advowareAktenzeichen');
|
||||
}
|
||||
if ($aktennummer && $aktenzeichen) {
|
||||
break; // Found both
|
||||
break; // Use first found
|
||||
}
|
||||
}
|
||||
|
||||
@@ -448,9 +442,9 @@ class CVmhRumungsklage extends \Espo\Services\Record
|
||||
if (!$aktennummer) {
|
||||
$aktennummer = time(); // Simple timestamp-based generation
|
||||
}
|
||||
if (!$aktenzeichen) {
|
||||
$aktenzeichen = 'AZ-' . date('Y-m-d-His');
|
||||
}
|
||||
|
||||
// Always generate new Aktenzeichen
|
||||
$aktenzeichen = 'AZ-' . date('Y-m-d-His');
|
||||
|
||||
// Create new AdvowareAkte
|
||||
$advowareAkteData = [
|
||||
|
||||
@@ -360,7 +360,7 @@ return [
|
||||
0 => 'youtube.com',
|
||||
1 => 'google.com'
|
||||
],
|
||||
'microtime' => 1774297547.393199,
|
||||
'microtime' => 1774298143.136788,
|
||||
'siteUrl' => 'https://crm.bitbylaw.com',
|
||||
'fullTextSearchMinLength' => 4,
|
||||
'webSocketUrl' => 'ws://api.bitbylaw.com:5000/espocrm/ws',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
return [
|
||||
'cacheTimestamp' => 1774297547,
|
||||
'microtimeState' => 1774297547.570899,
|
||||
'cacheTimestamp' => 1774298143,
|
||||
'microtimeState' => 1774298143.319113,
|
||||
'currencyRates' => [
|
||||
'EUR' => 1.0
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user