From dfc495a3c1d1c8851729da549fa66b6f2c749760 Mon Sep 17 00:00:00 2001
From: Vinzent Broens <v.broens@adito.de>
Date: Thu, 6 Jan 2022 15:47:11 +0100
Subject: [PATCH] Service fixes

---
 .../entityfields/contact_id/onValidation.js   |   5 +-
 .../EmployeeGroupRuleGroupRelation_entity.aod |   1 +
 .../onValidation.js                           |  18 +
 .../entityfields/name/onValidation.js         |   6 +-
 .../entityfields/name/onValidation.js         |  16 +-
 .../entityfields/groupname/onValidation.js    |  15 +-
 .../inboxfiltergroup_id/onValidation.js       |  16 +-
 .../entityfields/name/onValidation.js         |  14 +-
 .../KnowledgeManagement_entity.aod            |   7 +
 .../openadminview/onActionProcess.js          |   6 +
 .../openadminview/stateProcess.js             |   4 +
 entity/Offer_entity/Offer_entity.aod          |  76 +--
 .../Organisation_entity.aod                   | 442 +++++++++---------
 entity/Person_entity/Person_entity.aod        | 374 +++++++--------
 .../Salesproject_entity.aod                   | 162 +++----
 .../SupportTicket_entity.aod                  |  16 +-
 .../is_overdue_symbol/valueProcess.js         |   3 +-
 .../pullnextticket/onActionProcess.js         |   2 +-
 .../task_maturity_date/colorProcess.js        |   7 +-
 .../favorite_filter/filterConditionProcess.js |  12 -
 .../favorite_filter/filterValuesProcess.js    |   5 -
 .../recordcontainers/db/orderClauseProcess.js |  12 +-
 .../isoverdue.value/expression.js             |   8 +-
 .../_____LANGUAGE_EXTRA.aod                   |  15 +-
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  11 +-
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     |   9 +
 .../EmployeeGroupConRelationFilter_view.aod   |   2 +-
 process/KeywordRegistry_basic/process.js      |   1 +
 process/mailbridge_service/process.js         |  83 ++--
 29 files changed, 710 insertions(+), 638 deletions(-)
 create mode 100644 entity/EmployeeGroupRuleGroupRelation_entity/entityfields/employeegroup_rulegroup_id/onValidation.js
 create mode 100644 entity/KnowledgeManagement_entity/entityfields/openadminview/onActionProcess.js
 create mode 100644 entity/KnowledgeManagement_entity/entityfields/openadminview/stateProcess.js
 delete mode 100644 entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
 delete mode 100644 entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js

diff --git a/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js b/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js
index 89007aafec3..27fb9b3c27b 100644
--- a/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js
+++ b/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js
@@ -4,7 +4,7 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-var sql = new SqlBuilder()
+var count = new SqlBuilder()
                     .selectCount("CONTACT_ID")
                     .from("EMPLOYEEGROUP_CONTACT_RELATION")
                     .where("EMPLOYEEGROUP_CONTACT_RELATION.CONTACT_ID", vars.get("$field.CONTACT_ID"))
@@ -12,8 +12,7 @@ var sql = new SqlBuilder()
                     .andIfSet("EMPLOYEEGROUP_CONTACT_RELATION.EMPLOYEEGROUP_CONTACT_RELATIONID", vars.get("$field.EMPLOYEEGROUP_CONTACT_RELATIONID"),SqlBuilder.NOT_EQUAL())
                     .cell();
 
-
-if (sql > 0 )
+if (count > 0)
 {
     result.string(translate.text("Employee already selected") + ".");
 }
diff --git a/entity/EmployeeGroupRuleGroupRelation_entity/EmployeeGroupRuleGroupRelation_entity.aod b/entity/EmployeeGroupRuleGroupRelation_entity/EmployeeGroupRuleGroupRelation_entity.aod
index 9e50a6dabeb..1d5e3b29577 100644
--- a/entity/EmployeeGroupRuleGroupRelation_entity/EmployeeGroupRuleGroupRelation_entity.aod
+++ b/entity/EmployeeGroupRuleGroupRelation_entity/EmployeeGroupRuleGroupRelation_entity.aod
@@ -20,6 +20,7 @@
       <title>Employee group filter group</title>
       <consumer>EmpGorupRuGroups</consumer>
       <displayValueProcess>%aditoprj%/entity/EmployeeGroupRuleGroupRelation_entity/entityfields/employeegroup_rulegroup_id/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/EmployeeGroupRuleGroupRelation_entity/entityfields/employeegroup_rulegroup_id/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>EMPLOYEEGROUP_RULEGROUP_RELATIONID</name>
diff --git a/entity/EmployeeGroupRuleGroupRelation_entity/entityfields/employeegroup_rulegroup_id/onValidation.js b/entity/EmployeeGroupRuleGroupRelation_entity/entityfields/employeegroup_rulegroup_id/onValidation.js
new file mode 100644
index 00000000000..c3791daf072
--- /dev/null
+++ b/entity/EmployeeGroupRuleGroupRelation_entity/entityfields/employeegroup_rulegroup_id/onValidation.js
@@ -0,0 +1,18 @@
+import("system.neon");
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+var count = new SqlBuilder()
+                    .selectCount("EMPLOYEEGROUP_RULEGROUP_ID")
+                    .from("EMPLOYEEGROUP_RULEGROUP_RELATION")
+                    .where("EMPLOYEEGROUP_RULEGROUP_RELATION.EMPLOYEEGROUP_RULEGROUP_ID", vars.get("$field.EMPLOYEEGROUP_RULEGROUP_ID"))
+                    .and("EMPLOYEEGROUP_RULEGROUP_RELATION.EMPLOYEEGROUP_ID", vars.get("$field.EMPLOYEEGROUP_ID"))
+                    .andIfSet("EMPLOYEEGROUP_RULEGROUP_RELATION.EMPLOYEEGROUP_RULEGROUP_RELATIONID", vars.get("$field.EMPLOYEEGROUP_RULEGROUP_RELATIONID"),SqlBuilder.NOT_EQUAL())
+                    .cell();
+
+if (count > 0)
+{
+    result.string(translate.text("Rulegroup already selected") + ".");
+}
\ No newline at end of file
diff --git a/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js b/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js
index 51c6c78bd8d..de38c88fe4c 100644
--- a/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js
+++ b/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js
@@ -4,14 +4,14 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-var sql = new SqlBuilder()
+var count = new SqlBuilder()
                     .selectCount("NAME")
                     .from("EMPLOYEEGROUP_RULEGROUP")
                     .where("EMPLOYEEGROUP_RULEGROUP.NAME", vars.get("$field.NAME"))
