Compare commits

...

4 Commits

18 changed files with 295 additions and 129 deletions

View File

@@ -3,6 +3,7 @@
"/^docker exec espocrm php /var/www/html/command\\.php rebuild$/": {
"approve": true,
"matchCommandLine": true
}
},
"./custom/scripts/check_and_rebuild.sh": true
}
}

View File

@@ -13,7 +13,8 @@
"contactsMietverhltnis": "Freigegebene Nutzer",
"sonstigebesitzervmhmietverhltnis": "Sonstige Bewohner",
"dokumentesvmhMietverhltnisse": "Dokumente",
"vmhMietobjekt2Mietverhltnis": "Mietobjekte"
"vmhMietobjekt2Mietverhltnis": "Mietobjekte",
"vmhMietobjekt": "Mietobjekt"
},
"links": {
"calls": "Anrufe",
@@ -24,7 +25,8 @@
"contactsMietverhltnis": "Freigegebene Nutzer",
"sonstigebesitzervmhmietverhltnis": "Sonstige Bewohner",
"dokumentesvmhMietverhltnisse": "Dokumente",
"vmhMietobjekt2Mietverhltnis": "Mietobjekte"
"vmhMietobjekt2Mietverhltnis": "Mietobjekte",
"vmhMietobjekt": "Mietobjekt"
},
"labels": {
"Create CVmhMietverhltnis": "Mietverhältnis erstellen"

View File

@@ -22,7 +22,8 @@
"vertragsdatum": "Contract Date",
"objekttyp": "Property Type",
"dokumentesvmhMietverhltnisse": "Documents",
"vmhMietobjekt2Mietverhltnis": "Properties"
"vmhMietobjekt2Mietverhltnis": "Properties",
"vmhMietobjekt": "Property"
},
"links": {
"meetings": "Meetings",
@@ -34,7 +35,8 @@
"contactsMietverhltnis": "Portal Users",
"sonstigebesitzervmhmietverhltnis": "Other Residents",
"dokumentesvmhMietverhltnisse": "Documents",
"vmhMietobjekt2Mietverhltnis": "Properties"
"vmhMietobjekt2Mietverhltnis": "Properties",
"vmhMietobjekt": "Property"
},
"labels": {
"Create CVmhMietverhltnis": "Create Mietverhältnis"

View File

@@ -0,0 +1,31 @@
[
{
"name": "name",
"link": true,
"width": 20
},
{
"name": "beteiligte",
"width": 20
},
{
"name": "adresseStreet",
"width": 18
},
{
"name": "adressePostalCode",
"width": 10
},
{
"name": "adresseCity",
"width": 15
},
{
"name": "isActive",
"width": 10
},
{
"name": "modifiedAt",
"width": 7
}
]

View File

@@ -0,0 +1,21 @@
[
{
"name": "name",
"link": true
},
{
"name": "adresseStreet"
},
{
"name": "adressePostalCode"
},
{
"name": "adresseCity"
},
{
"name": "adresseCountry"
},
{
"name": "isActive"
}
]

View File

@@ -1,23 +1,27 @@
[
{
"name": "name",
"link": true
"link": true,
"width": 20
},
{
"name": "address",
"width": 16
"name": "rechtsform",
"width": 15
},
{
"name": "firmenname",
"width": 20
},
{
"name": "emailAddress",
"width": 16
"width": 20
},
{
"name": "phoneNumber",
"width": 16
"width": 15
},
{
"name": "teams",
"width": 16,
"notSortable": true
"name": "modifiedAt",
"width": 10
}
]

View File

@@ -1,18 +1,27 @@
[
{
"name": "name",
"link": true
},
{
"name": "createdAt",
"width": 16
},
{
"name": "description",
"width": 16
"link": true,
"width": 25
},
{
"name": "dokument",
"width": 16
"width": 20
},
{
"name": "syncStatus",
"width": 12
},
{
"name": "assignedUser",
"width": 15
},
{
"name": "createdAt",
"width": 14
},
{
"name": "modifiedAt",
"width": 14
}
]

View File

@@ -19,7 +19,7 @@
"tabBreak": true,
"tabLabel": "Mietverhältnisse"
},
"vmhMietverhltnises2Mietobjekt": {
"vmhMietverhltnises": {
"index": 3
},
"_tabBreak_4": {

View File

@@ -1,14 +1,27 @@
[
{
"name": "name",
"link": true
},
{
"name": "anschrift",
"width": 16
"link": true,
"width": 25
},
{
"name": "objekttyp",
"width": 16
"width": 15
},
{
"name": "lage",
"width": 12
},
{
"name": "anschrift",
"width": 30
},
{
"name": "modifiedAt",
"width": 12
},
{
"name": "createdAt",
"width": 10
}
]

View File

@@ -8,20 +8,8 @@
"history": {
"disabled": true
},
"_tabBreak_5": {
"index": 0,
"tabBreak": true,
"tabLabel": "Mietobjekt"
},
"vmhMietobjekt2Mietverhltnis": {
"dynamicLogicVisible": null,
"style": "info",
"dynamicLogicStyled": null,
"sticked": false,
"index": 1
},
"_tabBreak_2": {
"index": 2,
"index": 0,
"tabBreak": true,
"tabLabel": "Freigegebene Nutzer"
},
@@ -30,38 +18,38 @@
"style": "warning",
"dynamicLogicStyled": null,
"sticked": true,
"index": 3
"index": 1
},
"_tabBreak_0": {
"index": 4,
"index": 2,
"tabBreak": true,
"tabLabel": "Vermieter"
},
"vmhbeteiligtevermieter": {
"index": 5
"index": 3
},
"_tabBreak_1": {
"index": 6,
"index": 4,
"tabBreak": true,
"tabLabel": "Mieter"
},
"vmhbeteiligtemieter": {
"index": 7
"index": 5
},
"_tabBreak_3": {
"index": 8,
"index": 6,
"tabBreak": true,
"tabLabel": "Sonstige Bewohner"
},
"sonstigebesitzervmhmietverhltnis": {
"index": 9
"index": 7
},
"_tabBreak_4": {
"index": 10,
"index": 8,
"tabBreak": true,
"tabLabel": "Dokumente"
},
"dokumentesvmhMietverhltnisse": {
"index": 11
"index": 9
}
}

