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$/": { "/^docker exec espocrm php /var/www/html/command\\.php rebuild$/": {
"approve": true, "approve": true,
"matchCommandLine": true "matchCommandLine": true
} },
"./custom/scripts/check_and_rebuild.sh": true
} }
} }

View File

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

View File

@@ -22,7 +22,8 @@
"vertragsdatum": "Contract Date", "vertragsdatum": "Contract Date",
"objekttyp": "Property Type", "objekttyp": "Property Type",
"dokumentesvmhMietverhltnisse": "Documents", "dokumentesvmhMietverhltnisse": "Documents",
"vmhMietobjekt2Mietverhltnis": "Properties" "vmhMietobjekt2Mietverhltnis": "Properties",
"vmhMietobjekt": "Property"
}, },
"links": { "links": {
"meetings": "Meetings", "meetings": "Meetings",
@@ -34,7 +35,8 @@
"contactsMietverhltnis": "Portal Users", "contactsMietverhltnis": "Portal Users",
"sonstigebesitzervmhmietverhltnis": "Other Residents", "sonstigebesitzervmhmietverhltnis": "Other Residents",
"dokumentesvmhMietverhltnisse": "Documents", "dokumentesvmhMietverhltnisse": "Documents",
"vmhMietobjekt2Mietverhltnis": "Properties" "vmhMietobjekt2Mietverhltnis": "Properties",
"vmhMietobjekt": "Property"
}, },
"labels": { "labels": {
"Create CVmhMietverhltnis": "Create Mietverhältnis" "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", "name": "name",
"link": true "link": true,
"width": 20
}, },
{ {
"name": "address", "name": "rechtsform",
"width": 16 "width": 15
},
{
"name": "firmenname",
"width": 20
}, },
{ {
"name": "emailAddress", "name": "emailAddress",
"width": 16 "width": 20
}, },
{ {
"name": "phoneNumber", "name": "phoneNumber",
"width": 16 "width": 15
}, },
{ {
"name": "teams", "name": "modifiedAt",
"width": 16, "width": 10
"notSortable": true
} }
] ]

View File

@@ -1,18 +1,27 @@
[ [
{ {
"name": "name", "name": "name",
"link": true "link": true,
}, "width": 25
{
"name": "createdAt",
"width": 16
},
{
"name": "description",
"width": 16
}, },
{ {
"name": "dokument", "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, "tabBreak": true,
"tabLabel": "Mietverhältnisse" "tabLabel": "Mietverhältnisse"
}, },
"vmhMietverhltnises2Mietobjekt": { "vmhMietverhltnises": {
"index": 3 "index": 3
}, },
"_tabBreak_4": { "_tabBreak_4": {

View File

@@ -1,14 +1,27 @@
[ [
{ {
"name": "name", "name": "name",
"link": true "link": true,
}, "width": 25
{
"name": "anschrift",
"width": 16
}, },
{ {
"name": "objekttyp", "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": { "history": {
"disabled": true "disabled": true
}, },
"_tabBreak_5": {
"index": 0,
"tabBreak": true,
"tabLabel": "Mietobjekt"
},
"vmhMietobjekt2Mietverhltnis": {
"dynamicLogicVisible": null,
"style": "info",
"dynamicLogicStyled": null,
"sticked": false,
"index": 1
},
"_tabBreak_2": { "_tabBreak_2": {
"index": 2, "index": 0,
"tabBreak": true, "tabBreak": true,
"tabLabel": "Freigegebene Nutzer" "tabLabel": "Freigegebene Nutzer"
}, },
@@ -30,38 +18,38 @@
"style": "warning", "style": "warning",
"dynamicLogicStyled": null, "dynamicLogicStyled": null,
"sticked": true, "sticked": true,
"index": 3 "index": 1
}, },
"_tabBreak_0": { "_tabBreak_0": {
"index": 4, "index": 2,
"tabBreak": true, "tabBreak": true,
"tabLabel": "Vermieter" "tabLabel": "Vermieter"
}, },
"vmhbeteiligtevermieter": { "vmhbeteiligtevermieter": {
"index": 5 "index": 3
}, },
"_tabBreak_1": { "_tabBreak_1": {
"index": 6, "index": 4,
"tabBreak": true, "tabBreak": true,
"tabLabel": "Mieter" "tabLabel": "Mieter"
}, },
"vmhbeteiligtemieter": { "vmhbeteiligtemieter": {
"index": 7 "index": 5
}, },
"_tabBreak_3": { "_tabBreak_3": {
"index": 8, "index": 6,
"tabBreak": true, "tabBreak": true,
"tabLabel": "Sonstige Bewohner" "tabLabel": "Sonstige Bewohner"
}, },
"sonstigebesitzervmhmietverhltnis": { "sonstigebesitzervmhmietverhltnis": {
"index": 9 "index": 7
}, },
"_tabBreak_4": { "_tabBreak_4": {
"index": 10, "index": 8,
"tabBreak": true, "tabBreak": true,
"tabLabel": "Dokumente" "tabLabel": "Dokumente"
}, },
"dokumentesvmhMietverhltnisse": { "dokumentesvmhMietverhltnisse": {
"index": 11 "index": 9
} }
} }

View File

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

View File

@@ -1,10 +1,31 @@
[ [
{ {
"name": "name", "name": "name",
"link": true "link": true,
"width": 18
}, },
{ {
"name": "status", "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, "layout": null,
"selectPrimaryFilterName": 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", "relationName": "entityTeam",
"layoutRelationshipsDisabled": true "layoutRelationshipsDisabled": true
}, },
"vmhMietverhltnises2Mietobjekt": { "vmhMietverhltnises": {
"type": "hasMany", "type": "hasMany",
"relationName": "cMietobjektVmhMietverhltnis", "foreign": "vmhMietobjekt",
"foreign": "vmhMietobjekt2Mietverhltnis",
"entity": "CVmhMietverhltnis", "entity": "CVmhMietverhltnis",
"audited": false, "audited": false,
"isCustom": true "isCustom": true

View File

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

View File

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

View File

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