-                    .and("EMPLOYEEGROUP_RULEGROUP.EMPLOYEEGROUP_RULEGROUPID", vars.get("sys.uid"),SqlBuilder.NOT_EQUAL())
+                    .andIfSet("EMPLOYEEGROUP_RULEGROUP.EMPLOYEEGROUP_RULEGROUPID", vars.get("$field.EMPLOYEEGROUP_RULEGROUPID"),SqlBuilder.NOT_EQUAL())
                     .cell();
 
-if (sql > 0)
+if (count > 0)
 {
     result.string(translate.text("Name has to be unique") + ".");
 }
\ No newline at end of file
diff --git a/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js b/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js
index 6cd8121c41e..8c83356e370 100644
--- a/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js
+++ b/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js
@@ -4,13 +4,15 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-var sql = new SqlBuilder()
-                        .selectCount("NAME")
-                        .from("EMPLOYEEGROUP_RULEGROUP")
-                        .where("EMPLOYEEGROUP_RULEGROUP.NAME", vars.get("$field.NAME"))
-                        .andIfSet("EMPLOYEEGROUP_RULEGROUP.EMPLOYEEGROUP_RULEGROUPID", vars.get("$field.EMPLOYEEGROUP_RULEGROUP_ID"),SqlBuilder.NOT_EQUAL())
-                        .cell();
-if (sql > 0)
+var count = new SqlBuilder()
+                    .selectCount("NAME")
+                    .from("EMPLOYEEGROUP_RULE")
+                    .where("EMPLOYEEGROUP_RULE.NAME", vars.get("$field.NAME"))
+                    .and("EMPLOYEEGROUP_RULE.EMPLOYEEGROUP_RULEGROUP_ID", vars.get("$field.EMPLOYEEGROUP_RULEGROUP_ID"))
+                    .andIfSet("EMPLOYEEGROUP_RULE.EMPLOYEEGROUP_RULEID", vars.get("$field.EMPLOYEEGROUP_RULEID"),SqlBuilder.NOT_EQUAL())
+                    .cell();
+
+if (count > 0)
 {
     result.string(translate.text("Name has to be unique") + ".");
 }
\ No newline at end of file
diff --git a/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js b/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js
index 4d5b4ab6249..7927ea76895 100644
--- a/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js
+++ b/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js
@@ -4,13 +4,14 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-var sql = new SqlBuilder()
-                        .selectCount("GROUPNAME")
-                        .from("EMPLOYEEGROUP")
-                        .where("EMPLOYEEGROUP.GROUPNAME", vars.get("$field.GROUPNAME"))
-                        .and("EMPLOYEEGROUP.EMPLOYEEGROUPID", vars.get("sys.uid"),SqlBuilder.NOT_EQUAL())
-                        .cell();
-if (sql > 0)
+var count = new SqlBuilder()
+                    .selectCount("GROUPNAME")
+                    .from("EMPLOYEEGROUP")
+                    .where("EMPLOYEEGROUP.GROUPNAME", vars.get("$field.GROUPNAME"))
+                    .andIfSet("EMPLOYEEGROUP.EMPLOYEEGROUPID", vars.get("$field.EMPLOYEEGROUPID"),SqlBuilder.NOT_EQUAL())
+                    .cell();
+
+if (count > 0)
 {
     result.string(translate.text("Name has to be unique") + ".");
 }
\ No newline at end of file
diff --git a/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js
index 1d234c44a60..7795eca9996 100644
--- a/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js
+++ b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js
@@ -4,14 +4,16 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-var sql = new SqlBuilder()
-                .selectCount("INBOXFILTERGROUP_ID")
-                .from("INBOXFILTERGROUP_RELATION")
-                .where("INBOXFILTERGROUP_RELATION.INBOXFILTERGROUP_ID", vars.get("$field.INBOXFILTERGROUP_ID"))
-                .cell();
+var count = new SqlBuilder()
+                    .selectCount("INBOXFILTERGROUP_ID")
+                    .from("INBOXFILTERGROUP_RELATION")
+                    .where("INBOXFILTERGROUP_RELATION.INBOXFILTERGROUP_ID", vars.get("$field.INBOXFILTERGROUP_ID"))
+                    .and("INBOXFILTERGROUP_RELATION.INBOX_ID", vars.get("$field.INBOX_ID"))
+                    .andIfSet("INBOXFILTERGROUP_RELATION.INBOXFILTERGROUP_RELATIONID", vars.get("$field.INBOXFILTERGROUP_RELATIONID"),SqlBuilder.NOT_EQUAL())
+                    .cell();
 
-if (sql > 0)
+if (count > 0)
 {
     result.string(translate.text("Rulegroup already selected") + ".");
-} 
+}
 
diff --git a/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js b/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js
index 5f2a7b84bb1..be35d6f5b2f 100644
--- a/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js
+++ b/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js
@@ -4,16 +4,14 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    var sql = new SqlBuilder()
+var count = new SqlBuilder()
                     .selectCount("NAME")
                     .from("INBOXFILTERGROUP")
                     .where("INBOXFILTERGROUP.NAME", vars.get("$field.NAME"))
+                    .andIfSet("INBOXFILTERGROUP.INBOXFILTERGROUPID", vars.get("$field.INBOXFILTERGROUPID"),SqlBuilder.NOT_EQUAL())
                     .cell();
 
-    if (sql > 0)
-    {
-        result.string(translate.text("Name has to be unique") + ".");
-    } 
-}
+if (count > 0)
+{
+    result.string(translate.text("Name has to be unique") + ".");
+}
\ No newline at end of file
diff --git a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
index 8e92ca42361..b89414460a3 100644
--- a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
+++ b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
@@ -337,6 +337,13 @@
       <name>ObjectType_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
     <entityField>
       <name>USEINALLTICKETCATEGORIES</name>
       <title>Use all categories</title>
