feat: Add termination functionality for rental agreements
- Introduced new entity `CKuendigung` for managing terminations. - Added fields for termination details including date, reason, type, and status. - Implemented backend service to initiate terminations from rental agreements. - Created frontend handler for termination actions with confirmation dialog. - Updated metadata and layouts for `CKuendigung` to support new functionality. - Added internationalization support for English and German languages. - Enhanced existing entities to establish relationships with terminations.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"boolFilterList": [
|
||||
"onlyMy"
|
||||
],
|
||||
"iconClass": "fas fa-file-contract",
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
"relationshipPanels": {
|
||||
"vermieter": {
|
||||
"layout": null,
|
||||
"selectPrimaryFilterName": null
|
||||
},
|
||||
"mieter": {
|
||||
"layout": null,
|
||||
"selectPrimaryFilterName": null
|
||||
},
|
||||
"dokumenteKuendigung": {
|
||||
"layout": null,
|
||||
"selectPrimaryFilterName": null
|
||||
},
|
||||
"contactsKuendigung": {
|
||||
"layout": null,
|
||||
"selectPrimaryFilterName": "portalUsers"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,16 @@
|
||||
"iconHtml": "<span class=\"fas fa-euro-sign\"></span>",
|
||||
"style": "warning",
|
||||
"acl": "edit"
|
||||
},
|
||||
{
|
||||
"name": "initiateTermination",
|
||||
"label": "Initiate Termination",
|
||||
"handler": "custom:handlers/mietverhaeltnis/termination-action",
|
||||
"initFunction": "initInitiateTermination",
|
||||
"actionFunction": "actionInitiateTermination",
|
||||
"iconHtml": "<span class=\"fas fa-file-contract\"></span>",
|
||||
"style": "primary",
|
||||
"acl": "edit"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -294,6 +294,22 @@
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungenVermieter": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBeteiligteKuendigungVermieter",
|
||||
"foreign": "vermieter",
|
||||
"entity": "CKuendigung",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungenMieter": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBeteiligteKuendigungMieter",
|
||||
"foreign": "mieter",
|
||||
"entity": "CKuendigung",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"dokumentesBeteiligte": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBeteiligteDokumente",
|
||||
|
||||
@@ -176,6 +176,14 @@
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungDokumente": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cDokumenteKuendigung",
|
||||
"foreign": "dokumenteKuendigung",
|
||||
"entity": "CKuendigung",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"beteiligte2dokumente": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBeteiligteDokumente",
|
||||
|
||||
@@ -0,0 +1,338 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"collaborators": {
|
||||
"type": "linkMultiple",
|
||||
"view": "views/fields/collaborators",
|
||||
"maxCount": 30,
|
||||
"fieldManagerParamList": [
|
||||
"readOnly",
|
||||
"readOnlyAfterCreate",
|
||||
"audited",
|
||||
"autocompleteOnEmpty",
|
||||
"maxCount",
|
||||
"inlineEditDisabled",
|
||||
"tooltipText"
|
||||
]
|
||||
},
|
||||
"kuendigungsdatum": {
|
||||
"type": "date",
|
||||
"required": true,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungsfrist": {
|
||||
"type": "date",
|
||||
"required": true,
|
||||
"after": "kuendigungsdatum",
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungsgrund": {
|
||||
"type": "multiEnum",
|
||||
"required": true,
|
||||
"options": [
|
||||
"Mietrückstand",
|
||||
"Eigenbedarf",
|
||||
"Fehlverhalten",
|
||||
"Verwertung",
|
||||
"ZVG Eigenbedarf",
|
||||
"573a Abs. 1 (nicht mehr als 2 Whng.)",
|
||||
"573a Abs. 2 (Einliegerwohnung)",
|
||||
"GewerbeOrdentlich",
|
||||
"Sonstige"
|
||||
],
|
||||
"default": ["Mietrückstand"],
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungsart": {
|
||||
"type": "enum",
|
||||
"required": true,
|
||||
"options": [
|
||||
"Ordentlich",
|
||||
"Außerordentlich (fristlos)",
|
||||
"Außerordentlich (mit sozialer Frist)"
|
||||
],
|
||||
"style": {
|
||||
"Ordentlich": "success",
|
||||
"Außerordentlich (fristlos)": "danger",
|
||||
"Außerordentlich (mit sozialer Frist)": "warning"
|
||||
},
|
||||
"default": "Ordentlich",
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigenderPartei": {
|
||||
"type": "enum",
|
||||
"required": true,
|
||||
"options": [
|
||||
"Vermieter",
|
||||
"Mieter"
|
||||
],
|
||||
"style": {
|
||||
"Vermieter": "primary",
|
||||
"Mieter": "info"
|
||||
},
|
||||
"default": "Vermieter",
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"status": {
|
||||
"type": "enum",
|
||||
"required": true,
|
||||
"options": [
|
||||
"Entwurf",
|
||||
"Versendet",
|
||||
"Zugestellt",
|
||||
"Anerkannt",
|
||||
"Bestritten",
|
||||
"Vollzogen",
|
||||
"Widerrufen"
|
||||
],
|
||||
"style": {
|
||||
"Entwurf": null,
|
||||
"Versendet": "warning",
|
||||
"Zugestellt": "info",
|
||||
"Anerkannt": "success",
|
||||
"Bestritten": "danger",
|
||||
"Vollzogen": "success",
|
||||
"Widerrufen": null
|
||||
},
|
||||
"default": "Entwurf",
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"zustellungsdatum": {
|
||||
"type": "date",
|
||||
"required": false,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"zustellungsart": {
|
||||
"type": "enum",
|
||||
"required": false,
|
||||
"options": [
|
||||
"Persönlich",
|
||||
"Einschreiben",
|
||||
"Gerichtlicher Zustellungsbevollmächtigter",
|
||||
"E-Mail (sofern vereinbart)",
|
||||
"Sonstige"
|
||||
],
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"rueckstandsbetrag": {
|
||||
"type": "currency",
|
||||
"required": false,
|
||||
"onlyDefaultCurrency": true,
|
||||
"conversionDisabled": true,
|
||||
"min": 0,
|
||||
"decimal": true,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"monateMietrückstand": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
"min": 0,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"schonfristGewaehrt": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"schonfristDatum": {
|
||||
"type": "date",
|
||||
"required": false,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"besorgnisNichtRechtzeitigerAuszug": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"anmerkungen": {
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"vmhMietverhltnis": {
|
||||
"type": "link",
|
||||
"required": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"mietobjekt": {
|
||||
"type": "link",
|
||||
"required": false,
|
||||
"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
|
||||
},
|
||||
"collaborators": {
|
||||
"type": "hasMany",
|
||||
"entity": "User",
|
||||
"relationName": "entityCollaborator",
|
||||
"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
|
||||
},
|
||||
"vmhMietverhltnis": {
|
||||
"type": "belongsTo",
|
||||
"foreign": "kuendigungen",
|
||||
"entity": "CVmhMietverhltnis",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"mietobjekt": {
|
||||
"type": "belongsTo",
|
||||
"foreign": "kuendigungen",
|
||||
"entity": "CMietobjekt",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"vermieter": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBeteiligteKuendigungVermieter",
|
||||
"foreign": "kuendigungenVermieter",
|
||||
"entity": "CBeteiligte",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"mieter": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBeteiligteKuendigungMieter",
|
||||
"foreign": "kuendigungenMieter",
|
||||
"entity": "CBeteiligte",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"dokumenteKuendigung": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cDokumenteKuendigung",
|
||||
"foreign": "kuendigungDokumente",
|
||||
"entity": "CDokumente",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"contactsKuendigung": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cKuendigungContact",
|
||||
"foreign": "cKuendigungContact",
|
||||
"entity": "Contact",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
}
|
||||
},
|
||||
"collection": {
|
||||
"orderBy": "createdAt",
|
||||
"order": "desc",
|
||||
"textFilterFields": [
|
||||
"name"
|
||||
],
|
||||
"fullTextSearch": false,
|
||||
"countDisabled": false
|
||||
},
|
||||
"indexes": {
|
||||
"name": {
|
||||
"columns": [
|
||||
"name",
|
||||
"deleted"
|
||||
]
|
||||
},
|
||||
"assignedUser": {
|
||||
"columns": [
|
||||
"assignedUserId",
|
||||
"deleted"
|
||||
]
|
||||
},
|
||||
"createdAt": {
|
||||
"columns": [
|
||||
"createdAt",
|
||||
"deleted"
|
||||
]
|
||||
},
|
||||
"kuendigungsdatum": {
|
||||
"columns": [
|
||||
"kuendigungsdatum",
|
||||
"deleted"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -157,6 +157,14 @@
|
||||
"entity": "CMietinkasso",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungen": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cKuendigungMietobjekt",
|
||||
"foreign": "mietobjekt",
|
||||
"entity": "CKuendigung",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
}
|
||||
},
|
||||
"collection": {
|
||||
|
||||
@@ -280,6 +280,14 @@
|
||||
"entity": "CMietobjekt",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"kuendigungen": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cKuendigungVmhMietverhltnis",
|
||||
"foreign": "vmhMietverhltnis",
|
||||
"entity": "CKuendigung",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
}
|
||||
},
|
||||
"collection": {
|
||||
|
||||
@@ -94,6 +94,14 @@
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"cKuendigungContact": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cKuendigungContact",
|
||||
"foreign": "contactsKuendigung",
|
||||
"entity": "CKuendigung",
|
||||
"audited": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"cBankverbindungenContact": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cBankverbindungContact",
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
[
|
||||
[
|
||||
{
|
||||
"name": "name"
|
||||
},
|
||||
{
|
||||
"name": "status"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "kuendigungsart"
|
||||
},
|
||||
{
|
||||
"name": "kuendigenderPartei"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "kuendigungsdatum"
|
||||
},
|
||||
{
|
||||
"name": "kuendigungsfrist"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "vmhMietverhltnis"
|
||||
},
|
||||
{
|
||||
"name": "mietobjekt"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "kuendigungsgrund",
|
||||
"fullWidth": true
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "zustellungsdatum"
|
||||
},
|
||||
{
|
||||
"name": "zustellungsart"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "rueckstandsbetrag"
|
||||
},
|
||||
{
|
||||
"name": "monateMietrückstand"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "schonfristGewaehrt"
|
||||
},
|
||||
{
|
||||
"name": "schonfristDatum"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "besorgnisNichtRechtzeitigerAuszug"
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "description",
|
||||
"fullWidth": true
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "anmerkungen",
|
||||
"fullWidth": true
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "assignedUser"
|
||||
},
|
||||
{
|
||||
"name": "teams"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "createdAt"
|
||||
},
|
||||
{
|
||||
"name": "modifiedAt"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "createdBy"
|
||||
},
|
||||
{
|
||||
"name": "modifiedBy"
|
||||
}
|
||||
]
|
||||
]
|
||||
@@ -0,0 +1,40 @@
|
||||
[
|
||||
[
|
||||
{
|
||||
"name": "name"
|
||||
},
|
||||
{
|
||||
"name": "status"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "kuendigungsart"
|
||||
},
|
||||
{
|
||||
"name": "kuendigenderPartei"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "kuendigungsdatum"
|
||||
},
|
||||
{
|
||||
"name": "kuendigungsfrist"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "vmhMietverhltnis"
|
||||
},
|
||||
{
|
||||
"name": "mietobjekt"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "assignedUser"
|
||||
},
|
||||
false
|
||||
]
|
||||
]
|
||||
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"name": "name",
|
||||
"link": true
|
||||
},
|
||||
{
|
||||
"name": "status"
|
||||
},
|
||||
{
|
||||
"name": "kuendigungsart"
|
||||
},
|
||||
{
|
||||
"name": "kuendigungsdatum"
|
||||
},
|
||||
{
|
||||
"name": "kuendigungsfrist"
|
||||
},
|
||||
{
|
||||
"name": "kuendigenderPartei"
|
||||
},
|
||||
{
|
||||
"name": "vmhMietverhltnis"
|
||||
},
|
||||
{
|
||||
"name": "mietobjekt"
|
||||
},
|
||||
{
|
||||
"name": "assignedUser"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"entity": true,
|
||||
"layouts": true,
|
||||
"tab": true,
|
||||
"acl": true,
|
||||
"customizable": true,
|
||||
"type": "BasePlus",
|
||||
"module": "Custom",
|
||||
"object": true,
|
||||
"isCustom": true
|
||||
}
|
||||
Reference in New Issue
Block a user