Compare commits

...

4 Commits

Author SHA1 Message Date
ebe8d86732 Add new fields for rental details and update localization; enhance layout for better visibility 2026-01-23 23:13:12 +01:00
b59e91f278 Add dateOfBirth field and localization support for CBeteiligte entity; update layouts and metadata 2026-01-23 23:09:00 +01:00
daa812ea21 Add Mietinkasso entity and related localization, layouts, and metadata 2026-01-23 23:06:10 +01:00
4b66d5f356 Add CMietinkasso entity and localization support
- Introduced a new entity "CMietinkasso" with its metadata definitions, including fields, links, and indexes.
- Added controller for CMietinkasso to handle business logic.
- Created localization files for CMietinkasso in multiple languages (e.g., English, German, Spanish, etc.) to support internationalization.
- Updated global JSON files to include references to the new entity.
- Modified configuration files to integrate CMietinkasso into the application structure.
2026-01-23 22:43:04 +01:00
66 changed files with 1263 additions and 44 deletions

View File

@@ -380,6 +380,16 @@ sudo find custom/ -type d -exec chmod 775 {} \;
- [ ] Formula in `formula/`, **NICHT** in `entityDefs/`
- [ ] Nach Erstellung: `./custom/scripts/check_and_rebuild.sh`
**Bei Hinzufügen neuer Felder:**
- [ ] Felder in entityDefs definieren mit korrektem Typ und Optionen
- [ ] Felder zu relevanten Layouts hinzufügen (detail.json, list.json, etc.)
- [ ] Felder sinnvoll gruppieren (eigenes Panel oder bestehendes Panel)
- [ ] Labels in i18n/**de_DE** vollständig (fields UND links)
- [ ] Labels in i18n/**en_US** vollständig (Fallback-Sprache!)
- [ ] Tooltips in i18n hinzufügen falls erforderlich
- [ ] Nach Änderung: `./custom/scripts/check_and_rebuild.sh`
- [ ] Browser Hard Refresh (Ctrl+Shift+R) durchführen
**Bei Layout-Änderungen:**
- [ ] Keine `false` oder leere Objekte in Rows
- [ ] Width nur in List-Layouts verwenden
@@ -511,6 +521,85 @@ Bei hasMany-Relationships müssen **BEIDE Seiten** definiert werden:
- `foreign` zeigt auf den Link-Namen der **Gegenseite**
- Fehlt eine Seite → **"404 Link does not exist"-Fehler**
**Vollständiger Prozess beim Hinzufügen neuer Felder:**
Neue Felder in einer Entity erfordern Änderungen in **drei Bereichen**:
1. **entityDefs/{Entity}.json** - Feld-Definition
2. **layouts/{Entity}/*.json** - Sichtbarkeit in UI
3. **i18n/{Sprache}/{Entity}.json** - Beschriftungen
**Schritt-für-Schritt-Anleitung:**
**1. Feld in entityDefs definieren:**
```json
// custom/Espo/Custom/Resources/metadata/entityDefs/CVmhMietverhltnis.json
{
"fields": {
"kaltmiete": {
"type": "currency",
"required": true,
"onlyDefaultCurrency": true,
"min": 1,
"decimal": true,
"tooltip": true,
"isCustom": true
}
}
}
```
**2. Feld zu Layouts hinzufügen:**
```json
// custom/Espo/Custom/Resources/layouts/CVmhMietverhltnis/detail.json
[
{
"rows": [
[
{"name": "kaltmiete"},
{"name": "warmmiete"}
]
],
"customLabel": "Miethöhe",
"noteText": "Erfassen Sie die Miethöhe in ihren einzelnen Bestandteilen",
"noteStyle": "info"
}
]
```
**3. Labels in ALLEN Sprachen definieren:**
```json
// custom/Espo/Custom/Resources/i18n/de_DE/CVmhMietverhltnis.json
{
"fields": {
"kaltmiete": "Kaltmiete"
},
"tooltips": {
"kaltmiete": "Monatliche Kaltmiete ohne Betriebskosten"
}
}
// custom/Espo/Custom/Resources/i18n/en_US/CVmhMietverhltnis.json
{
"fields": {
"kaltmiete": "Base Rent"
}
}
```
**Wichtig:**
-**IMMER** de_DE UND en_US pflegen (en_US ist Fallback!)
- ✅ Tooltips nur wenn `"tooltip": true` im entityDef gesetzt
- ✅ Bei Link-Feldern Labels in `fields` UND `links` definieren
- ✅ Nach Änderungen: `./custom/scripts/check_and_rebuild.sh`
**Typische Layout-Typen:**
- `detail.json` - Detail-Ansicht (Panels mit Rows)
- `list.json` - Listen-Ansicht (Spalten mit Width)
- `listSmall.json` - Kompakte Listen-Ansicht
- `detailSmall.json` - Seitenleisten-Ansicht
- `filters.json` - Filter-Felder
### clientDefs/{EntityType}.json
**Format-Beispiel:**

View File

@@ -0,0 +1,7 @@
<?php
namespace Espo\Custom\Controllers;
class CMietinkasso extends \Espo\Core\Templates\Controllers\BasePlus
{
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "الاجتماعات",
"calls": "المكالمات",
"tasks": "مهام"
},
"labels": {
"Create CMietinkasso": "إنشاء {الكيانTypeTranslated}"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Срещи",
"calls": "Разговори",
"tasks": "Задачи"
},
"labels": {
"Create CMietinkasso": "Създаване на Mietinkasso"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CMietinkasso": "Vytvořit Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Møder",
"calls": "Opkald",
"tasks": "Opgaver"
},
"labels": {
"Create CMietinkasso": "Opret Mietinkasso "
}
}

View File

@@ -1,5 +1,6 @@
{
"fields": {
"dateOfBirth": "Geburtsdatum",
"rechtsform": "Rechtsform",
"firmenname": "Firmenname",
"handelsregisterNummer": "Handelsregister-Nummer",
@@ -36,6 +37,7 @@
"Create CBeteiligte": "Beteiligte erstellen"
},
"tooltips": {
"dateOfBirth": "Geburtsdatum des Beteiligten (nur bei natürlichen Personen)",
"betnr": "Eindeutige Beteiligten-Nummer aus Advoware",
"advowareLastSync": "Zeitpunkt der letzten Synchronisation mit Advoware",
"syncStatus": "Status der Synchronisation: clean = erfolgreich, unclean = Abweichungen, failed = Fehler",

View File

@@ -0,0 +1,50 @@
{
"fields": {
"advowareAktenzeichen": "Advoware Aktenzeichen",
"betnr": "Advoware Identifikator",
"advowareLastSync": "Advoware letzte Synchronisation",
"syncStatus": "Sync-Status",
"klaeger": "Kläger",
"beklagte": "Beklagte",
"vmhMietverhltnises": "Mietverhältnisse",
"contactsMietinkasso": "Freigegebene Nutzer",
"dokumentesmietinkasso": "Dokumente",
"gerichtsrubrum": "Gerichtsrubrum",
"gegenstandswert": "Gegenstandswert",
"kuendigungsservice": "Kündigungsservice",
"aussergerichtlicheGebuehren13": "Außergerichtliche Gebühren 1,3",
"gerichtskosten1Instanz": "Gerichtskosten 1. Instanz",
"anwaltskosten1Instanz": "Anwaltskosten 1. Instanz",
"freigeschalteteNutzer": "Freigeschaltete Nutzer (veraltet)",
"collaborators": "Mitarbeiter",
"vmhVermietersMIK": "Vermieter"
},
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben",
"klaeger": "Kläger",
"beklagte": "Beklagte",
"vmhMietverhltnises": "Mietverhältnisse",
"contactsMietinkasso": "Freigegebene Nutzer",
"dokumentesmietinkasso": "Dokumente",
"freigeschalteteNutzer": "Freigeschaltete Nutzer (veraltet)",
"collaborators": "Mitarbeiter",
"vmhVermietersMIK": "Vermieter"
},
"labels": {
"Create CMietinkasso": "Mietinkasso erstellen"
},
"tooltips": {
"advowareAktenzeichen": "Aktenzeichen aus dem Advoware-System",
"betnr": "Eindeutige Inkasso-Nummer aus Advoware",
"advowareLastSync": "Zeitpunkt der letzten Synchronisation mit Advoware",
"syncStatus": "Status der Synchronisation: clean = erfolgreich, unclean = Abweichungen, failed = Fehler"
},
"options": {
"syncStatus": {
"clean": "Synchronisiert",
"unclean": "Abweichungen",
"failed": "Fehlgeschlagen"
}
}
}

View File

@@ -7,7 +7,12 @@
"besorgnisNichtRechtzeitigerAuszug": "Besorgnis nicht rechtzeitiger Auszug",
"beendigungsTatbestand": "Beendet durch",
"vertragsdatum": "Vertragsdatum",
"kaltmiete": "Kaltmiete",
"bKVorauszahlung": "BK-Vorauszahlung",
"bKPauschale": "BK-Pauschale",
"warmmiete": "Warmmiete",
"vmhRumungsklages": "Räumungsklagen",
"mietinkassos": "Mietinkasso",
"vmhbeteiligtevermieter": "Vermieter",
"vmhbeteiligtemieter": "Mieter",
"contactsMietverhltnis": "Freigegebene Nutzer",
@@ -16,10 +21,17 @@
"vmhMietobjekt2Mietverhltnis": "Mietobjekte (veraltet)",
"vmhMietobjekt": "Mietobjekt"
},
"tooltips": {
"kaltmiete": "Monatliche Kaltmiete ohne Betriebskosten",
"bKVorauszahlung": "Monatliche Betriebskosten-Vorauszahlung",
"bKPauschale": "Monatliche Betriebskosten-Pauschale",
"warmmiete": "Summe aus Kaltmiete + BK-Vorauszahlung + BK-Pauschale"
},
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben",
"vmhRumungsklages": "Räumungsklagen",
"mietinkassos": "Mietinkasso",
"vmhbeteiligtevermieter": "Vermieter",
"vmhbeteiligtemieter": "Mieter",
"contactsMietverhltnis": "Freigegebene Nutzer",

View File

@@ -0,0 +1 @@
{}

View File

@@ -1,5 +1,6 @@
{
"fields": {
"dateOfBirth": "Date of Birth",
"address": "Address",
"vmhvermieterbeteiligte": "Landlord",
"vmhmieterbeteiligte": "Tenant",

View File

@@ -0,0 +1,51 @@
{
"fields": {
"advowareAktenzeichen": "Advoware Case Number",
"betnr": "Advoware Identifier",
"advowareLastSync": "Advoware Last Sync",
"syncStatus": "Sync Status",
"klaeger": "Plaintiff",
"beklagte": "Defendant",
"vmhMietverhltnises": "Tenancies",
"contactsMietinkasso": "Portal Users",
"dokumentesmietinkasso": "Documents",
"gerichtsrubrum": "Court Rubrum",
"gegenstandswert": "Claim Value",
"kuendigungsservice": "Termination Service",
"aussergerichtlicheGebuehren13": "Out-of-court Fees 1.3",
"gerichtskosten1Instanz": "Court Costs 1st Instance",
"anwaltskosten1Instanz": "Attorney Fees 1st Instance",
"freigeschalteteNutzer": "Activated Users (deprecated)",
"collaborators": "Collaborators",
"vmhVermietersMIK": "Landlord"
},
"links": {
"meetings": "Meetings",
"calls": "Calls",
"tasks": "Tasks",
"klaeger": "Plaintiff",
"beklagte": "Defendant",
"vmhMietverhltnises": "Tenancies",
"contactsMietinkasso": "Portal Users",
"dokumentesmietinkasso": "Documents",
"freigeschalteteNutzer": "Activated Users (deprecated)",
"collaborators": "Collaborators",
"vmhVermietersMIK": "Landlord"
},
"labels": {
"Create CMietinkasso": "Create Mietinkasso"
},
"tooltips": {
"advowareAktenzeichen": "Case number from Advoware system",
"betnr": "Unique collection number from Advoware",
"advowareLastSync": "Time of last synchronization with Advoware",
"syncStatus": "Synchronization status: clean = successful, unclean = discrepancies, failed = error"
},
"options": {
"syncStatus": {
"clean": "Synchronized",
"unclean": "Discrepancies",
"failed": "Failed"
}
}
}

View File

@@ -2,11 +2,16 @@
"fields": {
"status": "Status",
"vmhRumungsklages": "Eviction Lawsuits",
"mietinkassos": "Rent Collection",
"nutzungsart": "Type of Use",
"kndigungsgrundWohnraum": "Reason for Termination",
"auszugsfrist": "Move-out Deadline",
"besorgnisNichtRechtzeitigerAuszug": "Concern About Late Move-out",
"beendigungsTatbestand": "Terminated By",
"kaltmiete": "Base Rent",
"bKVorauszahlung": "Utilities Advance",
"bKPauschale": "Utilities Flat Rate",
"warmmiete": "Total Rent",
"vmhbeteiligtevermieter": "Landlords",
"vmhbeteiligtemieter": "Tenants",
"contactsMietverhltnis": "Portal Users",
@@ -30,6 +35,7 @@
"calls": "Calls",
"tasks": "Tasks",
"vmhRumungsklages": "Eviction Lawsuits",
"mietinkassos": "Rent Collection",
"vmhbeteiligtevermieter": "Landlords",
"vmhbeteiligtemieter": "Tenants",
"contactsMietverhltnis": "Portal Users",

View File

@@ -11,7 +11,8 @@
"Call": "Anruf",
"Contact": "Portalnutzer",
"CCallQueues": "Call-Queue",
"CBankverbindungen": "Bankverbindung"
"CBankverbindungen": "Bankverbindung",
"CMietinkasso": "Mietinkasso"
},
"scopeNamesPlural": {
"CVmhMietverhltnis": "Mietverhältnisse",
@@ -25,6 +26,7 @@
"Call": "Anrufe",
"Contact": "Portalnutzer",
"CCallQueues": "Call-Queues",
"CBankverbindungen": "Bankverbindungen"
"CBankverbindungen": "Bankverbindungen",
"CMietinkasso": "Mietinkassa"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Reuniones",
"calls": "Llamadas",
"tasks": "Tareas"
},
"labels": {
"Create CMietinkasso": "Crear Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Presentaciones",
"calls": "Llamadas",
"tasks": "Tareas"
},
"labels": {
"Create CMietinkasso": "Crear Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "جلسات",
"calls": "تماس ها",
"tasks": "وظایف"
},
"labels": {
"Create CMietinkasso": "ایجاد Mietinkasso"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CMietinkasso": "Créer un Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Sastanci",
"calls": "Pozivi",
"tasks": "Zadaci"
},
"labels": {
"Create CMietinkasso": "Kreiraj Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "találkozók",
"calls": "felhívja",
"tasks": "Feladatok"
},
"labels": {
"Create CMietinkasso": "{EntityTypeTranslated} létrehozása"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CMietinkasso": "Buat Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Riunioni",
"calls": "Chiamate",
"tasks": "Compiti"
},
"labels": {
"Create CMietinkasso": "Crea Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "会議",
"calls": "通話",
"tasks": "タスク"
},
"labels": {
"Create CMietinkasso": "Mietinkasso を作成する"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Susitikimai",
"calls": "Skambučiai",
"tasks": "Užduotys"
},
"labels": {
"Create CMietinkasso": "Sukurti Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Tikšanās",
"calls": "Zvani",
"tasks": "Uzdevumi"
},
"labels": {
"Create CMietinkasso": "Izveidot Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Møter",
"calls": "Samtaler",
"tasks": "Oppgaver"
},
"labels": {
"Create CMietinkasso": "Opprett Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Vergaderingen",
"calls": "Gesprekken",
"tasks": "Taken"
},
"labels": {
"Create CMietinkasso": "Creëer Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Spotkania",
"calls": "Połączenia",
"tasks": "Zadania"
},
"labels": {
"Create CMietinkasso": "Utwórz Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Reuniões",
"calls": "Ligações",
"tasks": "Tarefas"
},
"labels": {
"Create CMietinkasso": "Criar Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Reuniões",
"calls": "Chamadas",
"tasks": "Tarefas"
},
"labels": {
"Create CMietinkasso": "Criar Mietinkasso"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CMietinkasso": "Creare Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Встречи",
"calls": "Звонки",
"tasks": "Задачи"
},
"labels": {
"Create CMietinkasso": "Создать Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Stretnutia",
"calls": "Hovory",
"tasks": "Úlohy"
},
"labels": {
"Create CMietinkasso": "Vytvoriť Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Srečanja",
"calls": "Klici",
"tasks": "Naloge"
},
"labels": {
"Create CMietinkasso": "Ustvari Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Ročišta",
"calls": "Pozivi",
"tasks": "Zadaci"
},
"labels": {
"Create CMietinkasso": "Napravi Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Möten",
"calls": "Samtal",
"tasks": "Uppgifter"
},
"labels": {
"Create CMietinkasso": "Skapa Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "การประชุม",
"calls": "โทร",
"tasks": "งาน"
},
"labels": {
"Create CMietinkasso": "สร้าง Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Toplantılar",
"calls": "(Seslenme)",
"tasks": "Görevler"
},
"labels": {
"Create CMietinkasso": "Mietinkasso oluştur"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Зустрічі",
"calls": "Дзвінки",
"tasks": "Завдання"
},
"labels": {
"Create CMietinkasso": "Створити Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Cuộc hẹn",
"calls": "Cuộc gọi",
"tasks": "Nhiệm vụ"
},
"labels": {
"Create CMietinkasso": "Tạo Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "会晤",
"calls": "通话",
"tasks": "任务"
},
"labels": {
"Create CMietinkasso": "创建 Mietinkasso"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "會議",
"calls": "通話",
"tasks": "任務"
},
"labels": {
"Create CMietinkasso": "建立Mietinkasso"
}
}

View File

@@ -11,7 +11,9 @@
{
"name": "name"
},
false
{
"name": "dateOfBirth"
}
],
[
{

View File

@@ -0,0 +1,64 @@
{
"_delimiter_": {
"disabled": true
},
"activities": {
"disabled": true
},
"history": {
"disabled": true
},
"_tabBreak_0": {
"index": 0,
"tabBreak": true,
"tabLabel": "Freigegebene Nutzer"
},
"contactsMietinkasso": {
"dynamicLogicVisible": null,
"style": "warning",
"dynamicLogicStyled": null,
"sticked": true,
"index": 1
},
"_tabBreak_1": {
"index": 2,
"tabBreak": true,
"tabLabel": "Kläger"
},
"klaeger": {
"index": 3
},
"_tabBreak_2": {
"index": 4,
"tabBreak": true,
"tabLabel": "Beklagte"
},
"beklagte": {
"index": 5
},
"_tabBreak_3": {
"index": 6,
"tabBreak": true,
"tabLabel": "Mietverhältnisse"
},
"vmhMietverhltnises": {
"index": 7
},
"_tabBreak_4": {
"index": 8,
"tabBreak": true,
"tabLabel": "Dokumente"
},
"dokumentesmietinkasso": {
"index": 9
},
"_tabBreak_5": {
"index": 10,
"tabBreak": true,
"tabLabel": "Stream"
},
"stream": {
"sticked": false,
"index": 11
}
}

View File

@@ -0,0 +1,11 @@
[
{
"name": ":assignedUser"
},
{
"name": "teams"
},
{
"name": "freigeschalteteNutzer"
}
]

View File

@@ -0,0 +1,71 @@
[
{
"rows": [
[
{
"name": "name"
},
{
"name": "advowareAktenzeichen"
},
{
"name": "gerichtsrubrum"
}
],
[
{
"name": "gegenstandswert"
},
{
"name": "kuendigungsservice"
},
false
],
[
{
"name": "description"
}
]
],
"style": "default",
"tabBreak": false,
"label": "Übersicht"
},
{
"rows": [
[
{
"name": "aussergerichtlicheGebuehren13"
},
{
"name": "gerichtskosten1Instanz"
},
{
"name": "anwaltskosten1Instanz"
}
]
],
"style": "default",
"tabBreak": false,
"label": "Vorzuschießende gesetzliche Gebühren"
},
{
"rows": [
[
{
"name": "betnr"
},
{
"name": "syncStatus"
},
{
"name": "advowareLastSync"
}
]
],
"style": "default",
"tabBreak": true,
"tabLabel": "Erweitert",
"label": "Advoware Sync"
}
]

View File

@@ -0,0 +1,23 @@
[
{
"name": "name",
"link": true,
"width": 28
},
{
"name": "advowareAktenzeichen",
"width": 22
},
{
"name": "assignedUser",
"width": 18
},
{
"name": "modifiedAt",
"width": 16
},
{
"name": "createdAt",
"width": 16
}
]

View File

@@ -0,0 +1,15 @@
[
{
"name": "name",
"link": true
},
{
"name": "advowareAktenzeichen"
},
{
"name": "gegenstandswert"
},
{
"name": "gerichtsrubrum"
}
]

View File

@@ -44,12 +44,28 @@
"sonstigebesitzervmhmietverhltnis": {
"index": 7
},
"_tabBreak_4": {
"_tabBreak_5": {
"index": 8,
"tabBreak": true,
"tabLabel": "Räumungsklagen"
},
"vmhRumungsklages": {
"index": 9
},
"_tabBreak_6": {
"index": 10,
"tabBreak": true,
"tabLabel": "Mietinkasso"
},
"mietinkassos": {
"index": 11
},
"_tabBreak_4": {
"index": 12,
"tabBreak": true,
"tabLabel": "Dokumente"
},
"dokumentesvmhMietverhltnisse": {
"index": 9
"index": 13
}
}

View File

@@ -57,5 +57,31 @@
"noteText": null,
"noteStyle": "info",
"customLabel": "Beendigung"
},
{
"rows": [
[
{
"name": "kaltmiete"
},
{
"name": "bKVorauszahlung"
},
{
"name": "bKPauschale"
},
{
"name": "warmmiete"
}
]
],
"dynamicLogicVisible": null,
"style": "primary",
"dynamicLogicStyled": null,
"tabBreak": false,
"hidden": false,
"noteText": "Erfassen Sie die Miethöhe in ihren einzelnen Bestandteilen",
"noteStyle": "info",
"customLabel": "Miethöhe"
}
]

View File

@@ -123,6 +123,26 @@
]
}
},
"dateOfBirth": {
"visible": {
"conditionGroup": [
{
"type": "or",
"value": [
{
"type": "equals",
"attribute": "rechtsform",
"value": "NatürlichePerson"
},
{
"type": "isEmpty",
"attribute": "rechtsform"
}
]
}
]
}
},
"handelsregisterArt": {
"visible": {
"conditionGroup": [

View File

@@ -0,0 +1,37 @@
{
"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
}
]
},
"iconClass": "fas fa-money-bill-1-wave"
}

View File

@@ -57,6 +57,13 @@
"required": true,
"copyToClipboard": true
},
"dateOfBirth": {
"type": "date",
"required": false,
"tooltip": true,
"isCustom": true,
"isPersonalData": true
},
"description": {
"type": "text"
},
@@ -261,6 +268,22 @@
"audited": false,
"isCustom": true
},
"mietinkassosKlaeger": {
"type": "hasMany",
"relationName": "cBeteiligteMietinkassoKlaeger",
"foreign": "klaeger",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
},
"mietinkassosBeklagte": {
"type": "hasMany",
"relationName": "cBeteiligteMietinkassoBeklagte",
"foreign": "beklagte",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
},
"dokumentesBeteiligte": {
"type": "hasMany",
"relationName": "cBeteiligteDokumente",

View File

@@ -168,6 +168,14 @@
"audited": false,
"isCustom": true
},
"mietinkassosdokumente": {
"type": "hasMany",
"relationName": "cDokumenteMietinkasso",
"foreign": "dokumentesmietinkasso",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
},
"beteiligte2dokumente": {
"type": "hasMany",
"relationName": "cBeteiligteDokumente",

View File

@@ -0,0 +1,261 @@
{
"fields": {
"name": {
"type": "varchar",
"required": true,
"pattern": "$noBadCharacters"
},
"description": {
"type": "text"
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"assignedUser": {
"type": "link",
"required": false,
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
},
"freigeschalteteNutzer": {
"type": "link"
},
"collaborators": {
"type": "linkMultiple",
"view": "views/fields/collaborators",
"maxCount": 30,
"fieldManagerParamList": [
"readOnly",
"readOnlyAfterCreate",
"audited",
"autocompleteOnEmpty",
"maxCount",
"inlineEditDisabled",
"tooltipText"
]
},
"advowareAktenzeichen": {
"type": "varchar",
"required": false,
"maxLength": 100,
"tooltip": true,
"isCustom": true,
"copyToClipboard": true
},
"betnr": {
"type": "int",
"required": false,
"tooltip": true,
"isCustom": true
},
"advowareLastSync": {
"type": "datetime",
"required": false,
"readOnly": true,
"tooltip": true,
"isCustom": true
},
"syncStatus": {
"type": "enum",
"required": false,
"options": [
"clean",
"unclean",
"failed"
],
"style": {
"clean": "success",
"unclean": "warning",
"failed": "danger"
},
"default": "clean",
"tooltip": true,
"isCustom": true
},
"gerichtsrubrum": {
"type": "text",
"required": false,
"isCustom": true
},
"gegenstandswert": {
"type": "currency",
"required": false,
"default": 0,
"isCustom": true
},
"kuendigungsservice": {
"type": "bool",
"required": false,
"default": false,
"isCustom": true
},
"aussergerichtlicheGebuehren13": {
"type": "currency",
"required": false,
"default": 0,
"isCustom": true
},
"gerichtskosten1Instanz": {
"type": "currency",
"required": false,
"default": 0,
"isCustom": true
},
"anwaltskosten1Instanz": {
"type": "currency",
"required": false,
"default": 0,
"isCustom": true
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"meetings": {
"type": "hasMany",
"entity": "Meeting",
"foreign": "parent"
},
"calls": {
"type": "hasMany",
"entity": "Call",
"foreign": "parent"
},
"tasks": {
"type": "hasChildren",
"entity": "Task",
"foreign": "parent"
},
"emails": {
"type": "hasChildren",
"entity": "Email",
"foreign": "parent",
"layoutRelationshipsDisabled": true
},
"vmhMietverhltnises": {
"type": "hasMany",
"relationName": "cMietinkassoVmhMietverhltnis",
"foreign": "mietinkassos",
"entity": "CVmhMietverhltnis",
"audited": false,
"isCustom": true
},
"freigeschalteteNutzer": {
"type": "belongsTo",
"foreign": "cMietinkassos",
"entity": "Contact",
"audited": false,
"isCustom": true
},
"collaborators": {
"type": "hasMany",
"entity": "User",
"relationName": "entityCollaborator",
"layoutRelationshipsDisabled": true
},
"vmhVermietersMIK": {
"type": "hasMany",
"relationName": "cVmhVermieterMietinkasso",
"foreign": "mietinkassosVermieter",
"entity": "CVmhVermieter",
"audited": false,
"isCustom": true
},
"dokumentesmietinkasso": {
"type": "hasMany",
"relationName": "cDokumenteMietinkasso",
"foreign": "mietinkassosdokumente",
"entity": "CDokumente",
"audited": false,
"isCustom": true
},
"contactsMietinkasso": {
"type": "hasMany",
"relationName": "cMietinkassoContact",
"foreign": "cMietinkassoContact",
"entity": "Contact",
"audited": false,
"isCustom": true
},
"klaeger": {
"type": "hasMany",
"relationName": "cBeteiligteMietinkassoKlaeger",
"foreign": "mietinkassosKlaeger",
"entity": "CBeteiligte",
"audited": false,
"isCustom": true
},
"beklagte": {
"type": "hasMany",
"relationName": "cBeteiligteMietinkassoBeklagte",
"foreign": "mietinkassosBeklagte",
"entity": "CBeteiligte",
"audited": false,
"isCustom": true
}
},
"collection": {
"orderBy": "createdAt",
"order": "desc"
},
"indexes": {
"name": {
"columns": [
"name",
"deleted"
]
},
"assignedUser": {
"columns": [
"assignedUserId",
"deleted"
]
},
"createdAt": {
"columns": [
"createdAt"
]
},
"createdAtId": {
"unique": true,
"columns": [
"createdAt",
"id"
]
}
}
}

View File

@@ -133,6 +133,22 @@
"entity": "CDokumente",
"audited": false,
"isCustom": true
},
"vmhRumungsklages": {
"type": "hasMany",
"relationName": "cMietobjektVmhRumungsklage",
"foreign": "mietobjekte",
"entity": "CVmhRumungsklage",
"audited": false,
"isCustom": true
},
"mietinkassos": {
"type": "hasMany",
"relationName": "cMietobjektMietinkasso",
"foreign": "mietobjekte",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
}
},
"collection": {

View File

@@ -130,6 +130,47 @@
"before": "auszugsfrist",
"isCustom": true
},
"kaltmiete": {
"type": "currency",
"required": true,
"onlyDefaultCurrency": true,
"conversionDisabled": true,
"min": 1,
"decimal": true,
"tooltip": true,
"isCustom": true
},
"bKVorauszahlung": {
"type": "currency",
"required": false,
"onlyDefaultCurrency": true,
"conversionDisabled": true,
"default": 0,
"min": 0,
"decimal": true,
"tooltip": true,
"isCustom": true
},
"bKPauschale": {
"type": "currency",
"required": false,
"default": 0,
"min": 0,
"decimal": true,
"tooltip": true,
"isCustom": true,
"onlyDefaultCurrency": true
},
"warmmiete": {
"type": "currency",
"onlyDefaultCurrency": true,
"conversionDisabled": true,
"decimal": true,
"isCustom": true,
"readOnly": true,
"required": false,
"tooltip": true
},
"vmhMietobjekt": {
"type": "link",
"required": false,
@@ -184,6 +225,14 @@
"audited": false,
"isCustom": true
},
"mietinkassos": {
"type": "hasMany",
"relationName": "cMietinkassoVmhMietverhltnis",
"foreign": "vmhMietverhltnises",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
},
"vmhbeteiligtevermieter": {
"type": "hasMany",
"relationName": "cBeteiligteVmhMietverhltnis",

View File

@@ -180,6 +180,14 @@
"audited": false,
"isCustom": true
},
"mietinkassosVermieter": {
"type": "hasMany",
"relationName": "cVmhVermieterMietinkasso",
"foreign": "vmhVermietersMIK",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
},
"contactsVermieter": {
"type": "hasMany",
"relationName": "cVmhVermieterContact",

View File

@@ -12,7 +12,8 @@
"CVmhErstgespraech",
"CVmhVermieter",
"CBeteiligte",
"CCallQueues"
"CCallQueues",
"CMietinkasso"
]
},
"cWichtigkeit": {

View File

@@ -86,6 +86,14 @@
"audited": false,
"isCustom": true
},
"cMietinkassoContact": {
"type": "hasMany",
"relationName": "cMietinkassoContact",
"foreign": "contactsMietinkasso",
"entity": "CMietinkasso",
"audited": false,
"isCustom": true
},
"cBankverbindungenContact": {
"type": "hasMany",
"relationName": "cBankverbindungContact",

View File

@@ -12,7 +12,8 @@
"CVmhErstgespraech",
"CVmhVermieter",
"CBeteiligte",
"CCallQueues"
"CCallQueues",
"CMietinkasso"
]
}
}

View File

@@ -12,7 +12,8 @@
"CVmhErstgespraech",
"CVmhVermieter",
"CBeteiligte",
"CCallQueues"
"CCallQueues",
"CMietinkasso"
]
}
}

View File

@@ -12,7 +12,8 @@
"CVmhErstgespraech",
"CVmhVermieter",
"CBeteiligte",
"CCallQueues"
"CCallQueues",
"CMietinkasso"
]
}
}

View File

@@ -0,0 +1,3 @@
{
"duplicateWhereBuilderClassName": "Espo\\Classes\\DuplicateWhereBuilders\\General"
}

View File

@@ -0,0 +1,23 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": [
"all",
"account",
"contact",
"own",
"no"
],
"customizable": true,
"importable": true,
"notifications": true,
"stream": false,
"disabled": false,
"type": "BasePlus",
"module": "Custom",
"object": true,
"isCustom": true
}

View File

@@ -56,71 +56,81 @@ return [
],
1 => 'CVmhErstgespraech',
2 => 'CMietobjekt',
3 => 'CBeteiligte',
4 => 'CBankverbindungen',
5 => 'CAdressen',
6 => 'CVmhMietverhltnis',
7 => 'CVmhRumungsklage',
8 => 'CDokumente',
9 => (object) [
3 => (object) [
'type' => 'group',
'text' => 'Beteiligte',
'iconClass' => NULL,
'color' => NULL,
'id' => '930480',
'itemList' => [
0 => 'CBeteiligte',
1 => 'CAdressen',
2 => 'CBankverbindungen'
]
],
4 => 'CVmhMietverhltnis',
5 => 'CVmhRumungsklage',
6 => 'CMietinkasso',
7 => 'CDokumente',
8 => (object) [
'type' => 'divider',
'id' => '342567',
'text' => '$CRM'
],
10 => 'Contact',
11 => (object) [
9 => 'Contact',
10 => (object) [
'type' => 'divider',
'text' => '$Activities',
'id' => '219419'
],
12 => 'Email',
13 => 'Call',
14 => 'Task',
15 => 'Calendar',
16 => (object) [
11 => 'Email',
12 => 'Call',
13 => 'Task',
14 => 'Calendar',
15 => (object) [
'type' => 'divider',
'id' => '655187',
'text' => '$Support'
],
17 => 'Case',
18 => 'KnowledgeBaseArticle',
19 => (object) [
16 => 'Case',
17 => 'KnowledgeBaseArticle',
18 => (object) [
'type' => 'divider',
'text' => NULL,
'id' => '137994'
],
20 => '_delimiter_',
21 => (object) [
19 => '_delimiter_',
20 => (object) [
'type' => 'divider',
'text' => '$Marketing',
'id' => '463280'
],
22 => 'Campaign',
23 => 'TargetList',
24 => (object) [
21 => 'Campaign',
22 => 'TargetList',
23 => (object) [
'type' => 'divider',
'text' => '$Business',
'id' => '518202'
],
25 => (object) [
24 => (object) [
'type' => 'divider',
'text' => '$Organization',
'id' => '566592'
],
26 => 'User',
27 => (object) [
25 => 'User',
26 => (object) [
'type' => 'divider',
'text' => NULL,
'id' => '898671'
],
28 => 'Team',
29 => 'WorkingTimeCalendar',
30 => 'EmailTemplate',
31 => 'Template',
32 => 'Import',
33 => 'GlobalStream',
34 => 'Report',
35 => 'CCallQueues'
27 => 'Team',
28 => 'WorkingTimeCalendar',
29 => 'EmailTemplate',
30 => 'Template',
31 => 'Import',
32 => 'GlobalStream',
33 => 'Report',
34 => 'CCallQueues'
],
'quickCreateList' => [
0 => 'Account',
@@ -349,8 +359,8 @@ return [
0 => 'youtube.com',
1 => 'google.com'
],
'cacheTimestamp' => 1769202183,
'microtime' => 1769202183.750401,
'cacheTimestamp' => 1769206320,
'microtime' => 1769206320.164239,
'siteUrl' => 'https://crm.bitbylaw.com',
'fullTextSearchMinLength' => 4,
'appTimestamp' => 1768843902,