diff --git a/entity/KnowledgeManagement_entity/entityfields/openadminview/onActionProcess.js b/entity/KnowledgeManagement_entity/entityfields/openadminview/onActionProcess.js
new file mode 100644
index 00000000000..b2396b10d04
--- /dev/null
+++ b/entity/KnowledgeManagement_entity/entityfields/openadminview/onActionProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("Context_lib");
+
+AdminViewUtils.open("KNOWLEDGEMANAGMENTID", [
+    ["RESPONSIBLE_CONTACT_ID", vars.get("$field.RESPONSIBLE_CONTACT_ID")],
+]);
\ No newline at end of file
diff --git a/entity/KnowledgeManagement_entity/entityfields/openadminview/stateProcess.js b/entity/KnowledgeManagement_entity/entityfields/openadminview/stateProcess.js
new file mode 100644
index 00000000000..38f2298db73
--- /dev/null
+++ b/entity/KnowledgeManagement_entity/entityfields/openadminview/stateProcess.js
@@ -0,0 +1,4 @@
+import("Context_lib");
+import("system.result");
+
+result.string(AdminViewUtils.getActionState());
\ No newline at end of file
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index eee6ec26417..cb0fc351439 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -1037,6 +1037,38 @@
       <name>Approval_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityConsumer>
+      <name>KeywordProductGroup</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordproductgroup/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>DISCOUNT_NET</name>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/discount_net/stateProcess.js</stateProcess>
+      <titleProcess>%aditoprj%/entity/Offer_entity/entityfields/discount_net/titleProcess.js</titleProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/discount_net/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>GROSS</name>
+      <title>Total gross</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+      <state>READONLY</state>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/gross/displayValueProcess.js</displayValueProcess>
+    </entityField>
     <entityActionGroup>
       <name>observeActionGroup</name>
       <children>
@@ -1148,6 +1180,12 @@
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/approveoffer/stateProcess.js</stateProcess>
       <titleProcess>%aditoprj%/entity/Offer_entity/entityfields/approveoffer/titleProcess.js</titleProcess>
     </entityActionField>
+    <entityActionField>
+      <name>newSupportTicket</name>
+      <title>New Service ticket</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newsupportticket/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TICKET</iconId>
+    </entityActionField>
     <entityActionField>
       <name>openAdminView</name>
       <title>Open admin view</title>
@@ -1155,44 +1193,6 @@
       <iconId>VAADIN:CURLY_BRACKETS</iconId>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/openadminview/stateProcess.js</stateProcess>
     </entityActionField>
-    <entityActionField>
-      <name>newSupportTicket</name>
-      <title>New Service ticket</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newsupportticket/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TICKET</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>KeywordProductGroup</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordproductgroup/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>DISCOUNT_NET</name>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/discount_net/stateProcess.js</stateProcess>
-      <titleProcess>%aditoprj%/entity/Offer_entity/entityfields/discount_net/titleProcess.js</titleProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/discount_net/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>GROSS</name>
-      <title>Total gross</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-      <state>READONLY</state>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/gross/displayValueProcess.js</displayValueProcess>
-    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 1a54cbd02b1..2a7526b6735 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -17,27 +17,6 @@
   <titlePlural>Companies</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
-    <entityActionGroup>
-      <name>observeActionGroup</name>
-      <children>
-        <entityActionField>
-          <name>observe</name>
-          <title>Observe</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
-          <isObjectAction v="true" />
-          <iconId>VAADIN:EYE</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
-          <titleProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>cancelObservation</name>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:EYE_SLASH</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
-          <titleProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
     <entityField>
       <name>CUSTOMERCODE</name>
       <title>Customercode</title>
@@ -1077,6 +1056,221 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>DuplicatesOrganisation</name>
+      <selectionMode>MULTI</selectionMode>
+      <selectionModeProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicatesorganisation/selectionModeProcess.js</selectionModeProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Duplicate_entity</entityName>
+        <fieldName>Duplicates</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DuplicateObject_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicatesorganisation/children/duplicateobject_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Plannings</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Planning_entity</entityName>
+        <fieldName>Plannings</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/plannings/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Turnovers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Turnover_entity</entityName>
+        <fieldName>DynamicTurnover</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/turnovers/children/contactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>conversionrates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalesprojectConversionRate_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ContactCommunicationSettings</name>
+      <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>CommunicationSettings_entity</entityName>
+        <fieldName>SettingsForContact</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contactcommunicationsettings/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>SearchSyncCondition_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityConsumer>
+      <name>Campaigns</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Campaign_entity</entityName>
+        <fieldName>Campaigns</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Bulkmails</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>BulkMail_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>CommunicationSettingStatusKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/communicationsettingstatuskeyword/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ChecklistEntryValues</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ChecklistEntryValue_entity</entityName>
+        <fieldName>ChecklistEntryValues</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ChecklistIds_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>Presentationmode_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>IgnoreOrderBy_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>OrganisationForQuickEntry</name>
+      <lookupIdfield>ORGANISATIONID</lookupIdfield>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/organisationforquickentry/documentation.adoc</documentation>
+      <children>
+        <entityParameter>
+          <name>WithPrivate_param</name>
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeKeyId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludeOrganisationsByPersonId</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>AllTopics</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>TopicTree_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Expanded_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/alltopics/children/expanded_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/alltopics/children/onlyactive_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>IsQuickEntry_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>OnlyNotInCampaignId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Organisation_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityActionField>
       <name>openEditDefaultsView</name>
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/documentation.adoc</documentation>
@@ -1272,6 +1466,12 @@
         </entityActionField>
       </children>
     </entityActionGroup>
+    <entityActionField>
+      <name>openClassificationOverView</name>
+      <title>Show Classification</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openclassificationoverview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:LIST_OL</iconId>
+    </entityActionField>
     <entityActionField>
       <name>openAdminView</name>
       <title>Open admin view</title>
@@ -1279,206 +1479,6 @@
       <iconId>VAADIN:CURLY_BRACKETS</iconId>
       <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openadminview/stateProcess.js</stateProcess>
     </entityActionField>