View File

@@ -6,13 +6,13 @@
"name": "name"
},
{
"name": "status"
},
{
"name": "vertragsdatum"
"name": "vmhMietobjekt"
},
{
"name": "nutzungsart"
},
{
"name": "vertragsdatum"
}
]
],
@@ -27,6 +27,9 @@
{
"rows": [
[
{
"name": "status"
},
{
"name": "beendigungsTatbestand"
},
@@ -35,21 +38,18 @@
},
{
"name": "auszugsfrist"
},
}
],
[
{
"name": "besorgnisNichtRechtzeitigerAuszug"
}
},
false,
false,
false
]
],
"dynamicLogicVisible": {
"conditionGroup": [
{
"type": "notEquals",
"attribute": "status",
"value": "Bestehend"
}
]
},
"dynamicLogicVisible": null,
"style": "primary",
"dynamicLogicStyled": null,
"tabBreak": false,

View File

@@ -1,10 +1,31 @@
[
{
"name": "name",
"link": true
"link": true,
"width": 18
},
{
"name": "status",
"width": 16
"width": 12
},
{
"name": "nutzungsart",
"width": 12
},
{
"name": "vertragsdatum",
"width": 12
},
{
"name": "auszugsfrist",
"width": 12
},
{
"name": "beendigungsTatbestand",
"width": 20
},
{
"name": "modifiedAt",
"width": 14
}
]

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

@@ -63,5 +63,42 @@
"layout": null,
"selectPrimaryFilterName": null
}
},
"dynamicLogic": {
"fields": {
"beendigungsTatbestand": {
"readOnly": {
"conditionGroup": [
{
"type": "equals",
"attribute": "status",
"value": "Bestehend"
}
]
}
},
"kndigungsgrundWohnraum": {
"readOnly": {
"conditionGroup": [
{
"type": "equals",
"attribute": "status",
"value": "Bestehend"
}
]
}
},
"auszugsfrist": {
"readOnly": {
"conditionGroup": [
{
"type": "equals",
"attribute": "status",
"value": "Bestehend"
}
]
}
}
}
}
}

View File

