diff --git a/custom/Espo/Custom/Controllers/CAdvowareAkten.php b/custom/Espo/Custom/Controllers/CAdvowareAkten.php.bak similarity index 100% rename from custom/Espo/Custom/Controllers/CAdvowareAkten.php rename to custom/Espo/Custom/Controllers/CAdvowareAkten.php.bak diff --git a/custom/Espo/Custom/Controllers/CAdvowareAktenCDokumente.php b/custom/Espo/Custom/Controllers/CAdvowareAktenCDokumente.php.bak similarity index 100% rename from custom/Espo/Custom/Controllers/CAdvowareAktenCDokumente.php rename to custom/Espo/Custom/Controllers/CAdvowareAktenCDokumente.php.bak diff --git a/custom/Espo/Custom/Controllers/CAkten.php b/custom/Espo/Custom/Controllers/CAkten.php new file mode 100644 index 00000000..686335e1 --- /dev/null +++ b/custom/Espo/Custom/Controllers/CAkten.php @@ -0,0 +1,7 @@ +getRelation($raumungsklage, 'advowareAkten') ->findOne(); - if ($advowareAkte && !$foreignEntity->get('cAdvowareAktenId')) { - $foreignEntity->set('cAdvowareAktenId', $advowareAkte->getId()); + if ($advowareAkte && !$foreignEntity->get('cAktenId')) { + $foreignEntity->set('cAktenId', $advowareAkte->getId()); $foreignEntity->set('syncStatus', 'new'); $this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]); } @@ -81,8 +81,8 @@ class PropagateDocumentsUp implements AfterRelate, AfterUnrelate ->getRelation($mietinkasso, 'advowareAkten') ->findOne(); - if ($advowareAkte && !$foreignEntity->get('cAdvowareAktenId')) { - $foreignEntity->set('cAdvowareAktenId', $advowareAkte->getId()); + if ($advowareAkte && !$foreignEntity->get('cAktenId')) { + $foreignEntity->set('cAktenId', $advowareAkte->getId()); $foreignEntity->set('syncStatus', 'new'); $this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]); } @@ -134,7 +134,7 @@ class PropagateDocumentsUp implements AfterRelate, AfterUnrelate $this->unrelateDocument($mietinkasso, 'dokumentesmietinkasso', $foreignEntity); } - // Note: We don't remove cAdvowareAktenId on unrelate from AIKnowledge + // Note: We don't remove cAktenId on unrelate from AIKnowledge // because the document might still be linked to Räumungsklage/Mietinkasso } catch (\Exception $e) { diff --git a/custom/Espo/Custom/Hooks/CAdvowareAkten/PropagateDocumentsUp.php b/custom/Espo/Custom/Hooks/CAdvowareAkten/PropagateDocumentsUp.php deleted file mode 100644 index 19e7d90e..00000000 --- a/custom/Espo/Custom/Hooks/CAdvowareAkten/PropagateDocumentsUp.php +++ /dev/null @@ -1,118 +0,0 @@ -isAttributeChanged('cAdvowareAktenId')) { - return; - } - - $akteId = $entity->get('cAdvowareAktenId'); - if (!$akteId) { - return; // Document was unlinked from Akte - } - - // Vermeide Loops - $key = $akteId . '-' . $entity->getId() . '-propagate'; - if (isset(self::$processing[$key])) { - return; - } - self::$processing[$key] = true; - - try { - // Load AdvowareAkte - $akte = $this->entityManager->getEntity('CAdvowareAkten', $akteId); - if (!$akte) { - return; - } - - // Prüfe ob Räumungsklage verknüpft ist - $raumungsklage = $this->entityManager - ->getRDBRepository('CAdvowareAkten') - ->getRelation($akte, 'vmhRumungsklage') - ->findOne(); - - if ($raumungsklage) { - $this->relateDocument($raumungsklage, 'dokumentesvmhraumungsklage', $entity); - } - - // Prüfe ob Mietinkasso verknüpft ist - $mietinkasso = $this->entityManager - ->getRDBRepository('CAdvowareAkten') - ->getRelation($akte, 'mietinkasso') - ->findOne(); - - if ($mietinkasso) { - $this->relateDocument($mietinkasso, 'dokumentesmietinkasso', $entity); - } - - // Also propagate to AICollection if Räumungsklage or Mietinkasso has one - if ($raumungsklage) { - $aiKnowledge = $this->entityManager - ->getRDBRepository('CVmhRumungsklage') - ->getRelation($raumungsklage, 'aIKnowledge') - ->findOne(); - - if ($aiKnowledge) { - $this->relateDocument($aiKnowledge, 'dokumentes', $entity); - } - } - - if ($mietinkasso) { - $aiKnowledge = $this->entityManager - ->getRDBRepository('CMietinkasso') - ->getRelation($mietinkasso, 'aIKnowledge') - ->findOne(); - - if ($aiKnowledge) { - $this->relateDocument($aiKnowledge, 'dokumentes', $entity); - } - } - - } catch (\Exception $e) { - $GLOBALS['log']->error('CAdvowareAkten PropagateDocumentsUp Error: ' . $e->getMessage()); - } finally { - unset(self::$processing[$key]); - } - } - - /** - * Hilfsfunktion: Verknüpfe Dokument (nur wenn nicht bereits verknüpft) - */ - private function relateDocument(Entity $parentEntity, string $relationName, Entity $document): void - { - $repository = $this->entityManager->getRDBRepository($parentEntity->getEntityType()); - $relation = $repository->getRelation($parentEntity, $relationName); - - // Prüfe ob bereits verknüpft - $isRelated = $relation - ->where(['id' => $document->getId()]) - ->findOne(); - - if (!$isRelated) { - $relation->relate($document); - } - } -} diff --git a/custom/Espo/Custom/Hooks/CAkten/PropagateDocumentsUp.php b/custom/Espo/Custom/Hooks/CAkten/PropagateDocumentsUp.php new file mode 100644 index 00000000..db2485ef --- /dev/null +++ b/custom/Espo/Custom/Hooks/CAkten/PropagateDocumentsUp.php @@ -0,0 +1,83 @@ +isAttributeChanged('cAktenId')) { + return; + } + + $akteId = $entity->get('cAktenId'); + if (!$akteId) { + return; + } + + $key = $akteId . '-' . $entity->getId() . '-propagate'; + if (isset(self::$processing[$key])) { + return; + } + self::$processing[$key] = true; + + try { + $akte = $this->entityManager->getEntity('CAkten', $akteId); + if (!$akte) { + return; + } + + $raumungsklage = $this->entityManager + ->getRDBRepository('CAkten') + ->getRelation($akte, 'vmhRumungsklage') + ->findOne(); + + if ($raumungsklage) { + $this->relateDocument($raumungsklage, 'dokumentesvmhraumungsklage', $entity); + } + + $mietinkasso = $this->entityManager + ->getRDBRepository('CAkten') + ->getRelation($akte, 'mietinkasso') + ->findOne(); + + if ($mietinkasso) { + $this->relateDocument($mietinkasso, 'dokumentesmietinkasso', $entity); + } + + } catch (\Exception $e) { + $GLOBALS['log']->error('CAkten PropagateDocumentsUp Error: ' . $e->getMessage()); + } finally { + unset(self::$processing[$key]); + } + } + + private function relateDocument(Entity $parentEntity, string $relationName, Entity $document): void + { + $repository = $this->entityManager->getRDBRepository($parentEntity->getEntityType()); + $relation = $repository->getRelation($parentEntity, $relationName); + + $isRelated = $relation + ->where(['id' => $document->getId()]) + ->findOne(); + + if (!$isRelated) { + $relation->relate($document); + } + } +} diff --git a/custom/Espo/Custom/Hooks/CAdvowareAkten/UpdateLastSyncFromDocuments.php b/custom/Espo/Custom/Hooks/CAkten/UpdateLastSyncFromDocuments.php similarity index 92% rename from custom/Espo/Custom/Hooks/CAdvowareAkten/UpdateLastSyncFromDocuments.php rename to custom/Espo/Custom/Hooks/CAkten/UpdateLastSyncFromDocuments.php index 4de26ac6..a812585c 100644 --- a/custom/Espo/Custom/Hooks/CAdvowareAkten/UpdateLastSyncFromDocuments.php +++ b/custom/Espo/Custom/Hooks/CAkten/UpdateLastSyncFromDocuments.php @@ -1,5 +1,5 @@ from('CDokumente') ->where([ - 'cAdvowareAktenId' => $entity->getId(), + 'cAktenId' => $entity->getId(), 'deleted' => false, 'lastSyncTimestamp!=' => null ]) @@ -55,7 +55,7 @@ class UpdateLastSyncFromDocuments implements BeforeSave } catch (\Exception $e) { // Fehler loggen, aber nicht werfen (um Save nicht zu blockieren) - $GLOBALS['log']->error('CAdvowareAkten UpdateLastSyncFromDocuments Hook Error: ' . $e->getMessage()); + $GLOBALS['log']->error('CAkten UpdateLastSyncFromDocuments Hook Error: ' . $e->getMessage()); } } @@ -68,7 +68,7 @@ class UpdateLastSyncFromDocuments implements BeforeSave ->select(['syncStatus']) ->from('CDokumente') ->where([ - 'cAdvowareAktenId' => $entity->getId(), + 'cAktenId' => $entity->getId(), 'deleted' => false ]) ->build(); diff --git a/custom/Espo/Custom/Hooks/CDokumente/UpdateJunctionSyncStatus.php b/custom/Espo/Custom/Hooks/CDokumente/UpdateJunctionSyncStatus.php index 6777d1d1..35c66744 100644 --- a/custom/Espo/Custom/Hooks/CDokumente/UpdateJunctionSyncStatus.php +++ b/custom/Espo/Custom/Hooks/CDokumente/UpdateJunctionSyncStatus.php @@ -30,12 +30,12 @@ class UpdateJunctionSyncStatus implements AfterSave try { // Set syncStatus = 'unclean' directly on CDokumente entity // (only if it has an AdvowareAkte linked) - if ($entity->get('cAdvowareAktenId')) { + if ($entity->get('cAktenId')) { $entity->set('syncStatus', 'unclean'); $this->entityManager->saveEntity($entity, ['silent' => true, 'skipHooks' => true]); // Trigger parent AdvowareAkte update (will update syncStatus and lastSync via its own hook) - $akte = $this->entityManager->getEntityById('CAdvowareAkten', $entity->get('cAdvowareAktenId')); + $akte = $this->entityManager->getEntityById('CAkten', $entity->get('cAktenId')); if ($akte) { // Just touch the entity to trigger beforeSave hook $this->entityManager->saveEntity($akte, ['silent' => true]); diff --git a/custom/Espo/Custom/Hooks/CKuendigung/CreateAdvowareAkte.php b/custom/Espo/Custom/Hooks/CKuendigung/CreateAdvowareAkte.php index a2271d47..4e316ede 100644 --- a/custom/Espo/Custom/Hooks/CKuendigung/CreateAdvowareAkte.php +++ b/custom/Espo/Custom/Hooks/CKuendigung/CreateAdvowareAkte.php @@ -60,7 +60,7 @@ class CreateAdvowareAkte implements AfterSave $this->entityManager->saveEntity($entity, ['silent' => true, 'skipHooks' => true]); // Synchronisiere Aktennummer - $akte = $this->entityManager->getEntity('CAdvowareAkten', $rkAkteId); + $akte = $this->entityManager->getEntity('CAkten', $rkAkteId); if ($akte) { $this->syncAktennummer($entity, $akte); } @@ -103,7 +103,7 @@ class CreateAdvowareAkte implements AfterSave $akteData['teamsIds'] = $teamsIds; } - $akte = $this->entityManager->createEntity('CAdvowareAkten', $akteData); + $akte = $this->entityManager->createEntity('CAkten', $akteData); if ($akte) { // Verknüpfe mit Kündigung diff --git a/custom/Espo/Custom/Hooks/CKuendigung/SyncAdvowareAkte.php b/custom/Espo/Custom/Hooks/CKuendigung/SyncAdvowareAkte.php index 3009cfa2..677ca32f 100644 --- a/custom/Espo/Custom/Hooks/CKuendigung/SyncAdvowareAkte.php +++ b/custom/Espo/Custom/Hooks/CKuendigung/SyncAdvowareAkte.php @@ -47,7 +47,7 @@ class SyncAdvowareAkte implements AfterRelate $advowareAkteId = $foreignEntity->get('advowareAktenId'); if ($advowareAkteId) { - $advowareAkte = $this->entityManager->getEntity('CAdvowareAkten', $advowareAkteId); + $advowareAkte = $this->entityManager->getEntity('CAkten', $advowareAkteId); if ($advowareAkte) { $GLOBALS['log']->info("CKuendigung SyncAdvowareAkte: Found AdvowareAkte {$advowareAkte->getId()} on Räumungsklage {$foreignEntity->getId()}"); diff --git a/custom/Espo/Custom/Hooks/CMietinkasso/PropagateDocuments.php b/custom/Espo/Custom/Hooks/CMietinkasso/PropagateDocuments.php index bc8042cb..b134214f 100644 --- a/custom/Espo/Custom/Hooks/CMietinkasso/PropagateDocuments.php +++ b/custom/Espo/Custom/Hooks/CMietinkasso/PropagateDocuments.php @@ -47,7 +47,7 @@ class PropagateDocuments implements AfterRelate, AfterUnrelate // Set direct belongsTo relationship on document if ($advowareAkten) { - $foreignEntity->set('cAdvowareAktenId', $advowareAkten->getId()); + $foreignEntity->set('cAktenId', $advowareAkten->getId()); $foreignEntity->set('syncStatus', 'new'); // Mark as new for Advoware sync $this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]); } @@ -96,8 +96,8 @@ class PropagateDocuments implements AfterRelate, AfterUnrelate ->findOne(); // Remove direct belongsTo relationship from document - if ($advowareAkten && $foreignEntity->get('cAdvowareAktenId') === $advowareAkten->getId()) { - $foreignEntity->set('cAdvowareAktenId', null); + if ($advowareAkten && $foreignEntity->get('cAktenId') === $advowareAkten->getId()) { + $foreignEntity->set('cAktenId', null); $this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]); } diff --git a/custom/Espo/Custom/Hooks/CVmhRumungsklage/PropagateDocuments.php b/custom/Espo/Custom/Hooks/CVmhRumungsklage/PropagateDocuments.php index e3e379af..19d8a79c 100644 --- a/custom/Espo/Custom/Hooks/CVmhRumungsklage/PropagateDocuments.php +++ b/custom/Espo/Custom/Hooks/CVmhRumungsklage/PropagateDocuments.php @@ -47,7 +47,7 @@ class PropagateDocuments implements AfterRelate, AfterUnrelate // Set direct belongsTo relationship on document if ($advowareAkten) { - $foreignEntity->set('cAdvowareAktenId', $advowareAkten->getId()); + $foreignEntity->set('cAktenId', $advowareAkten->getId()); $foreignEntity->set('syncStatus', 'new'); // Mark as new for Advoware sync $this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]); } @@ -96,8 +96,8 @@ class PropagateDocuments implements AfterRelate, AfterUnrelate ->findOne(); // Remove direct belongsTo relationship from document - if ($advowareAkten && $foreignEntity->get('cAdvowareAktenId') === $advowareAkten->getId()) { - $foreignEntity->set('cAdvowareAktenId', null); + if ($advowareAkten && $foreignEntity->get('cAktenId') === $advowareAkten->getId()) { + $foreignEntity->set('cAktenId', null); $this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]); } diff --git a/custom/Espo/Custom/Resources/i18n/ar_AR/CAkten.json b/custom/Espo/Custom/Resources/i18n/ar_AR/CAkten.json new file mode 100644 index 00000000..90bc36ae --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/ar_AR/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "الاجتماعات", + "calls": "المكالمات", + "tasks": "مهام" + }, + "labels": { + "Create CAkten": "إنشاء {الكيانTypeTranslated}" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/bg_BG/CAkten.json b/custom/Espo/Custom/Resources/i18n/bg_BG/CAkten.json new file mode 100644 index 00000000..e50272cd --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/bg_BG/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Срещи", + "calls": "Разговори", + "tasks": "Задачи" + }, + "labels": { + "Create CAkten": "Създаване на Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/cs_CZ/CAkten.json b/custom/Espo/Custom/Resources/i18n/cs_CZ/CAkten.json new file mode 100644 index 00000000..7d9a8e22 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/cs_CZ/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Schůzky", + "calls": "Hovory", + "tasks": "Úkoly" + }, + "labels": { + "Create CAkten": "Vytvořit Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/da_DK/CAkten.json b/custom/Espo/Custom/Resources/i18n/da_DK/CAkten.json new file mode 100644 index 00000000..a47fdc36 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/da_DK/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Møder", + "calls": "Opkald", + "tasks": "Opgaver" + }, + "labels": { + "Create CAkten": "Opret Advoware Akten " + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/de_DE/CAkten.json b/custom/Espo/Custom/Resources/i18n/de_DE/CAkten.json index 0e3d15d3..fadc9d25 100644 --- a/custom/Espo/Custom/Resources/i18n/de_DE/CAkten.json +++ b/custom/Espo/Custom/Resources/i18n/de_DE/CAkten.json @@ -1,9 +1,78 @@ { - "links": { - "calls": "Anrufe", - "tasks": "Aufgaben" - }, - "labels": { - "Create CAkten": "Akten erstellen" - } + "links": { + "calls": "Anrufe", + "tasks": "Aufgaben", + "vmhRumungsklage": "Räumungsklagen", + "mietinkasso": "Mietinkasso", + "kuendigungen": "Kündigungen", + "dokumentes": "Dokumente" + }, + "labels": { + "Create CAkten": "Erstellen Akten" + }, + "fields": { + "vmhRumungsklage": "Räumungsklagen", + "mietinkasso": "Mietinkasso", + "aktenzeichen": "Aktenzeichen", + "aktennummer": "Aktennummer", + "syncStatus": "Advoware Sync-Status", + "lastSync": "Advoware Letzter Sync", + "aktivierungsstatus": "Advoware Aktivierungsstatus", + "aiCollectionId": "AI Collection-ID", + "aiAktivierungsstatus": "AI Aktivierungsstatus", + "aiSyncStatus": "AI Sync-Status", + "aiLastSync": "AI Letzter Sync", + "globalSyncStatus": "Globaler Sync-Status", + "globalLastSync": "Globaler letzter Sync", + "syncSchalter": "Sync aktiv", + "dokumentes": "Dokumente" + }, + "options": { + "syncStatus": { + "synced": "Synchronisiert", + "unclean": "Nicht synchronisiert", + "pending_sync": "Synchronisierung ausstehend", + "failed": "Fehlgeschlagen" + }, + "aktivierungsstatus": { + "new": "Neu", + "import": "Import", + "active": "Aktiv", + "paused": "Pausiert", + "deactivated": "Deaktiviert" + }, + "aiAktivierungsstatus": { + "new": "Neu", + "import": "Import", + "active": "Aktiv", + "paused": "Pausiert", + "deactivated": "Deaktiviert" + }, + "aiSyncStatus": { + "synced": "Synchronisiert", + "unclean": "Nicht synchronisiert", + "pending_sync": "Synchronisierung ausstehend", + "failed": "Fehlgeschlagen" + }, + "globalSyncStatus": { + "synced": "Synchronisiert", + "unclean": "Nicht synchronisiert", + "pending_sync": "Synchronisierung ausstehend", + "failed": "Fehlgeschlagen" + } + }, + "tooltips": { + "syncStatus": "Advoware-Synchronisationsstatus: synced = Alle Dokumente synchronisiert, unclean = Mindestens ein Dokument ist neu oder hat Änderungen, pending_sync = Synchronisierung ausstehend, failed = Fehlgeschlagen.", + "lastSync": "Zeitpunkt der letzten erfolgreichen Advoware-Synchronisation", + "aktivierungsstatus": "Advoware Aktivierungsstatus: new = Neu angelegt, import = Aus Advoware importiert, active = Aktiv synchronisiert, paused = Pausiert, deactivated = Deaktiviert", + "aiCollectionId": "Eindeutige ID der KI-Datenbank/Collection für diese Akte", + "aiAktivierungsstatus": "KI-Sync Aktivierungsstatus: new = Neu, import = Importiert, active = Aktiv synchronisiert, paused = Pausiert, deactivated = Deaktiviert", + "aiSyncStatus": "KI-Synchronisationsstatus: synced = Alle Dokumente synchronisiert, unclean = Änderungen vorhanden, pending_sync = Ausstehend, failed = Fehlgeschlagen", + "aiLastSync": "Zeitpunkt der letzten erfolgreichen KI-Synchronisation", + "advowareSyncEnabled": "Advoware-Synchronisation für diese Akte aktivieren oder deaktivieren", + "aiSyncEnabled": "KI-Synchronisation für diese Akte aktivieren oder deaktivieren", + "globalSyncStatus": "Übergreifender Sync-Status über alle Synchronisationssysteme", + "globalLastSync": "Zeitpunkt des letzten Sync-Vorgangs über alle Systeme", + "syncSchalter": "Globaler Sync-Schalter: aktiviert oder deaktiviert alle Synchronisationen für diese Akte" + } } \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/de_DE/CAktenCDokumente.json b/custom/Espo/Custom/Resources/i18n/de_DE/CAktenCDokumente.json new file mode 100644 index 00000000..c76f4124 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/de_DE/CAktenCDokumente.json @@ -0,0 +1,33 @@ +{ + "labels": { + "Create CAktenCDokumente": "Advoware-Dokument-Verknüpfung erstellen", + "CAktenCDokumente": "Advoware-Dokument-Verknüpfungen" + }, + "fields": { + "cAkten": "Akte", + "cAktenId": "Akten-ID", + "cDokumente": "Dokument", + "cDokumenteId": "Dokument ID", + "hnr": "HNR", + "syncStatus": "Sync-Status", + "syncedHash": "Sync-Hash", + "deleted": "Gelöscht" + }, + "links": { + "cAkten": "Akte", + "cDokumente": "Dokument" + }, + "options": { + "syncStatus": { + "new": "Neu", + "changed": "Geändert", + "synced": "Synchronisiert", + "deleted": "Gelöscht" + } + }, + "tooltips": { + "hnr": "Advoware HNR Referenz für dieses Dokument", + "syncStatus": "Synchronisierungsstatus mit Advoware", + "syncedHash": "Hash-Wert des zuletzt synchronisierten Dokument-Zustands (zur Änderungserkennung)" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/de_DE/CDokumente.json b/custom/Espo/Custom/Resources/i18n/de_DE/CDokumente.json index b40aa4a3..96658b1f 100644 --- a/custom/Espo/Custom/Resources/i18n/de_DE/CDokumente.json +++ b/custom/Espo/Custom/Resources/i18n/de_DE/CDokumente.json @@ -3,15 +3,12 @@ "dokument": "Download", "preview": "Vorschau", "blake3hash": "Blake3-Hash", - "cAdvowareAkten": "Advoware Akte", - "cAdvowareAktenId": "Advoware Akten-ID", - "cAdvowareAktenName": "Advoware Aktenname", "hnr": "HNR (Advoware)", - "syncStatus": "Sync-Status", - "syncedHash": "Sync-Hash", + "syncStatus": "Advoware Sync-Status", + "syncedHash": "Advoware Sync-Hash", "usn": "USN", "dateipfad": "Dateipfad", - "lastSyncTimestamp": "Letzter Sync", + "lastSyncTimestamp": "Advoware Letzter Sync", "advowareArt": "Advoware Art", "advowareBemerkung": "Advoware Bemerkung", "contactsvmhdokumente": "Freigegebene Nutzer", @@ -26,10 +23,17 @@ "aIKnowledges": "AI Knowledge", "aiKnowledgeAiDocumentId": "AI Document ID", "aiKnowledgeSyncstatus": "AI Sync-Status", - "aiKnowledgeLastSync": "AI Letzter Sync" + "aiKnowledgeLastSync": "AI Letzter Sync", + "cAkten": "Akte", + "cAktenId": "Akten-ID", + "cAktenName": "Aktenname", + "aiCollectionId": "AI Collection-ID", + "aiSyncHash": "AI Sync-Hash", + "aiSyncStatus": "AI Sync-Status", + "aiLastSync": "AI Letzter Sync", + "aiFileId": "AI File-ID" }, "links": { - "cAdvowareAkten": "Advoware Akte", "contactsvmhdokumente": "Freigegebene Nutzer", "vmhMietverhltnisesDokumente": "Mietverhältnisse", "vmhErstgespraechsdokumente": "Erstgespräche", @@ -39,7 +43,8 @@ "mietobjekt2dokumente": "Mietobjekte", "mietinkassosdokumente": "Mietinkasso", "kndigungensdokumente": "Kündigungen", - "aIKnowledges": "AI Knowledge" + "aIKnowledges": "AI Knowledge", + "cAkten": "Akte" }, "labels": { "Create CDokumente": "Dokument erstellen" @@ -47,13 +52,18 @@ "tooltips": { "blake3hash": "Kryptografischer Blake3-Hash der Datei (schneller und sicherer als MD5/SHA256)", "hnr": "Hierarchische Referenznummer in Advoware", - "syncStatus": "Status der Synchronisation mit Advoware: new=neu, unclean=geändert, synced=synchronisiert, failed=Fehler, unsupported=nicht unterstützt", - "syncedHash": "Hash-Wert bei letzter erfolgreicher Synchronisation", + "syncStatus": "Advoware Sync-Status: new=neu, unclean=geändert, synced=synchronisiert, failed=Fehler, unsupported=nicht unterstützt", + "syncedHash": "Hash-Wert bei letzter erfolgreicher Advoware-Synchronisation", "usn": "Update Sequence Number - Versionsnummer für Synchronisation", "dateipfad": "Windows-Dateipfad des Dokuments in Advoware", - "lastSyncTimestamp": "Zeitstempel der letzten erfolgreichen Synchronisation mit Advoware", + "lastSyncTimestamp": "Zeitstempel der letzten erfolgreichen Advoware-Synchronisation", "advowareArt": "Dokumententyp/Art wie in Advoware klassifiziert", - "advowareBemerkung": "Bemerkungsfeld aus Advoware - wird bei Sync übernommen" + "advowareBemerkung": "Bemerkungsfeld aus Advoware - wird bei Sync übernommen", + "aiCollectionId": "ID der KI-Collection, in der dieses Dokument indexiert ist", + "aiSyncHash": "Hash-Wert bei letzter erfolgreicher KI-Synchronisation", + "aiSyncStatus": "Synchronisationsstatus mit der KI-Datenbank: new=neu, unclean=geändert, synced=synchronisiert, failed=Fehler, unsupported=nicht unterstützt", + "aiLastSync": "Zeitstempel der letzten erfolgreichen KI-Synchronisation", + "aiFileId": "Datei-ID in der KI-Datenbank nach erfolgter Synchronisation" }, "options": { "syncStatus": { @@ -62,6 +72,13 @@ "synced": "Synchronisiert", "failed": "Fehler", "unsupported": "Nicht unterstützt" + }, + "aiSyncStatus": { + "new": "Neu", + "unclean": "Geändert", + "synced": "Synchronisiert", + "failed": "Fehler", + "unsupported": "Nicht unterstützt" } } } \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/de_DE/Global.json b/custom/Espo/Custom/Resources/i18n/de_DE/Global.json index fc880729..e081ca79 100644 --- a/custom/Espo/Custom/Resources/i18n/de_DE/Global.json +++ b/custom/Espo/Custom/Resources/i18n/de_DE/Global.json @@ -6,6 +6,9 @@ "Log": "Log" }, "scopeNamesPlural": { - "CAdvowareAkten": "Advoware Akten" + "CAkten": "Akten" + }, + "scopeNames": { + "CAkten": "Akten" } } \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/el_GR/CAkten.json b/custom/Espo/Custom/Resources/i18n/el_GR/CAkten.json new file mode 100644 index 00000000..623b494e --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/el_GR/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Συναντήσεις", + "calls": "Κλήσεις", + "tasks": "Εργασίες" + }, + "labels": { + "Create CAkten": "Δημιουργία Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/en_GB/CAkten.json b/custom/Espo/Custom/Resources/i18n/en_GB/CAkten.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/en_GB/CAkten.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/en_US/CAkten.json b/custom/Espo/Custom/Resources/i18n/en_US/CAkten.json index 0517bc2c..44a07527 100644 --- a/custom/Espo/Custom/Resources/i18n/en_US/CAkten.json +++ b/custom/Espo/Custom/Resources/i18n/en_US/CAkten.json @@ -1,12 +1,79 @@ -{ - "fields": { - }, - "links": { - "meetings": "Meetings", - "calls": "Calls", - "tasks": "Tasks" - }, - "labels": { - "Create CAkten": "Create Akten" - } -} +{ + "links": { + "meetings": "Meetings", + "calls": "Calls", + "tasks": "Tasks", + "vmhRumungsklage": "Eviction Lawsuits", + "mietinkasso": "Rent Collection", + "kuendigungen": "Terminations", + "dokumentes": "Documents" + }, + "labels": { + "Create CAkten": "Erstellen Akten" + }, + "fields": { + "vmhRumungsklage": "Eviction Lawsuit", + "mietinkasso": "Rent Collection", + "aktenzeichen": "File Reference", + "aktennummer": "File Number", + "syncStatus": "Advoware Sync Status", + "lastSync": "Advoware Last Sync", + "aktivierungsstatus": "Advoware Activation Status", + "aiCollectionId": "AI Collection ID", + "aiAktivierungsstatus": "AI Activation Status", + "aiSyncStatus": "AI Sync Status", + "aiLastSync": "AI Last Sync", + "globalSyncStatus": "Global Sync Status", + "globalLastSync": "Global Last Sync", + "syncSchalter": "Sync Active", + "dokumentes": "Documents" + }, + "options": { + "syncStatus": { + "synced": "Synchronized", + "unclean": "Not Synchronized", + "pending_sync": "Synchronization Pending", + "failed": "Failed" + }, + "aktivierungsstatus": { + "new": "New", + "import": "Import", + "active": "Active", + "paused": "Paused", + "deactivated": "Deactivated" + }, + "aiAktivierungsstatus": { + "new": "New", + "import": "Import", + "active": "Active", + "paused": "Paused", + "deactivated": "Deactivated" + }, + "aiSyncStatus": { + "synced": "Synchronized", + "unclean": "Not Synchronized", + "pending_sync": "Synchronization Pending", + "failed": "Failed" + }, + "globalSyncStatus": { + "synced": "Synchronized", + "unclean": "Not Synchronized", + "pending_sync": "Synchronization Pending", + "failed": "Failed" + } + }, + "tooltips": { + "syncStatus": "Advoware sync status: synced = All documents synchronized, unclean = At least one document changed, pending_sync = Pending, failed = Failed.", + "lastSync": "Timestamp of last successful Advoware synchronization", + "aktivierungsstatus": "Advoware activation status: new = Newly created, import = Imported from Advoware, active = Actively synchronized, paused = Paused, deactivated = Deactivated", + "aiCollectionId": "Unique ID of the AI database/collection for this file", + "aiAktivierungsstatus": "AI sync activation status: new = New, import = Imported, active = Actively synchronized, paused = Paused, deactivated = Deactivated", + "aiSyncStatus": "AI sync status: synced = All documents synchronized, unclean = Changes pending, pending_sync = Pending, failed = Failed", + "aiLastSync": "Timestamp of last successful AI synchronization", + "advowareSyncEnabled": "Enable or disable Advoware synchronization for this file", + "aiSyncEnabled": "Enable or disable AI synchronization for this file", + "globalSyncStatus": "Overall sync status across all synchronization systems", + "globalLastSync": "Timestamp of last sync across all systems", + "syncSchalter": "Global sync switch: enables or disables all synchronizations for this file" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/en_US/CAktenCDokumente.json b/custom/Espo/Custom/Resources/i18n/en_US/CAktenCDokumente.json new file mode 100644 index 00000000..c384016d --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/en_US/CAktenCDokumente.json @@ -0,0 +1,33 @@ +{ + "labels": { + "Create CAktenCDokumente": "Create Advoware Document Link", + "CAktenCDokumente": "Advoware Document Links" + }, + "fields": { + "cAkten": "File", + "cAktenId": "File ID", + "cDokumente": "Document", + "cDokumenteId": "Document ID", + "hnr": "HNR", + "syncStatus": "Sync Status", + "syncedHash": "Sync Hash", + "deleted": "Deleted" + }, + "links": { + "cAkten": "File", + "cDokumente": "Document" + }, + "options": { + "syncStatus": { + "new": "New", + "changed": "Changed", + "synced": "Synced", + "deleted": "Deleted" + } + }, + "tooltips": { + "hnr": "Advoware HNR reference for this document", + "syncStatus": "Synchronization status with Advoware", + "syncedHash": "Hash value of the last synchronized document state (for change detection)" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/en_US/CDokumente.json b/custom/Espo/Custom/Resources/i18n/en_US/CDokumente.json index 41d5919f..9ce44e86 100644 --- a/custom/Espo/Custom/Resources/i18n/en_US/CDokumente.json +++ b/custom/Espo/Custom/Resources/i18n/en_US/CDokumente.json @@ -2,15 +2,12 @@ "fields": { "dokument": "Download", "preview": "Preview", - "cAdvowareAkten": "Advoware File", - "cAdvowareAktenId": "Advoware File ID", - "cAdvowareAktenName": "Advoware File Name", "hnr": "HNR (Advoware)", - "syncStatus": "Sync Status", - "syncedHash": "Sync Hash", + "syncStatus": "Advoware Sync Status", + "syncedHash": "Advoware Sync Hash", "usn": "USN", "dateipfad": "File Path", - "lastSyncTimestamp": "Last Sync", + "lastSyncTimestamp": "Advoware Last Sync", "advowareArt": "Advoware Type", "advowareBemerkung": "Advoware Remarks", "contactsvmhdokumente": "Portal Users", @@ -26,10 +23,17 @@ "aIKnowledges": "AI Knowledge", "aiKnowledgeAiDocumentId": "AI Document ID", "aiKnowledgeSyncstatus": "AI Sync Status", - "aiKnowledgeLastSync": "AI Last Sync" + "aiKnowledgeLastSync": "AI Last Sync", + "cAkten": "File", + "cAktenId": "File ID", + "cAktenName": "File Name", + "aiCollectionId": "AI Collection ID", + "aiSyncHash": "AI Sync Hash", + "aiSyncStatus": "AI Sync Status", + "aiLastSync": "AI Last Sync", + "aiFileId": "AI File ID" }, "links": { - "cAdvowareAkten": "Advoware File", "contactsvmhdokumente": "Portal Users", "vmhMietverhltnisesDokumente": "Tenancies", "vmhErstgespraechsdokumente": "Initial Consultations", @@ -39,7 +43,8 @@ "mietobjekt2dokumente": "Properties", "mietinkassosdokumente": "Rent Collection", "kndigungensdokumente": "Terminations", - "aIKnowledges": "AI Knowledge" + "aIKnowledges": "AI Knowledge", + "cAkten": "File" }, "labels": { "Create CDokumente": "Create Dokument" @@ -47,18 +52,24 @@ "layouts": { "listRaeumungsKl": "List (RaeumungsKl)", "listForAdvowareAkten": "List for Advoware Akten", - "listForAIKnowledge": "List for AI Knowledge" + "listForAIKnowledge": "List for AI Knowledge", + "listForAkten": "List for Akten" }, "tooltips": { "blake3hash": "Cryptographic Blake3 hash of the file (faster and more secure than MD5/SHA256)", "hnr": "Hierarchical reference number in Advoware", - "syncStatus": "Sync status with Advoware: new=new, unclean=changed, synced=synchronized, failed=error, unsupported=not supported", - "syncedHash": "Hash value at last successful synchronization", + "syncStatus": "Advoware sync status: new=new, unclean=changed, synced=synchronized, failed=error, unsupported=not supported", + "syncedHash": "Hash value at last successful Advoware synchronization", "usn": "Update Sequence Number - Version number for synchronization", "dateipfad": "Windows file path of the document in Advoware", - "lastSyncTimestamp": "Timestamp of last successful synchronization with Advoware", + "lastSyncTimestamp": "Timestamp of last successful Advoware synchronization", "advowareArt": "Document type/kind as classified in Advoware", - "advowareBemerkung": "Remarks field from Advoware - synced automatically" + "advowareBemerkung": "Remarks field from Advoware - synced automatically", + "aiCollectionId": "ID of the AI collection in which this document is indexed", + "aiSyncHash": "Hash value at last successful AI synchronization", + "aiSyncStatus": "AI sync status: new=new, unclean=changed, synced=synchronized, failed=error, unsupported=not supported", + "aiLastSync": "Timestamp of last successful AI synchronization", + "aiFileId": "File ID in the AI database after successful synchronization" }, "options": { "syncStatus": { @@ -67,6 +78,13 @@ "synced": "Synchronized", "failed": "Failed", "unsupported": "Unsupported" + }, + "aiSyncStatus": { + "new": "New", + "unclean": "Changed", + "synced": "Synchronized", + "failed": "Failed", + "unsupported": "Unsupported" } } } \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/en_US/Global.json b/custom/Espo/Custom/Resources/i18n/en_US/Global.json index 1d2068e5..6f8a16e3 100644 --- a/custom/Espo/Custom/Resources/i18n/en_US/Global.json +++ b/custom/Espo/Custom/Resources/i18n/en_US/Global.json @@ -15,7 +15,7 @@ "CMietinkasso": "Mietinkasso", "CKuendigung": "Kündigung", "CPuls": "Puls", - "CAdvowareAkten": "Advoware Akten", + "CAkten": "Akten", "CAIKnowledge": "AI Knowledge" }, "scopeNamesPlural": { @@ -34,7 +34,7 @@ "CMietinkasso": "Mietinkassa", "CKuendigung": "Kündigungen", "CPuls": "Pulse", - "CAdvowareAkten": "Advoware Akten", + "CAkten": "Akten", "CAIKnowledge": "AI Knowledge" } } \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/es_ES/CAkten.json b/custom/Espo/Custom/Resources/i18n/es_ES/CAkten.json new file mode 100644 index 00000000..f1a1aff1 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/es_ES/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Reuniones", + "calls": "Llamadas", + "tasks": "Tareas" + }, + "labels": { + "Create CAkten": "Crear Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/es_MX/CAkten.json b/custom/Espo/Custom/Resources/i18n/es_MX/CAkten.json new file mode 100644 index 00000000..c9efb4fd --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/es_MX/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Presentaciones", + "calls": "Llamadas", + "tasks": "Tareas" + }, + "labels": { + "Create CAkten": "Crear Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/fa_IR/CAkten.json b/custom/Espo/Custom/Resources/i18n/fa_IR/CAkten.json new file mode 100644 index 00000000..b25acc0a --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/fa_IR/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "جلسات", + "calls": "تماس ها", + "tasks": "وظایف" + }, + "labels": { + "Create CAkten": "ایجاد Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/fr_FR/CAkten.json b/custom/Espo/Custom/Resources/i18n/fr_FR/CAkten.json new file mode 100644 index 00000000..3909abb4 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/fr_FR/CAkten.json @@ -0,0 +1,5 @@ +{ + "labels": { + "Create CAkten": "Créer un Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/hr_HR/CAkten.json b/custom/Espo/Custom/Resources/i18n/hr_HR/CAkten.json new file mode 100644 index 00000000..d1bfd477 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/hr_HR/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Sastanci", + "calls": "Pozivi", + "tasks": "Zadaci" + }, + "labels": { + "Create CAkten": "Kreiraj Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/hu_HU/CAkten.json b/custom/Espo/Custom/Resources/i18n/hu_HU/CAkten.json new file mode 100644 index 00000000..2f1ac4f7 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/hu_HU/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "találkozók", + "calls": "felhívja", + "tasks": "Feladatok" + }, + "labels": { + "Create CAkten": "{EntityTypeTranslated} létrehozása" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/id_ID/CAkten.json b/custom/Espo/Custom/Resources/i18n/id_ID/CAkten.json new file mode 100644 index 00000000..b5f03611 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/id_ID/CAkten.json @@ -0,0 +1,5 @@ +{ + "labels": { + "Create CAkten": "Buat Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/it_IT/CAkten.json b/custom/Espo/Custom/Resources/i18n/it_IT/CAkten.json new file mode 100644 index 00000000..7a377698 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/it_IT/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Riunioni", + "calls": "Chiamate", + "tasks": "Compiti" + }, + "labels": { + "Create CAkten": "Crea Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/ja_JP/CAkten.json b/custom/Espo/Custom/Resources/i18n/ja_JP/CAkten.json new file mode 100644 index 00000000..e8947418 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/ja_JP/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "会議", + "calls": "通話", + "tasks": "タスク" + }, + "labels": { + "Create CAkten": "Advoware Akten を作成する" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/lt_LT/CAkten.json b/custom/Espo/Custom/Resources/i18n/lt_LT/CAkten.json new file mode 100644 index 00000000..d83d2394 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/lt_LT/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Susitikimai", + "calls": "Skambučiai", + "tasks": "Užduotys" + }, + "labels": { + "Create CAkten": "Sukurti Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/lv_LV/CAkten.json b/custom/Espo/Custom/Resources/i18n/lv_LV/CAkten.json new file mode 100644 index 00000000..ad04c9b4 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/lv_LV/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Tikšanās", + "calls": "Zvani", + "tasks": "Uzdevumi" + }, + "labels": { + "Create CAkten": "Izveidot Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/nb_NO/CAkten.json b/custom/Espo/Custom/Resources/i18n/nb_NO/CAkten.json new file mode 100644 index 00000000..83ef0907 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/nb_NO/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Møter", + "calls": "Samtaler", + "tasks": "Oppgaver" + }, + "labels": { + "Create CAkten": "Opprett Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/nl_NL/CAkten.json b/custom/Espo/Custom/Resources/i18n/nl_NL/CAkten.json new file mode 100644 index 00000000..ac988a6f --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/nl_NL/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Vergaderingen", + "calls": "Gesprekken", + "tasks": "Taken" + }, + "labels": { + "Create CAkten": "Creëer Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/pl_PL/CAkten.json b/custom/Espo/Custom/Resources/i18n/pl_PL/CAkten.json new file mode 100644 index 00000000..f2337634 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/pl_PL/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Spotkania", + "calls": "Połączenia", + "tasks": "Zadania" + }, + "labels": { + "Create CAkten": "Utwórz Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/pt_BR/CAkten.json b/custom/Espo/Custom/Resources/i18n/pt_BR/CAkten.json new file mode 100644 index 00000000..6162feec --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/pt_BR/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Reuniões", + "calls": "Ligações", + "tasks": "Tarefas" + }, + "labels": { + "Create CAkten": "Criar Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/pt_PT/CAkten.json b/custom/Espo/Custom/Resources/i18n/pt_PT/CAkten.json new file mode 100644 index 00000000..1c82f85b --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/pt_PT/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Reuniões", + "calls": "Chamadas", + "tasks": "Tarefas" + }, + "labels": { + "Create CAkten": "Criar Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/ro_RO/CAkten.json b/custom/Espo/Custom/Resources/i18n/ro_RO/CAkten.json new file mode 100644 index 00000000..592abbb7 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/ro_RO/CAkten.json @@ -0,0 +1,5 @@ +{ + "labels": { + "Create CAkten": "Creare Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/ru_RU/CAkten.json b/custom/Espo/Custom/Resources/i18n/ru_RU/CAkten.json new file mode 100644 index 00000000..c0079836 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/ru_RU/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Встречи", + "calls": "Звонки", + "tasks": "Задачи" + }, + "labels": { + "Create CAkten": "Создать Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/sk_SK/CAkten.json b/custom/Espo/Custom/Resources/i18n/sk_SK/CAkten.json new file mode 100644 index 00000000..62d77c24 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/sk_SK/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Stretnutia", + "calls": "Hovory", + "tasks": "Úlohy" + }, + "labels": { + "Create CAkten": "Vytvoriť Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/sl_SI/CAkten.json b/custom/Espo/Custom/Resources/i18n/sl_SI/CAkten.json new file mode 100644 index 00000000..6b64323b --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/sl_SI/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Srečanja", + "calls": "Klici", + "tasks": "Naloge" + }, + "labels": { + "Create CAkten": "Ustvari Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/sr_RS/CAkten.json b/custom/Espo/Custom/Resources/i18n/sr_RS/CAkten.json new file mode 100644 index 00000000..295973ab --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/sr_RS/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Ročišta", + "calls": "Pozivi", + "tasks": "Zadaci" + }, + "labels": { + "Create CAkten": "Napravi Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/sv_SE/CAkten.json b/custom/Espo/Custom/Resources/i18n/sv_SE/CAkten.json new file mode 100644 index 00000000..b3de4237 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/sv_SE/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Möten", + "calls": "Samtal", + "tasks": "Uppgifter" + }, + "labels": { + "Create CAkten": "Skapa Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/th_TH/CAkten.json b/custom/Espo/Custom/Resources/i18n/th_TH/CAkten.json new file mode 100644 index 00000000..1af3f0fc --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/th_TH/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "การประชุม", + "calls": "โทร", + "tasks": "งาน" + }, + "labels": { + "Create CAkten": "สร้าง Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/tr_TR/CAkten.json b/custom/Espo/Custom/Resources/i18n/tr_TR/CAkten.json new file mode 100644 index 00000000..91dc60f5 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/tr_TR/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Toplantılar", + "calls": "(Seslenme)", + "tasks": "Görevler" + }, + "labels": { + "Create CAkten": "Advoware Akten oluştur" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/uk_UA/CAkten.json b/custom/Espo/Custom/Resources/i18n/uk_UA/CAkten.json new file mode 100644 index 00000000..faa41abc --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/uk_UA/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Зустрічі", + "calls": "Дзвінки", + "tasks": "Завдання" + }, + "labels": { + "Create CAkten": "Створити Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/ur_IN/CAkten.json b/custom/Espo/Custom/Resources/i18n/ur_IN/CAkten.json new file mode 100644 index 00000000..0e5511d1 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/ur_IN/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "ملاقاتیں", + "calls": "کالز", + "tasks": "کام" + }, + "labels": { + "Create CAkten": "{entityTypetranslated} بنائیں" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/vi_VN/CAkten.json b/custom/Espo/Custom/Resources/i18n/vi_VN/CAkten.json new file mode 100644 index 00000000..5a00b835 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/vi_VN/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "Cuộc hẹn", + "calls": "Cuộc gọi", + "tasks": "Nhiệm vụ" + }, + "labels": { + "Create CAkten": "Tạo Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/zh_CN/CAkten.json b/custom/Espo/Custom/Resources/i18n/zh_CN/CAkten.json new file mode 100644 index 00000000..8334cea7 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/zh_CN/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "会议", + "calls": "通话", + "tasks": "任务" + }, + "labels": { + "Create CAkten": "创建 Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/i18n/zh_TW/CAkten.json b/custom/Espo/Custom/Resources/i18n/zh_TW/CAkten.json new file mode 100644 index 00000000..2c889835 --- /dev/null +++ b/custom/Espo/Custom/Resources/i18n/zh_TW/CAkten.json @@ -0,0 +1,10 @@ +{ + "links": { + "meetings": "會議", + "calls": "通話", + "tasks": "任務" + }, + "labels": { + "Create CAkten": "建立Advoware Akten" + } +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/layouts/CAkten/bottomPanelsDetail.json b/custom/Espo/Custom/Resources/layouts/CAkten/bottomPanelsDetail.json new file mode 100644 index 00000000..639840cd --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CAkten/bottomPanelsDetail.json @@ -0,0 +1,30 @@ +{ + "_delimiter_": { + "disabled": true + }, + "activities": { + "disabled": true + }, + "history": { + "disabled": true + }, + "_tabBreak_0": { + "index": 0, + "tabBreak": true, + "tabLabel": "Dokumente" + }, + "dokumentes": { + "index": 1, + "view": "views/record/panels/relationship", + "layout": "listForAkten" + }, + "_tabBreak_1": { + "index": 2, + "tabBreak": true, + "tabLabel": "Ereignisse" + }, + "stream": { + "sticked": false, + "index": 3 + } +} diff --git a/custom/Espo/Custom/Resources/layouts/CAkten/defaultSidePanel.json b/custom/Espo/Custom/Resources/layouts/CAkten/defaultSidePanel.json new file mode 100644 index 00000000..b2bfe445 --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CAkten/defaultSidePanel.json @@ -0,0 +1,14 @@ +[ + { + "name": ":assignedUser" + }, + { + "name": "teams" + }, + { + "name": "vmhRumungsklage" + }, + { + "name": "mietinkasso" + } +] \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/layouts/CAkten/detail.json b/custom/Espo/Custom/Resources/layouts/CAkten/detail.json new file mode 100644 index 00000000..8f9b6d52 --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CAkten/detail.json @@ -0,0 +1,78 @@ +[ + { + "rows": [ + [ + { + "name": "name" + }, + { + "name": "syncSchalter" + } + ], + [ + { + "name": "globalSyncStatus" + }, + { + "name": "globalLastSync" + } + ] + ], + "style": "default", + "label": "Übersicht" + }, + { + "rows": [ + [ + { + "name": "aktennummer" + }, + { + "name": "aktenzeichen" + } + ], + [ + {}, + { + "name": "aktivierungsstatus" + } + ], + [ + { + "name": "syncStatus" + }, + { + "name": "lastSync" + } + ] + ], + "style": "default", + "label": "Advoware-Sync" + }, + { + "rows": [ + [ + {}, + { + "name": "aiAktivierungsstatus" + } + ], + [ + { + "name": "aiSyncStatus" + }, + { + "name": "aiLastSync" + } + ], + [ + { + "name": "aiCollectionId" + }, + {} + ] + ], + "style": "default", + "label": "AI-Sync" + } +] \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/layouts/CAkten/detailSmall.json b/custom/Espo/Custom/Resources/layouts/CAkten/detailSmall.json new file mode 100644 index 00000000..e3bdd53d --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CAkten/detailSmall.json @@ -0,0 +1,21 @@ +[ + { + "rows": [ + [ + { + "name": "name" + } + ], + [ + { + "name": "mietinkasso" + }, + { + "name": "vmhRumungsklage" + } + ] + ], + "style": "default", + "label": "" + } +] \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/layouts/CAkten/listSmall.json b/custom/Espo/Custom/Resources/layouts/CAkten/listSmall.json new file mode 100644 index 00000000..989dd5fe --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CAkten/listSmall.json @@ -0,0 +1,14 @@ +[ + { + "name": "name", + "link": true + }, + { + "name": "mietinkasso", + "width": 20 + }, + { + "name": "vmhRumungsklage", + "width": 20 + } +] \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/layouts/CAkten/relationships/dokumentes.json b/custom/Espo/Custom/Resources/layouts/CAkten/relationships/dokumentes.json new file mode 100644 index 00000000..2309fcb1 --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CAkten/relationships/dokumentes.json @@ -0,0 +1,39 @@ +[ + { + "name": "name", + "link": true, + "width": 20 + }, + { + "name": "advowareArt", + "align": "left", + "width": 12 + }, + { + "name": "advowareBemerkung", + "align": "left", + "notSortable": true, + "width": 18 + }, + { + "name": "syncStatus", + "align": "left", + "width": 12 + }, + { + "name": "lastSyncTimestamp", + "align": "left", + "width": 13 + }, + { + "name": "dokument", + "notSortable": true, + "align": "left", + "width": 12 + }, + { + "name": "createdAt", + "align": "left", + "width": 13 + } +] \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/layouts/CDokumente/detail.json b/custom/Espo/Custom/Resources/layouts/CDokumente/detail.json index ce12cd56..a4f42b4d 100644 --- a/custom/Espo/Custom/Resources/layouts/CDokumente/detail.json +++ b/custom/Espo/Custom/Resources/layouts/CDokumente/detail.json @@ -64,7 +64,7 @@ "rows": [ [ { - "name": "cAdvowareAkten" + "name": "cAkten" }, { "name": "dateipfad" diff --git a/custom/Espo/Custom/Resources/layouts/CDokumente/listForAkten.json b/custom/Espo/Custom/Resources/layouts/CDokumente/listForAkten.json new file mode 100644 index 00000000..bacda3b3 --- /dev/null +++ b/custom/Espo/Custom/Resources/layouts/CDokumente/listForAkten.json @@ -0,0 +1,40 @@ +[ + { + "name": "name", + "link": true + }, + { + "name": "advowareArt", + "align": "left" + }, + { + "name": "syncStatus", + "align": "left" + }, + { + "name": "lastSyncTimestamp", + "align": "left" + }, + { + "name": "aiSyncStatus", + "align": "left" + }, + { + "name": "aiLastSync", + "align": "left" + }, + { + "name": "description", + "notSortable": true, + "align": "left" + }, + { + "name": "dokument", + "notSortable": true, + "align": "left" + }, + { + "name": "createdAt", + "align": "left" + } +] diff --git a/custom/Espo/Custom/Resources/metadata/aclDefs/CAkten.json b/custom/Espo/Custom/Resources/metadata/aclDefs/CAkten.json new file mode 100644 index 00000000..64588261 --- /dev/null +++ b/custom/Espo/Custom/Resources/metadata/aclDefs/CAkten.json @@ -0,0 +1,4 @@ +{ + "contactLink": null, + "accountLink": null +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/metadata/clientDefs/CAdvowareAkten.json b/custom/Espo/Custom/Resources/metadata/clientDefs/CAdvowareAkten.json.bak similarity index 100% rename from custom/Espo/Custom/Resources/metadata/clientDefs/CAdvowareAkten.json rename to custom/Espo/Custom/Resources/metadata/clientDefs/CAdvowareAkten.json.bak diff --git a/custom/Espo/Custom/Resources/metadata/clientDefs/CAkten.json b/custom/Espo/Custom/Resources/metadata/clientDefs/CAkten.json new file mode 100644 index 00000000..5d7f28e5 --- /dev/null +++ b/custom/Espo/Custom/Resources/metadata/clientDefs/CAkten.json @@ -0,0 +1,59 @@ +{ + "controller": "controllers/record", + "boolFilterList": [ + "onlyMy" + ], + "sidePanels": { + "detail": [ + { + "name": "activities", + "reference": "activities" + }, + { + "name": "history", + "reference": "history" + }, + { + "name": "tasks", + "reference": "tasks" + } + ] + }, + "bottomPanels": { + "detail": [ + { + "name": "activities", + "reference": "activities", + "disabled": true + }, + { + "name": "history", + "reference": "history", + "disabled": true + }, + { + "name": "stream", + "label": "Ereignisse", + "reference": "stream", + "stacked": false + } + ] + }, + "relationshipPanels": { + "vmhRumungsklage": { + "layout": null, + "selectPrimaryFilterName": null + }, + "mietinkasso": { + "layout": null, + "selectPrimaryFilterName": null + }, + "dokumentes": { + "layout": "listForAkten", + "selectPrimaryFilterName": null + } + }, + "kanbanViewMode": false, + "color": null, + "iconClass": null +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/metadata/clientDefs/CDokumente.json b/custom/Espo/Custom/Resources/metadata/clientDefs/CDokumente.json index b7b9c11c..92fc32ac 100644 --- a/custom/Espo/Custom/Resources/metadata/clientDefs/CDokumente.json +++ b/custom/Espo/Custom/Resources/metadata/clientDefs/CDokumente.json @@ -47,10 +47,6 @@ "layout": null, "selectPrimaryFilterName": null }, - "advowareAktens": { - "layout": null, - "selectPrimaryFilterName": null - }, "aIKnowledges": { "layout": null, "selectPrimaryFilterName": null diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CAdvowareAkten.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CAdvowareAkten.json.bak similarity index 89% rename from custom/Espo/Custom/Resources/metadata/entityDefs/CAdvowareAkten.json rename to custom/Espo/Custom/Resources/metadata/entityDefs/CAdvowareAkten.json.bak index f510a173..b47b0eaf 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CAdvowareAkten.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CAdvowareAkten.json.bak @@ -103,17 +103,6 @@ "default": "new", "tooltip": true, "isCustom": true - }, - "dokumentes": { - "type": "linkMultiple", - "layoutDetailDisabled": false, - "layoutMassUpdateDisabled": false, - "layoutListDisabled": false, - "noLoad": false, - "importDisabled": false, - "exportDisabled": false, - "customizationDisabled": false, - "isCustom": true } }, "links": { @@ -174,13 +163,6 @@ "entity": "CKuendigung", "audited": false, "isCustom": true - }, - "dokumentes": { - "type": "hasMany", - "foreign": "cAdvowareAkten", - "entity": "CDokumente", - "audited": true, - "isCustom": true } }, "collection": { diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CAkten.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CAkten.json index d521dd6a..8bb783f9 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CAkten.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CAkten.json @@ -34,6 +34,172 @@ "teams": { "type": "linkMultiple", "view": "views/fields/teams" + }, + "vmhRumungsklage": { + "type": "link" + }, + "mietinkasso": { + "type": "link" + }, + "aktenzeichen": { + "type": "varchar", + "required": true, + "maxLength": 100, + "copyToClipboard": true, + "readOnlyAfterCreate": true, + "options": [], + "isCustom": true + }, + "aktennummer": { + "type": "int", + "required": true, + "readOnlyAfterCreate": true, + "disableFormatting": true, + "isCustom": true + }, + "syncStatus": { + "type": "enum", + "required": false, + "options": [ + "synced", + "unclean", + "pending_sync", + "failed" + ], + "style": { + "synced": "success", + "unclean": "warning", + "pending_sync": "default", + "failed": "danger" + }, + "default": "unclean", + "tooltip": true, + "isCustom": true + }, + "lastSync": { + "type": "datetime", + "required": false, + "readOnly": true, + "tooltip": true, + "isCustom": true + }, + "aktivierungsstatus": { + "type": "enum", + "required": false, + "options": [ + "new", + "import", + "active", + "paused", + "deactivated" + ], + "style": { + "new": "primary", + "import": "info", + "active": "success", + "paused": "warning", + "deactivated": "danger" + }, + "default": "new", + "tooltip": true, + "isCustom": true + }, + "dokumentes": { + "type": "linkMultiple", + "layoutDetailDisabled": false, + "layoutMassUpdateDisabled": false, + "layoutListDisabled": false, + "noLoad": false, + "importDisabled": false, + "exportDisabled": false, + "customizationDisabled": false, + "isCustom": true + }, + "aiCollectionId": { + "type": "varchar", + "maxLength": 255, + "copyToClipboard": true, + "tooltip": true, + "isCustom": true + }, + "aiAktivierungsstatus": { + "type": "enum", + "required": false, + "options": [ + "new", + "import", + "active", + "paused", + "deactivated" + ], + "style": { + "new": "primary", + "import": "info", + "active": "success", + "paused": "warning", + "deactivated": "danger" + }, + "default": "new", + "tooltip": true, + "isCustom": true + }, + "aiSyncStatus": { + "type": "enum", + "required": false, + "options": [ + "synced", + "unclean", + "pending_sync", + "failed" + ], + "style": { + "synced": "success", + "unclean": "warning", + "pending_sync": "info", + "failed": "danger" + }, + "default": "unclean", + "tooltip": true, + "isCustom": true + }, + "aiLastSync": { + "type": "datetime", + "required": false, + "readOnly": true, + "tooltip": true, + "isCustom": true + }, + "globalSyncStatus": { + "type": "enum", + "required": false, + "options": [ + "synced", + "unclean", + "pending_sync", + "failed" + ], + "style": { + "synced": "success", + "unclean": "warning", + "pending_sync": "info", + "failed": "danger" + }, + "default": "unclean", + "tooltip": true, + "isCustom": true + }, + "globalLastSync": { + "type": "datetime", + "required": false, + "readOnly": true, + "tooltip": true, + "isCustom": true + }, + "syncSchalter": { + "type": "bool", + "default": true, + "tooltip": true, + "isCustom": true } }, "links": { @@ -75,11 +241,42 @@ "entity": "Email", "foreign": "parent", "layoutRelationshipsDisabled": true + }, + "vmhRumungsklage": { + "type": "belongsTo", + "foreign": "advowareAkten", + "entity": "CVmhRumungsklage", + "isCustom": true + }, + "mietinkasso": { + "type": "belongsTo", + "foreign": "advowareAkten", + "entity": "CMietinkasso", + "isCustom": true + }, + "kuendigungen": { + "type": "hasMany", + "foreign": "advowareAkten", + "entity": "CKuendigung", + "audited": false, + "isCustom": true + }, + "dokumentes": { + "type": "hasMany", + "foreign": "cAkten", + "entity": "CDokumente", + "audited": true, + "isCustom": true } }, "collection": { "orderBy": "createdAt", - "order": "desc" + "order": "desc", + "textFilterFields": [ + "name" + ], + "fullTextSearch": false, + "countDisabled": false }, "indexes": { "name": { @@ -106,5 +303,7 @@ "id" ] } - } + }, + "optimisticConcurrencyControl": false, + "tableName": "c_advoware_akten" } \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CDokumente.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CDokumente.json index f42bc16e..4fab313c 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CDokumente.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CDokumente.json @@ -61,20 +61,6 @@ "isCustom": true, "tooltip": true }, - "cAdvowareAktenId": { - "type": "varchar", - "len": 17, - "index": true, - "isCustom": true - }, - "cAdvowareAktenName": { - "type": "varchar", - "isCustom": true - }, - "cAdvowareAkten": { - "type": "link", - "isCustom": true - }, "hnr": { "type": "int", "tooltip": true, @@ -169,6 +155,64 @@ "layoutAvailabilityList": [ "listForAIKnowledge" ] + }, + "cAktenId": { + "type": "varchar", + "len": 17, + "index": true, + "isCustom": true + }, + "cAktenName": { + "type": "varchar", + "isCustom": true + }, + "cAkten": { + "type": "link", + "isCustom": true + }, + "aiCollectionId": { + "type": "varchar", + "maxLength": 255, + "tooltip": true, + "isCustom": true + }, + "aiSyncHash": { + "type": "varchar", + "len": 64, + "tooltip": true, + "isCustom": true + }, + "aiSyncStatus": { + "type": "enum", + "options": [ + "new", + "unclean", + "synced", + "failed", + "unsupported" + ], + "style": { + "new": "info", + "unclean": "warning", + "synced": "success", + "failed": "danger", + "unsupported": "default" + }, + "default": "new", + "tooltip": true, + "isCustom": true + }, + "aiLastSync": { + "type": "datetime", + "readOnly": true, + "tooltip": true, + "isCustom": true + }, + "aiFileId": { + "type": "varchar", + "maxLength": 255, + "tooltip": true, + "isCustom": true } }, "links": { @@ -272,13 +316,6 @@ "audited": false, "isCustom": true }, - "cAdvowareAkten": { - "type": "belongsTo", - "foreign": "dokumentes", - "entity": "CAdvowareAkten", - "audited": true, - "isCustom": true - }, "aIKnowledges": { "type": "hasMany", "relationName": "cAIKnowledgeDokumente", @@ -291,6 +328,13 @@ "syncstatus": "aiKnowledgeSyncstatus", "lastSync": "aiKnowledgeLastSync" } + }, + "cAkten": { + "type": "belongsTo", + "foreign": "dokumentes", + "entity": "CAkten", + "audited": true, + "isCustom": true } }, "collection": { diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CKuendigung.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CKuendigung.json index 9f11033c..f6ea59d7 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CKuendigung.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CKuendigung.json @@ -355,7 +355,7 @@ "advowareAkten": { "type": "belongsTo", "foreign": "kuendigungen", - "entity": "CAdvowareAkten", + "entity": "CAkten", "audited": false, "isCustom": true }, @@ -413,7 +413,6 @@ "aktennr" ] }, - "status": { "columns": [ "status", diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CMietinkasso.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CMietinkasso.json index 2ba52b78..29e06e2b 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CMietinkasso.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CMietinkasso.json @@ -199,7 +199,7 @@ "advowareAkten": { "type": "hasOne", "foreign": "mietinkasso", - "entity": "CAdvowareAkten", + "entity": "CAkten", "isCustom": true }, "aIKnowledge": { diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhRumungsklage.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhRumungsklage.json index 8403a72c..b09c6654 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhRumungsklage.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhRumungsklage.json @@ -212,7 +212,7 @@ "advowareAkten": { "type": "hasOne", "foreign": "vmhRumungsklage", - "entity": "CAdvowareAkten", + "entity": "CAkten", "isCustom": true }, "aIKnowledge": { diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/Call.json b/custom/Espo/Custom/Resources/metadata/entityDefs/Call.json index 749894ff..2d5e458a 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/Call.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/Call.json @@ -16,7 +16,7 @@ "CMietinkasso", "CKuendigung", "CPuls", - "CAdvowareAkten" + "CAkten" ] }, "cWichtigkeit": { diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/Email.json b/custom/Espo/Custom/Resources/metadata/entityDefs/Email.json index 7443e618..65a5f34e 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/Email.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/Email.json @@ -16,7 +16,7 @@ "CMietinkasso", "CKuendigung", "CPuls", - "CAdvowareAkten" + "CAkten" ] } } diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/Meeting.json b/custom/Espo/Custom/Resources/metadata/entityDefs/Meeting.json index 7443e618..65a5f34e 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/Meeting.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/Meeting.json @@ -16,7 +16,7 @@ "CMietinkasso", "CKuendigung", "CPuls", - "CAdvowareAkten" + "CAkten" ] } } diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/Task.json b/custom/Espo/Custom/Resources/metadata/entityDefs/Task.json index 252acfe9..0de294d9 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/Task.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/Task.json @@ -16,7 +16,7 @@ "CMietinkasso", "CKuendigung", "CPuls", - "CAdvowareAkten" + "CAkten" ] } } diff --git a/custom/Espo/Custom/Resources/metadata/recordDefs/CAkten.json b/custom/Espo/Custom/Resources/metadata/recordDefs/CAkten.json new file mode 100644 index 00000000..93aa2970 --- /dev/null +++ b/custom/Espo/Custom/Resources/metadata/recordDefs/CAkten.json @@ -0,0 +1,3 @@ +{ + "updateDuplicateCheck": false +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/metadata/scopes/CAdvowareAkten.json.bak b/custom/Espo/Custom/Resources/metadata/scopes/CAdvowareAkten.json.bak new file mode 100644 index 00000000..7e02ba7a --- /dev/null +++ b/custom/Espo/Custom/Resources/metadata/scopes/CAdvowareAkten.json.bak @@ -0,0 +1,30 @@ +{ + "entity": true, + "layouts": true, + "tab": false, + "acl": true, + "aclPortal": true, + "aclPortalLevelList": [ + "all", + "account", + "contact", + "own", + "no" + ], + "customizable": true, + "importable": true, + "notifications": true, + "stream": true, + "disabled": true, + "type": "Base", + "module": "Custom", + "object": true, + "isCustom": true, + "statusField": null, + "kanbanStatusIgnoreList": null, + "stars": false, + "preserveAuditLog": false, + "duplicateCheckFieldList": [], + "collaborators": false, + "assignedUsers": false +} \ No newline at end of file diff --git a/custom/Espo/Custom/Resources/metadata/scopes/CAdvowareAkten.json b/custom/Espo/Custom/Resources/metadata/scopes/CAkten.json similarity index 100% rename from custom/Espo/Custom/Resources/metadata/scopes/CAdvowareAkten.json rename to custom/Espo/Custom/Resources/metadata/scopes/CAkten.json diff --git a/custom/Espo/Custom/Services/CVmhMietverhltnis.php b/custom/Espo/Custom/Services/CVmhMietverhltnis.php index efdd31b7..563f7030 100644 --- a/custom/Espo/Custom/Services/CVmhMietverhltnis.php +++ b/custom/Espo/Custom/Services/CVmhMietverhltnis.php @@ -394,7 +394,7 @@ class CVmhMietverhltnis extends \Espo\Services\Record $advowareAkteData['teamsIds'] = $teamsIds; } - $advowareAkte = $this->entityManager->createEntity('CAdvowareAkten', $advowareAkteData); + $advowareAkte = $this->entityManager->createEntity('CAkten', $advowareAkteData); if ($advowareAkte) { // Link AdvowareAkte to Mietinkasso (hasOne relationship - set field directly) diff --git a/custom/Espo/Custom/Services/CVmhRumungsklage.php b/custom/Espo/Custom/Services/CVmhRumungsklage.php index 0422c762..a8792889 100644 --- a/custom/Espo/Custom/Services/CVmhRumungsklage.php +++ b/custom/Espo/Custom/Services/CVmhRumungsklage.php @@ -417,7 +417,7 @@ class CVmhRumungsklage extends \Espo\Services\Record $existingAkteId = $kuendigung->get('advowareAktenId'); if ($existingAkteId) { - $existingAkte = $this->entityManager->getEntity('CAdvowareAkten', $existingAkteId); + $existingAkte = $this->entityManager->getEntity('CAkten', $existingAkteId); if ($existingAkte) { $advowareAkte = $existingAkte; $GLOBALS['log']->info("CVmhRumungsklage: Using existing AdvowareAkte from Kündigung: {$existingAkte->getId()}"); @@ -457,7 +457,7 @@ class CVmhRumungsklage extends \Espo\Services\Record $advowareAkteData['teamsIds'] = $teamsIds; } - $advowareAkte = $this->entityManager->createEntity('CAdvowareAkten', $advowareAkteData); + $advowareAkte = $this->entityManager->createEntity('CAkten', $advowareAkteData); if ($advowareAkte) { $GLOBALS['log']->info("CVmhRumungsklage: Created new AdvowareAkte: {$advowareAkte->getId()}"); diff --git a/data/config.php b/data/config.php index 5c5a8fb4..89dd7f76 100644 --- a/data/config.php +++ b/data/config.php @@ -69,67 +69,67 @@ return [ 6 => 'CKuendigung', 7 => 'CVmhRumungsklage', 8 => 'CMietinkasso', - 9 => 'CDokumente', - 10 => (object) [ + 9 => 'CAkten', + 10 => 'CDokumente', + 11 => (object) [ 'type' => 'divider', 'id' => '342567', 'text' => '$CRM' ], - 11 => 'Contact', - 12 => (object) [ + 12 => 'Contact', + 13 => (object) [ 'type' => 'divider', 'text' => '$Activities', 'id' => '219419' ], - 13 => 'Email', - 14 => 'Call', - 15 => 'Task', - 16 => 'Calendar', - 17 => (object) [ + 14 => 'Email', + 15 => 'Call', + 16 => 'Task', + 17 => 'Calendar', + 18 => (object) [ 'type' => 'divider', 'id' => '655187', 'text' => '$Support' ], - 18 => 'Case', - 19 => 'KnowledgeBaseArticle', - 20 => (object) [ + 19 => 'Case', + 20 => 'KnowledgeBaseArticle', + 21 => (object) [ 'type' => 'divider', 'text' => NULL, 'id' => '137994' ], - 21 => '_delimiter_', - 22 => (object) [ + 22 => '_delimiter_', + 23 => (object) [ 'type' => 'divider', 'text' => '$Marketing', 'id' => '463280' ], - 23 => 'Campaign', - 24 => 'TargetList', - 25 => (object) [ + 24 => 'Campaign', + 25 => 'TargetList', + 26 => (object) [ 'type' => 'divider', 'text' => '$Business', 'id' => '518202' ], - 26 => (object) [ + 27 => (object) [ 'type' => 'divider', 'text' => '$Organization', 'id' => '566592' ], - 27 => 'User', - 28 => (object) [ + 28 => 'User', + 29 => (object) [ 'type' => 'divider', 'text' => NULL, 'id' => '898671' ], - 29 => 'Team', - 30 => 'WorkingTimeCalendar', - 31 => 'EmailTemplate', - 32 => 'Template', - 33 => 'Import', - 34 => 'GlobalStream', - 35 => 'Report', - 36 => 'CCallQueues', - 37 => 'CAdvowareAkten', + 30 => 'Team', + 31 => 'WorkingTimeCalendar', + 32 => 'EmailTemplate', + 33 => 'Template', + 34 => 'Import', + 35 => 'GlobalStream', + 36 => 'Report', + 37 => 'CCallQueues', 38 => 'CAIKnowledge' ], 'quickCreateList' => [ @@ -360,7 +360,7 @@ return [ 0 => 'youtube.com', 1 => 'google.com' ], - 'microtime' => 1774483768.956072, + 'microtime' => 1774486498.79796, 'siteUrl' => 'https://crm.bitbylaw.com', 'fullTextSearchMinLength' => 4, 'webSocketUrl' => 'ws://api.bitbylaw.com:5000/espocrm/ws', diff --git a/data/state.php b/data/state.php index e4d382f6..3a105776 100644 --- a/data/state.php +++ b/data/state.php @@ -1,7 +1,7 @@ 1774483768, - 'microtimeState' => 1774483768.959732, + 'cacheTimestamp' => 1774486498, + 'microtimeState' => 1774486498.980586, 'currencyRates' => [ 'EUR' => 1.0 ],