-    <entityConsumer>
-      <name>DuplicatesOrganisation</name>
-      <selectionMode>MULTI</selectionMode>
-      <selectionModeProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicatesorganisation/selectionModeProcess.js</selectionModeProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Duplicate_entity</entityName>
-        <fieldName>Duplicates</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DuplicateObject_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicatesorganisation/children/duplicateobject_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Plannings</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Planning_entity</entityName>
-        <fieldName>Plannings</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/plannings/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Turnovers</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Turnover_entity</entityName>
-        <fieldName>DynamicTurnover</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactIds_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/turnovers/children/contactids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>conversionrates</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalesprojectConversionRate_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ContactCommunicationSettings</name>
-      <refreshParent v="true" />
-      <dependency>
-        <name>dependency</name>
-        <entityName>CommunicationSettings_entity</entityName>
-        <fieldName>SettingsForContact</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contactcommunicationsettings/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>SearchSyncCondition_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityConsumer>
-      <name>Campaigns</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Campaign_entity</entityName>
-        <fieldName>Campaigns</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Bulkmails</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>BulkMail_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>CommunicationSettingStatusKeyword</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/communicationsettingstatuskeyword/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>openClassificationOverView</name>
-      <title>Show Classification</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openclassificationoverview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:LIST_OL</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>ChecklistEntryValues</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ChecklistEntryValue_entity</entityName>
-        <fieldName>ChecklistEntryValues</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ChecklistIds_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>Presentationmode_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>IgnoreOrderBy_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityProvider>
-      <name>OrganisationForQuickEntry</name>
-      <lookupIdfield>ORGANISATIONID</lookupIdfield>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/organisationforquickentry/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>WithPrivate_param</name>
-        </entityParameter>
-        <entityParameter>
-          <name>AttributeId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>AttributeKeyId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludeOrganisationsByPersonId</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>MapViewAdditionalFeatures_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>MapViewCenterLat_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>MapViewCenterLon_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityConsumer>
-      <name>AllTopics</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>TopicTree_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>Expanded_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/alltopics/children/expanded_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyActive_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/alltopics/children/onlyactive_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>IsQuickEntry_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityParameter>
-      <name>OnlyNotInCampaignId_param</name>
-      <expose v="true" />
-    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 482f939243f..d888f5fb1dc 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -23,27 +23,6 @@
   <titlePlural>Contacts</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
-    <entityActionGroup>
-      <name>observeActionGroup</name>
-      <children>
-        <entityActionField>
-          <name>observe</name>
-          <title>Observe</title>
-          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
-          <isObjectAction v="true" />
-          <iconId>VAADIN:EYE</iconId>
-          <stateProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
-          <titleProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>cancelObservation</name>
-          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:EYE_SLASH</iconId>
-          <stateProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
-          <titleProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
     <entityField>
       <name>DATEOFBIRTH</name>
       <title>Date of birth</title>
@@ -1046,6 +1025,187 @@
       <inputFormat>dd.MM.</inputFormat>
       <state>READONLY</state>
     </entityField>
+    <entityConsumer>
+      <name>DSGVODeleteFlags</name>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/dsgvodeleteflags/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DSGVODeleteFlag_entity</entityName>
+        <fieldName>DSGVODeleteFlags</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/dsgvodeleteflags/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Campaigns</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Campaign_entity</entityName>
+        <fieldName>Campaigns</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityParameter>
+      <name>FilterPreSet_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityConsumer>
+      <name>DuplicatesPerson</name>
+      <selectionMode>MULTI</selectionMode>
+      <selectionModeProcess>%aditoprj%/entity/Person_entity/entityfields/duplicatesperson/selectionModeProcess.js</selectionModeProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Duplicate_entity</entityName>
+        <fieldName>Duplicates</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DuplicateObject_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/duplicatesperson/children/duplicateobject_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ContactCommunicationSettings</name>
+      <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>CommunicationSettings_entity</entityName>
+        <fieldName>SettingsForContact</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactcommunicationsettings/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>InterestLinks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>InterestLink_entity</entityName>
+        <fieldName>InterestsForContact</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/interestlinks/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>SearchSyncCondition_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityConsumer>
+      <name>Interests</name>
+      <description>Used for the filterExtension "InterestLink_filter"</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Interest_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Bulkmails</name>
+      <description>Used for the filterExtension "BulkmailReceived_filter"</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>BulkMail_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>CommunicationSettingStatusKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communicationsettingstatuskeyword/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Salesprojects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Salesproject_entity</entityName>
+        <fieldName>Salesprojects</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>AllTopics</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>TopicTree_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Expanded_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/alltopics/children/expanded_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Servicetickets</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SupportTicket_entity</entityName>
+        <fieldName>SupportTickets</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ReturnEmpty_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/servicetickets/children/returnempty_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>TaskRequestorContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/servicetickets/children/taskrequestorcontactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>LETTERSALUTATION</name>
+      <title>Lettersalutation</title>
+    </entityField>
+    <entityField>
+      <name>contenttitle</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contenttitle/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>OnlyNotInCampaignId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Person_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityActionField>
       <name>openEditDefaultsView</name>
       <title>Edit defaults</title>
@@ -1216,6 +1376,12 @@
       <iconId>NEON:TRASH</iconId>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/deletefunction/stateProcess.js</stateProcess>
     </entityActionField>
+    <entityActionField>
+      <name>newSupportTicket</name>
+      <title>New Service ticket</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newsupportticket/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TICKET</iconId>
+    </entityActionField>
     <entityActionField>
       <name>openAdminView</name>
       <title>Open admin view</title>
@@ -1223,172 +1389,6 @@
       <iconId>VAADIN:CURLY_BRACKETS</iconId>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/openadminview/stateProcess.js</stateProcess>
     </entityActionField>
