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
|
private function createNewAkte(Entity $kuendigung): void
|
||||||
{
|
{
|
||||||
// Hole oder generiere Aktennummer
|
// Hole Aktennummer aus Kündigung (falls vorhanden)
|
||||||
$aktennummer = $kuendigung->get('aktennr');
|
$aktennummer = $kuendigung->get('aktennr');
|
||||||
if (!$aktennummer) {
|
if (!$aktennummer) {
|
||||||
$aktennummer = time();
|
$aktennummer = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hole oder generiere Aktenzeichen
|
// Generiere Aktenzeichen (wird in CAdvowareAkten gespeichert)
|
||||||
$aktenzeichen = $kuendigung->get('advowareAktenzeichen');
|
$aktenzeichen = 'AZ-' . date('Y-m-d-His');
|
||||||
if (!$aktenzeichen) {
|
|
||||||
$aktenzeichen = 'AZ-' . date('Y-m-d-His');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Erstelle AdvowareAkte
|
// Erstelle AdvowareAkte
|
||||||
$akteData = [
|
$akteData = [
|
||||||
@@ -117,8 +114,11 @@ class CreateAdvowareAkte implements AfterSave
|
|||||||
$kuendigung->set('advowareAktenId', $akte->getId());
|
$kuendigung->set('advowareAktenId', $akte->getId());
|
||||||
$this->entityManager->saveEntity($kuendigung, ['silent' => true, 'skipHooks' => true]);
|
$this->entityManager->saveEntity($kuendigung, ['silent' => true, 'skipHooks' => true]);
|
||||||
|
|
||||||
// Synchronisiere Aktennummer zurück zur Kündigung
|
// Synchronisiere Aktennummer zurück zur Kündigung (falls leer war)
|
||||||
$this->syncAktennummer($kuendigung, $akte);
|
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()}");
|
$GLOBALS['log']->info("CKuendigung CreateAdvowareAkte: Created new AdvowareAkte: {$akte->getId()}");
|
||||||
} else {
|
} else {
|
||||||
@@ -128,21 +128,11 @@ class CreateAdvowareAkte implements AfterSave
|
|||||||
|
|
||||||
private function syncAktennummer(Entity $kuendigung, Entity $akte): void
|
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')) {
|
if (!$kuendigung->get('aktennr') && $akte->get('aktennummer')) {
|
||||||
$kuendigung->set('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]);
|
$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)
|
// Verknüpfe AdvowareAkte mit Kündigung (belongsTo relationship - set field directly)
|
||||||
$entity->set('advowareAktenId', $advowareAkteId);
|
$entity->set('advowareAktenId', $advowareAkteId);
|
||||||
|
|
||||||
// Synchronisiere Aktennummer und Aktenzeichen
|
// Synchronisiere nur Aktennummer (Aktenzeichen kommt über Beziehung)
|
||||||
$needsUpdate = false;
|
|
||||||
|
|
||||||
if (!$entity->get('aktennr') && $advowareAkte->get('aktennummer')) {
|
if (!$entity->get('aktennr') && $advowareAkte->get('aktennummer')) {
|
||||||
$entity->set('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
|
// Save once with all changes
|
||||||
$this->entityManager->saveEntity($entity, ['silent' => true, 'skipHooks' => true]);
|
$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 {
|
} else {
|
||||||
$GLOBALS['log']->info("CKuendigung SyncAdvowareAkte: Räumungsklage {$foreignEntity->getId()} has no AdvowareAkte yet");
|
$GLOBALS['log']->info("CKuendigung SyncAdvowareAkte: Räumungsklage {$foreignEntity->getId()} has no AdvowareAkte yet");
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
"modifiedBy": "Geändert von",
|
"modifiedBy": "Geändert von",
|
||||||
"freigeschalteteNutzer": "Freigeschaltete Nutzer",
|
"freigeschalteteNutzer": "Freigeschaltete Nutzer",
|
||||||
"collaborators": "Mitarbeiter",
|
"collaborators": "Mitarbeiter",
|
||||||
"advowareAktenzeichen": "Advoware Aktenzeichen",
|
"advowareAkten": "Advoware Akte",
|
||||||
"aktennr": "Advoware Identifikator",
|
"aktennr": "Advoware Identifikator",
|
||||||
"advowareLastSync": "Letzter Sync",
|
"advowareLastSync": "Letzter Sync",
|
||||||
"syncStatus": "Sync Status",
|
"syncStatus": "Sync Status",
|
||||||
@@ -106,7 +106,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tooltips": {
|
"tooltips": {
|
||||||
"advowareAktenzeichen": "Aktenzeichen aus Advoware für die Synchronisation",
|
|
||||||
"aktennr": "Eindeutige Kündigungs-Nummer aus Advoware",
|
"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",
|
"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",
|
"sendungsverfolgungsnummer": "Sendungsverfolgungsnummer für Einschreiben",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"modifiedBy": "Modified By",
|
"modifiedBy": "Modified By",
|
||||||
"freigeschalteteNutzer": "Authorized Users",
|
"freigeschalteteNutzer": "Authorized Users",
|
||||||
"collaborators": "Collaborators",
|
"collaborators": "Collaborators",
|
||||||
"advowareAktenzeichen": "Advoware File Number",
|
"advowareAkten": "Advoware File",
|
||||||
"aktennr": "Case Number",
|
"aktennr": "Case Number",
|
||||||
"advowareLastSync": "Last Sync",
|
"advowareLastSync": "Last Sync",
|
||||||
"syncStatus": "Sync Status",
|
"syncStatus": "Sync Status",
|
||||||
@@ -105,7 +105,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tooltips": {
|
"tooltips": {
|
||||||
"advowareAktenzeichen": "File number from Advoware for synchronization",
|
|
||||||
"aktennr": "Case number from Advoware",
|
"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",
|
"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",
|
"sendungsverfolgungsnummer": "Tracking number for registered mail",
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"name": "status"
|
"name": "status"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "advowareAktenzeichen"
|
"name": "advowareAkten"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -52,14 +52,6 @@
|
|||||||
"tooltipText"
|
"tooltipText"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"advowareAktenzeichen": {
|
|
||||||
"type": "varchar",
|
|
||||||
"required": false,
|
|
||||||
"maxLength": 100,
|
|
||||||
"tooltip": true,
|
|
||||||
"isCustom": true,
|
|
||||||
"copyToClipboard": true
|
|
||||||
},
|
|
||||||
"aktennr": {
|
"aktennr": {
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"required": false,
|
"required": false,
|
||||||
@@ -421,11 +413,7 @@
|
|||||||
"aktennr"
|
"aktennr"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"advowareAktenzeichen": {
|
|
||||||
"columns": [
|
|
||||||
"advowareAktenzeichen"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": {
|
"status": {
|
||||||
"columns": [
|
"columns": [
|
||||||
"status",
|
"status",
|
||||||
|
|||||||
@@ -428,19 +428,13 @@ class CVmhRumungsklage extends \Espo\Services\Record
|
|||||||
|
|
||||||
// 2. If no existing Akte found, create new one
|
// 2. If no existing Akte found, create new one
|
||||||
if (!$advowareAkte) {
|
if (!$advowareAkte) {
|
||||||
// Collect Aktennummer and Aktenzeichen from Kündigungen
|
// Collect Aktennummer from Kündigungen (Aktenzeichen wird neu generiert)
|
||||||
$aktennummer = null;
|
$aktennummer = null;
|
||||||
$aktenzeichen = null;
|
|
||||||
|
|
||||||
foreach ($alleKuendigungen as $kuendigung) {
|
foreach ($alleKuendigungen as $kuendigung) {
|
||||||
if (!$aktennummer && $kuendigung->get('aktennr')) {
|
if (!$aktennummer && $kuendigung->get('aktennr')) {
|
||||||
$aktennummer = $kuendigung->get('aktennr');
|
$aktennummer = $kuendigung->get('aktennr');
|
||||||
}
|
break; // Use first found
|
||||||
if (!$aktenzeichen && $kuendigung->get('advowareAktenzeichen')) {
|
|
||||||
$aktenzeichen = $kuendigung->get('advowareAktenzeichen');
|
|
||||||
}
|
|
||||||
if ($aktennummer && $aktenzeichen) {
|
|
||||||
break; // Found both
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -448,9 +442,9 @@ class CVmhRumungsklage extends \Espo\Services\Record
|
|||||||
if (!$aktennummer) {
|
if (!$aktennummer) {
|
||||||
$aktennummer = time(); // Simple timestamp-based generation
|
$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
|
// Create new AdvowareAkte
|
||||||
$advowareAkteData = [
|
$advowareAkteData = [
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ return [
|
|||||||
0 => 'youtube.com',
|
0 => 'youtube.com',
|
||||||
1 => 'google.com'
|
1 => 'google.com'
|
||||||
],
|
],
|
||||||
'microtime' => 1774297547.393199,
|
'microtime' => 1774298143.136788,
|
||||||
'siteUrl' => 'https://crm.bitbylaw.com',
|
'siteUrl' => 'https://crm.bitbylaw.com',
|
||||||
'fullTextSearchMinLength' => 4,
|
'fullTextSearchMinLength' => 4,
|
||||||
'webSocketUrl' => 'ws://api.bitbylaw.com:5000/espocrm/ws',
|
'webSocketUrl' => 'ws://api.bitbylaw.com:5000/espocrm/ws',
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
'cacheTimestamp' => 1774297547,
|
'cacheTimestamp' => 1774298143,
|
||||||
'microtimeState' => 1774297547.570899,
|
'microtimeState' => 1774298143.319113,
|
||||||
'currencyRates' => [
|
'currencyRates' => [
|
||||||
'EUR' => 1.0
|
'EUR' => 1.0
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user