@@ -110,10 +110,9 @@
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"vmhMietverhltnises2Mietobjekt": {
"vmhMietverhltnises": {
"type": "hasMany",
"relationName": "cMietobjektVmhMietverhltnis",
"foreign": "vmhMietobjekt2Mietverhltnis",
"foreign": "vmhMietobjekt",
"entity": "CVmhMietverhltnis",
"audited": false,
"isCustom": true

View File

@@ -73,7 +73,7 @@
"isCustom": true
},
"kndigungsgrundWohnraum": {
"type": "enum",
"type": "multiEnum",
"required": false,
"options": [
"Mietrückstand",
@@ -85,18 +85,7 @@
"573a Abs. 2 (Einliegerwohnung)",
"GewerbeOrdentlich"
],
"style": {
"Mietrückstand": null,
"Eigenbedarf": null,
"Fehlverhalten": null,
"Verwertung": null,
"ZVG Eigenbedarf": null,
"573a Abs. 1 (nicht mehr als 2 Whng.)": null,
"573a Abs. 2 (Einliegerwohnung)": null,
"GewerbeOrdentlich": null
},
"default": "Mietrückstand",
"maxLength": 100,
"default": ["Mietrückstand"],
"isCustom": true
},
"auszugsfrist": {
@@ -119,12 +108,14 @@
"options": [
"Kündigung Vermieter",
"Kündigung Mieter",
"Aufhebungsvertrag",
"Befristung",
"ZVG Zuschlagsbeschluss"
],
"style": {
"Kündigung Vermieter": null,
"Kündigung Mieter": null,
"Aufhebungsvertrag": null,
"Befristung": null,
"ZVG Zuschlagsbeschluss": null
},
@@ -138,6 +129,11 @@
"required": true,
"before": "auszugsfrist",
"isCustom": true
},
"vmhMietobjekt": {
"type": "link",
"required": false,
"isCustom": true
}
},
"links": {
@@ -228,10 +224,9 @@
"audited": false,
"isCustom": true
},
"vmhMietobjekt2Mietverhltnis": {
"type": "hasMany",
"relationName": "cMietobjektVmhMietverhltnis",
"foreign": "vmhMietverhltnises2Mietobjekt",
"vmhMietobjekt": {
"type": "belongsTo",
"foreign": "vmhMietverhltnises",
"entity": "CMietobjekt",
"audited": false,
"isCustom": true

View File

@@ -55,24 +55,25 @@ fi
echo ""
# 2. Dateirechte prüfen
# 2. Dateirechte prüfen und korrigieren
echo -e "${BLUE}[2/3] Prüfe Dateirechte...${NC}"
echo "---"
WRONG_OWNER=0
FIXED_FILES=0
CUSTOM_FILES=$(find "$CUSTOM_DIR" -type f 2>/dev/null || echo "")
CUSTOM_DIRS=$(find "$CUSTOM_DIR" -type d 2>/dev/null || echo "")
if [ -z "$CUSTOM_FILES" ]; then
echo -e "${YELLOW}⚠ Warnung: Keine Dateien im custom/ Verzeichnis gefunden${NC}"
WARNINGS=$((WARNINGS + 1))
else
# Prüfe Dateien
while IFS= read -r file; do
if [ -n "$file" ]; then
OWNER=$(stat -c '%U:%G' "$file" 2>/dev/null || echo "unknown:unknown")
if [ "$OWNER" != "www-data:www-data" ]; then
echo -e "${YELLOW}⚠ Warnung: Falsche Dateirechte für $file (Owner: $OWNER, erwartet: www-data:www-data)${NC}"
WRONG_OWNER=$((WRONG_OWNER + 1))
WARNINGS=$((WARNINGS + 1))
fi
fi
done <<< "$CUSTOM_FILES"
@@ -81,11 +82,30 @@ else
echo -e "${GREEN}✓ Alle Dateien haben korrekte Berechtigungen (www-data:www-data)${NC}"
else
echo -e "${YELLOW}$WRONG_OWNER Dateien mit falschen Berechtigungen gefunden${NC}"
echo ""
echo "Zum Beheben aller Berechtigungen ausführen:"
echo " sudo chown -R www-data:www-data $CUSTOM_DIR"
echo " sudo chmod -R 664 $CUSTOM_DIR/**/*.json"
echo " sudo chmod -R 775 $CUSTOM_DIR/**/*/ # Verzeichnisse"
echo -e "${BLUE}→ Korrigiere Berechtigungen automatisch...${NC}"
# Korrigiere Owner für alle Dateien
if sudo chown -R www-data:www-data "$CUSTOM_DIR" 2>/dev/null; then
# Korrigiere Dateiberechtigungen
while IFS= read -r file; do
if [ -n "$file" ]; then
sudo chmod 664 "$file" 2>/dev/null || true
fi
done <<< "$CUSTOM_FILES"
# Korrigiere Verzeichnisberechtigungen
while IFS= read -r dir; do
if [ -n "$dir" ]; then
sudo chmod 775 "$dir" 2>/dev/null || true
fi
done <<< "$CUSTOM_DIRS"
FIXED_FILES=$WRONG_OWNER
echo -e "${GREEN}$FIXED_FILES Dateien korrigiert${NC}"
else
echo -e "${RED}✗ Fehler: Berechtigungen konnten nicht korrigiert werden${NC}"
ERRORS=$((ERRORS + 1))
fi
fi
fi

View File

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