-    <entityConsumer>
-      <name>DSGVODeleteFlags</name>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/dsgvodeleteflags/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DSGVODeleteFlag_entity</entityName>
-        <fieldName>DSGVODeleteFlags</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/dsgvodeleteflags/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Campaigns</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Campaign_entity</entityName>
-        <fieldName>Campaigns</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityParameter>
-      <name>FilterPreSet_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityConsumer>
-      <name>DuplicatesPerson</name>
-      <selectionMode>MULTI</selectionMode>
-      <selectionModeProcess>%aditoprj%/entity/Person_entity/entityfields/duplicatesperson/selectionModeProcess.js</selectionModeProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Duplicate_entity</entityName>
-        <fieldName>Duplicates</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DuplicateObject_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/duplicatesperson/children/duplicateobject_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ContactCommunicationSettings</name>
-      <refreshParent v="true" />
-      <dependency>
-        <name>dependency</name>
-        <entityName>CommunicationSettings_entity</entityName>
-        <fieldName>SettingsForContact</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactcommunicationsettings/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>InterestLinks</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>InterestLink_entity</entityName>
-        <fieldName>InterestsForContact</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/interestlinks/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>SearchSyncCondition_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityConsumer>
-      <name>Interests</name>
-      <description>Used for the filterExtension "InterestLink_filter"</description>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Interest_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Bulkmails</name>
-      <description>Used for the filterExtension "BulkmailReceived_filter"</description>
-      <dependency>
-        <name>dependency</name>
-        <entityName>BulkMail_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>CommunicationSettingStatusKeyword</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communicationsettingstatuskeyword/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Salesprojects</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Salesproject_entity</entityName>
-        <fieldName>Salesprojects</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>AllTopics</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>TopicTree_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>Expanded_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/alltopics/children/expanded_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newSupportTicket</name>
-      <title>New Service ticket</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newsupportticket/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TICKET</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>Servicetickets</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SupportTicket_entity</entityName>
-        <fieldName>SupportTickets</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ReturnEmpty_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/servicetickets/children/returnempty_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>TaskRequestorContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/servicetickets/children/taskrequestorcontactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>LETTERSALUTATION</name>
-      <title>Lettersalutation</title>
-    </entityField>
-    <entityField>
-      <name>contenttitle</name>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contenttitle/valueProcess.js</valueProcess>
-    </entityField>
-    <entityParameter>
-      <name>OnlyNotInCampaignId_param</name>
-      <expose v="true" />
-    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 08c5f993e91..5975340055c 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -749,81 +749,6 @@
         </entityParameter>
       </children>
     </entityProvider>
-    <entityActionGroup>
-      <name>observeActionGroup</name>
-      <children>
-        <entityActionField>
-          <name>observe</name>
-          <title>Observe</title>
-          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
-          <isObjectAction v="true" />
-          <iconId>VAADIN:EYE</iconId>
-          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
-          <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>cancelObservation</name>
-          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:EYE_SLASH</iconId>
-          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
-          <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>export</name>
-          <title>Export</title>
-          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <iconId>NEON:EXPORT</iconId>
-          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js</stateProcess>
-          <tooltip>Export fields of this table</tooltip>
-          <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js</tooltipProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
-    <entityActionField>
-      <name>newOffer</name>
-      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/documentation.adoc</documentation>
-      <title>New offer</title>
-      <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>newTimetracking</name>
-      <title>New time tracking</title>
-      <description>Opens the time tracking context in new-mode for the selected salesproject</description>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:STOPWATCH</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>startWorkflow</name>
-      <title>Start workflow</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PLAY</iconId>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityAggregateField>
       <name>PROBABILITY_aggregate</name>
       <parentField>PROBABILITY</parentField>
@@ -862,12 +787,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityActionField>
-      <name>openClassificationOverView</name>
-      <title>Show Classification</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:LIST_OL</iconId>
-    </entityActionField>
     <entityParameter>
       <name>IgnoreChecklists_param</name>
       <expose v="true" />
@@ -910,6 +829,87 @@
         <fieldName>Contacts</fieldName>
       </dependency>
     </entityConsumer>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>export</name>
+          <title>Export</title>
+          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js</stateProcess>
+          <tooltip>Export fields of this table</tooltip>
+          <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>newOffer</name>
+      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/documentation.adoc</documentation>
+      <title>New offer</title>
+      <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newTimetracking</name>
+      <title>New time tracking</title>
+      <description>Opens the time tracking context in new-mode for the selected salesproject</description>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:STOPWATCH</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>startWorkflow</name>
+      <title>Start workflow</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PLAY</iconId>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>openClassificationOverView</name>
+      <title>Show Classification</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:LIST_OL</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/SupportTicket_entity/SupportTicket_entity.aod b/entity/SupportTicket_entity/SupportTicket_entity.aod
index 0ac955827c1..e4dea0d870b 100644
--- a/entity/SupportTicket_entity/SupportTicket_entity.aod
+++ b/entity/SupportTicket_entity/SupportTicket_entity.aod
@@ -771,7 +771,8 @@
     </entityField>
     <entityField>
       <name>IsOverDue</name>
-      <contentType>TEXT</contentType>
+      <title>Over due</title>
+      <contentType>BOOLEAN</contentType>
     </entityField>
     <entityField>
       <name>DATE_END</name>
@@ -962,6 +963,9 @@
       <contentType>DATE</contentType>
       <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/date_edit/valueProcess.js</valueProcess>
     </entityField>
+    <entityParameter>
+      <name>PullNextFilter_param</name>
+    </entityParameter>
     <entityConsumer>
       <name>KnowledgeEntries</name>
       <dependency>
@@ -1199,6 +1203,7 @@
         <dbRecordFieldMapping>
           <name>IsOverDue.value</name>
           <expression>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/isoverdue.value/expression.js</expression>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DATE_END.value</name>
@@ -1247,15 +1252,6 @@
         </linkInformation>
       </linkInformation>
       <filterExtensions>
-        <filterExtension>
-          <name>Favorite_filter</name>
-          <title>Favoritegroup</title>
-          <contentType>TEXT</contentType>
-          <filterValuesProcess>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js</filterValuesProcess>
-          <filterConditionProcess>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js</filterConditionProcess>
-          <isLookupFilter v="false" />
-          <filtertype>BASIC</filtertype>
-        </filterExtension>
         <filterExtensionSet>
           <name>Attribute_filter</name>
           <filterFieldsProcess>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/filterextensions/attribute_filter/filterFieldsProcess.js</filterFieldsProcess>
diff --git a/entity/SupportTicket_entity/entityfields/is_overdue_symbol/valueProcess.js b/entity/SupportTicket_entity/entityfields/is_overdue_symbol/valueProcess.js
index 8aa84faafb8..d47c8c67463 100644
--- a/entity/SupportTicket_entity/entityfields/is_overdue_symbol/valueProcess.js
+++ b/entity/SupportTicket_entity/entityfields/is_overdue_symbol/valueProcess.js
@@ -1,7 +1,8 @@
+import("Util_lib");
 import("system.result");
 import("system.vars");
 
-if (vars.get("$field.IsOverDue"))
+if(Utils.toBoolean(vars.get("$field.IsOverDue")))
 {
     result.string("vaadin:warning");
 }
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js
index 8d560f90102..7d76af66560 100644
--- a/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js
@@ -132,4 +132,4 @@ if(ticketID != "")
 else 
 {
     question.showMessage(translate.text("No new tickets available at this moment."));
-}
\ No newline at end of file
+}
diff --git a/entity/SupportTicket_entity/entityfields/task_maturity_date/colorProcess.js b/entity/SupportTicket_entity/entityfields/task_maturity_date/colorProcess.js
index 7d9f0d45cc4..d4fe89a7045 100644
--- a/entity/SupportTicket_entity/entityfields/task_maturity_date/colorProcess.js
+++ b/entity/SupportTicket_entity/entityfields/task_maturity_date/colorProcess.js
@@ -1,13 +1,10 @@
+import("Util_lib");
 import("system.neon");
 import("system.result");
-import("system.datetime");
 import("system.vars");
 
 
-
-var overdue =vars.get("$field.IsOverDue");
-
-if (!overdue)
+if (!Utils.toBoolean(vars.get("$field.IsOverDue")))
 {
     result.string(neon.PRIORITY_NONE_COLOR);
 }
diff --git a/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
deleted file mode 100644
index a49514ad69a..00000000000
--- a/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import("system.vars");
-import("Favorites_lib");
-import("system.result");
-import("Sql_lib");
-
-var operator = vars.get("$local.operator");
-var rawvalue = vars.get("$local.rawvalue");
-
-var objecttype = vars.get("$field.SUPPORTTICKET_OBJECTTYPE");
-var idcolumn = "TICKET.TICKETID";
-
-result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js b/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js
deleted file mode 100644
index 419128ca73f..00000000000
--- a/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("Context_lib");
-import("system.result");
-import("Favorites_lib");
-
-result.object(FavoritesUtil.getUserFavoriteGroupsByContext(ContextUtils.getCurrentContextId()));
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/recordcontainers/db/orderClauseProcess.js b/entity/SupportTicket_entity/recordcontainers/db/orderClauseProcess.js
index 0e288520769..9cd8ad79b2d 100644
--- a/entity/SupportTicket_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/SupportTicket_entity/recordcontainers/db/orderClauseProcess.js
@@ -1,4 +1,14 @@
+import("Util_lib");
+import("system.vars");
 import("system.db");
 import("system.result");
 
-result.object({"TASK.START_DATE": db.DESCENDING});
\ No newline at end of file
+
+if(Utils.toBoolean(vars.get("$param.PullNextFilter_param")))
+{
+    result.object({"TASK.START_DATE": db.ASCENDING});
+}
+else
+{
+    result.object({"TASK.START_DATE": db.DESCENDING});
+}
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/isoverdue.value/expression.js b/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/isoverdue.value/expression.js
index 1f6de45f9e5..5e391090d4d 100644
--- a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/isoverdue.value/expression.js
+++ b/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/isoverdue.value/expression.js
@@ -5,8 +5,8 @@ import("system.result");
 import("KeywordRegistry_basic");
 
 result.string( SqlBuilder.caseStatement()
-               .when("TASK.MATURITY_DATE", datetime.date(), SqlBuilder.GREATER()).then("''")
-               .when( "TASK.MATURITY_DATE is null").then("''")
-               .when( "TASK.STATUS", $KeywordRegistry.taskStatus$ended()).then("''")
-               .elseString("true"));
+               .when("TASK.MATURITY_DATE", datetime.date(), SqlBuilder.GREATER()).then("0")
+               .when( "TASK.MATURITY_DATE is null").then("0")
+               .when( "TASK.STATUS", $KeywordRegistry.taskStatus$ended()).then("0")
+               .elseString("1"));
 
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index fad0a78b9e6..5e7d445c786 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -8169,9 +8169,6 @@
     <entry>
       <key>Ticket resubmitted</key>
     </entry>
-    <entry>
-      <key>New service ticket</key>
-    </entry>
     <entry>
       <key>New date due</key>
     </entry>
@@ -9150,6 +9147,18 @@
     <entry>
       <key>Use all serviceticket categories</key>
     </entry>
+    <entry>
+      <key>Overdue</key>
+    </entry>
+    <entry>
+      <key>Please add the price of the product</key>
+    </entry>
+    <entry>
+      <key>New service ticket</key>
+    </entry>
+    <entry>
+      <key>Continue mailing</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 234c48fc2fd..d626de5fbf6 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -7749,6 +7749,10 @@
       <key>Column 30</key>
       <value>Spalte 30</value>
     </entry>
+    <entry>
+      <key>Overdue</key>
+      <value>Überfällig</value>
+    </entry>
     <entry>
       <key>Duplicate status</key>
       <value>Dublettenstatus</value>
@@ -11619,7 +11623,7 @@
     </entry>
     <entry>
       <key>Pull next ticket or create new ones</key>
-      <value></value>
+      <value>Neue Tickets ziehen oder erstellen</value>
     </entry>
     <entry>
       <key>Abgeschlossen</key>
@@ -11930,6 +11934,7 @@
     </entry>
     <entry>
       <key>Show my tickets that are in process.</key>
+      <value>Meine Tickets anzeigen, die in Bearbeitung sind.</value>
     </entry>
     <entry>
       <key>Propkey</key>
@@ -11945,6 +11950,7 @@
     </entry>
     <entry>
       <key>Show the finished Tickets in the last 4 weeks</key>
+      <value>Zeigt die abgeschlossenen Tickets der letzten 4 Wochen an. </value>
     </entry>
     <entry>
       <key>Manually</key>
@@ -12014,6 +12020,9 @@
     <entry>
       <key>Kd.-Nr.</key>
     </entry>
+    <entry>
+      <key>Please add the price of the product</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index d422cdf57e1..065c8306863 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -9228,6 +9228,15 @@
     <entry>
       <key>Use all serviceticket categories</key>
     </entry>
+    <entry>
+      <key>Overdue</key>
+    </entry>
+    <entry>
+      <key>Please add the price of the product</key>
+    </entry>
+    <entry>
+      <key>Continue mailing</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonView/EmployeeGroupConRelationFilter_view/EmployeeGroupConRelationFilter_view.aod b/neonView/EmployeeGroupConRelationFilter_view/EmployeeGroupConRelationFilter_view.aod
index 019ecd19a43..9c1504c745c 100644
--- a/neonView/EmployeeGroupConRelationFilter_view/EmployeeGroupConRelationFilter_view.aod
+++ b/neonView/EmployeeGroupConRelationFilter_view/EmployeeGroupConRelationFilter_view.aod
@@ -16,7 +16,7 @@
         <element>TABLET</element>
         <element>DESKTOP</element>
       </devices>
-      <isEditable v="false" />
+      <isEditable v="true" />
       <columns>
         <neonTableColumn>
           <name>dff8536f-f394-4117-8a58-287fa51d26bc</name>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index f834911b5c6..93e5735ff40 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -424,6 +424,7 @@ $KeywordRegistry.inboxFilterComponent$body = function(){return "BODY";};
 $KeywordRegistry.inboxFilterComponent$subject = function(){return "SUBJECT";};
 $KeywordRegistry.inboxFilterComponent$sender = function(){return "SENDER";};
 $KeywordRegistry.inboxFilterComponent$subject_body = function(){return "SUBJECT_BODY";};
+$KeywordRegistry.inboxFilterComponent$recipient = function(){return "RECIPIENT";};
 
 $KeywordRegistry.inboxFilterTarget = function(){return "InboxFilterTarget";};
 $KeywordRegistry.inboxFilterTarget$category = function(){return "CATEGORY";};
diff --git a/process/mailbridge_service/process.js b/process/mailbridge_service/process.js
index c26b4a27927..bd8c21cd139 100644
--- a/process/mailbridge_service/process.js
+++ b/process/mailbridge_service/process.js
@@ -356,8 +356,7 @@ TicketMailbridgeUtils.saveAttachement  = function(pUid, pMailObject, pType)
 TicketMailbridgeUtils.findTicket = function(pSubject, pInboxObject, pMailObj)
 {
     var ticketID = "";
-    
-    
+     
     if(pSubject != undefined && pSubject != "")
     {
         if(pSubject.match(this.codeRegex))
@@ -388,9 +387,8 @@ TicketMailbridgeUtils.findTicket = function(pSubject, pInboxObject, pMailObj)
                         ticketData = ticketData[0];
                     }
                 } 
-                
                 else 
-
+                {
                     ticketData = ticketData[0];
                 }
                 
@@ -405,8 +403,8 @@ TicketMailbridgeUtils.findTicket = function(pSubject, pInboxObject, pMailObj)
              
                     if(finalDate < vars.get("$sys.date")) // -- > new Ticket -> Problem is old Customernumber
                     {
-                        // Call function for using filer
-                        TicketMailbridgeUtils.useFiler(pInboxObject, pMailObj, true);
+                        // Call function for using filter
+                        TicketMailbridgeUtils.useFilter(pInboxObject, pMailObj, true);
                     }
                     else // --> Reopen
                     {
@@ -536,8 +534,7 @@ TicketMailbridgeUtils.findTicket = function(pSubject, pInboxObject, pMailObj)
             }   
         }
     } 
-    return ticketID;
-    
+    return ticketID;  
 }
     
             
@@ -796,7 +793,7 @@ TicketMailbridgeUtils.createTicket = function(pMailObject, pFilterResult, pInbox
 /**
  * Apply Filter on each Part
  */
-TicketMailbridgeUtils.useFiler = function(pInboxObj, pMailObject, pTicketfromOldOne)
+TicketMailbridgeUtils.useFilter = function(pInboxObj, pMailObject, pTicketfromOldOne)
 {
    
     var scoreObject = {};
@@ -818,17 +815,17 @@ TicketMailbridgeUtils.useFiler = function(pInboxObj, pMailObject, pTicketfromOld
          
         switch(component) // Where to search?
         {
-            case "BODY":
+            case $KeywordRegistry.inboxFilterComponent$body():
                 componentType = pMailObject[mail.MAIL_TEXT] || " ";
                 break;
-            case "SUBJECT":
-            case "SUBJECT_BODY":
+            case $KeywordRegistry.inboxFilterComponent$subject():
+            case $KeywordRegistry.inboxFilterComponent$subject_body():
                 componentType = pMailObject[mail.MAIL_SUBJECT] || " ";
                 break;
-            case "RECIPIENT":
+            case $KeywordRegistry.inboxFilterComponent$recipient():
                 componentType = pMailObject[mail.MAIL_RECIPIENT];
                 break;
-            case "SENDER":
+            case $KeywordRegistry.inboxFilterComponent$sender():
                 componentType = pMailObject[mail.MAIL_SENDER];
                 break;
             default:
@@ -845,7 +842,7 @@ TicketMailbridgeUtils.useFiler = function(pInboxObj, pMailObject, pTicketfromOld
             categoriesFormatted += translate.text("Search term") + " '" +   searchTerm.toString() +"' " + translate.text("determined in") + " "+ KeywordUtils.getViewValue($KeywordRegistry.inboxFilterComponent(), component) + "\n";
         }
         // If subject and body are selected for search, repeat process with body
-        if (component == "SUBJECT_BODY")
+        if (component == $KeywordRegistry.inboxFilterComponent$subject_body())
         {
             componentType = pMailObject[mail.MAIL_TEXT]
             var score = text.analyzeText(componentType, patternArr, false);
@@ -879,15 +876,19 @@ TicketMailbridgeUtils.useAttributeFilter = function(pInboxObj, pTicketID, pMailO
     var IDX_EXISTING_ATTRS = 1;
     var IDX_ATTRIBUTEID = 0;
     var attributeCountObj = {};
+    var logMessage = [];
+    
     
-    if (attributeFilters.length > 0)
-    {
     // searches for the appropriate fix attribute filter ids
-    var resultCheckFixAttrFilters = TicketMailbridgeUtils.checkAttributeFilters(attributeFilters, pMailObject);
-    matchedAttributeFilterIds = resultCheckFixAttrFilters[0];
-    var logMessage = resultCheckFixAttrFilters[1];    
+    if(attributeFilters.length > 0)
+    {
+        var resultCheckFixAttrFilters = TicketMailbridgeUtils.checkAttributeFilters(attributeFilters, pMailObject, $KeywordRegistry.attributeFilterComparisonMethod$fix());
+        resultCheckFixAttrFilters.forEach(function(FixAttrFilter){
+            matchedAttributeFilterIds.push(FixAttrFilter[0][0]);
+            logMessage.push(FixAttrFilter[1]);
+        });
     }
-    
+
     if(matchedAttributeFilterIds.length > 0)
     {
         // Fetches the stored attributes of the matching attribute filter
@@ -896,7 +897,7 @@ TicketMailbridgeUtils.useAttributeFilter = function(pInboxObj, pTicketID, pMailO
                     .where("AB_ATTRIBUTERELATION.OBJECT_ROWID", matchedAttributeFilterIds, SqlBuilder.IN())
                     .and("AB_ATTRIBUTERELATION.OBJECT_TYPE", "AttributeFilter")
                     .table();
-        
+                    
         // creates the max count object so that the maximum number of the attribute can be checked
         if(attributesToInsert.length > 0)
         {
@@ -951,7 +952,8 @@ TicketMailbridgeUtils.useAttributeFilter = function(pInboxObj, pTicketID, pMailO
                     
                 }
             });
-            new db.inserts(inserts);
+            db.inserts(inserts);
+
         }
     }
     if(inserts.length > 0)
@@ -966,15 +968,16 @@ TicketMailbridgeUtils.useAttributeFilter = function(pInboxObj, pTicketID, pMailO
 * @param pAttributeFilters {Array}      the detected attribute filters
 * @param pMailObject {Object}           the inbox object created in funktion TicketMailbridgeUtils.getInboxInformation()
 * 
-* @return {Array}                       structure: [[attributeFilterId], logMessage]
+* @return {Array}                       structure: [[attributeFilterId, logMessage]]
 */
 TicketMailbridgeUtils.checkAttributeFilters = function(pAttributeFilters, pMailObject)
 {
-    var filterResult;
+    var filterResult = [];
     
     pAttributeFilters.forEach(function([attributeFilterId, component, searchterm])
     {
         var textToSearch;
+        var tempFilterResult;
         searchterm = searchterm || "";
         
         switch(component) // Where to search?
@@ -982,7 +985,8 @@ TicketMailbridgeUtils.checkAttributeFilters = function(pAttributeFilters, pMailO
             case $KeywordRegistry.inboxFilterComponent$body():
                 textToSearch = pMailObject[mail.MAIL_TEXT] || " ";
                 break;
-            case $KeywordRegistry.inboxFilterComponent$subject():
+            case $KeywordRegistry.inboxFilterComponent$subject(),
+                 $KeywordRegistry.inboxFilterComponent$subject_body():
                 textToSearch = pMailObject[mail.MAIL_SUBJECT] || " ";
                 break;
             case $KeywordRegistry.inboxFilterComponent$sender():
@@ -993,7 +997,22 @@ TicketMailbridgeUtils.checkAttributeFilters = function(pAttributeFilters, pMailO
                 break;
         }
         textToSearch = textToSearch || "";
-        filterResult = TicketMailbridgeUtils.checkFixAttributeFilters(searchterm, attributeFilterId, textToSearch, component);
+        tempFilterResult = TicketMailbridgeUtils.checkFixAttributeFilters(searchterm, attributeFilterId, textToSearch, component);
+        if(tempFilterResult[0] != "")
+        {
+            filterResult.push(tempFilterResult);
+        }
+        // If subject and body are selected for search, repeat process with body
+        if(component == $KeywordRegistry.inboxFilterComponent$subject_body())
+        {
+            textToSearch = pMailObject[mail.MAIL_TEXT] || " ";
+            textToSearch = textToSearch || "";
+            tempFilterResult = TicketMailbridgeUtils.checkFixAttributeFilters(searchterm, attributeFilterId, textToSearch, component);
+            if(tempFilterResult[0] != "")
+            {
+                filterResult.push(tempFilterResult);
+            }
+        }
     });
     
     return filterResult;
@@ -1007,21 +1026,21 @@ TicketMailbridgeUtils.checkAttributeFilters = function(pAttributeFilters, pMailO
 * @param pTextToSearch {String}        the mail text
 * @param pComponent {String}           the component being searched
 * 
-* @return {Array}                      structure: [[attributeFilterId], logMessage]
+* @return {Array}                      structure: [attributeFilterId, logMessage]
 */
 TicketMailbridgeUtils.checkFixAttributeFilters = function(pSearchterm, pAttributeFilterId, pTextToSearch, pComponent)
 {
     var matchedAttributeFilterIds = [];
-    var logMessageAttributeFiilter = "";
+    var logMessageAttributeFilter = "";
             
         if(pTextToSearch.match(new RegExp(pSearchterm, "g")) != null)
         {
-            logMessageAttributeFiilter += translate.text("Search term") + " '" + pSearchterm +"' " + translate.text("determined in") + " " + KeywordUtils.getViewValue($KeywordRegistry.inboxFilterComponent(), pComponent) + "\n";
+            logMessageAttributeFilter += translate.text("Search term") + " '" + pSearchterm +"' " + translate.text("determined in") + " " + KeywordUtils.getViewValue($KeywordRegistry.inboxFilterComponent(), pComponent) + "\n";
            
             matchedAttributeFilterIds.push(pAttributeFilterId);
         }
     
-    return [matchedAttributeFilterIds, logMessageAttributeFiilter];
+    return [matchedAttributeFilterIds, logMessageAttributeFilter];
 }
 
 /**
@@ -1089,6 +1108,6 @@ var inboxObj = TicketMailbridgeUtils.getInboxInformationAllRecipients(recipients
 if(TicketMailbridgeUtils.findTicket(mailObj[mail.MAIL_SUBJECT], inboxObj, mailObj) == "")
 {
     // Call function for using filter
-    TicketMailbridgeUtils.useFiler(inboxObj, mailObj);
+    TicketMailbridgeUtils.useFilter(inboxObj, mailObj);
 }
  
\ No newline at end of file
-- 
GitLab