From ddf7cdc037c9a311405e6999ba908d71b9596dad Mon Sep 17 00:00:00 2001
From: "p.neub" <p.neub@adito.de>
Date: Wed, 17 Nov 2021 14:30:09 +0100
Subject: [PATCH] =?UTF-8?q?[Projekt:=20xRM-Sales][TicketNr.:=202001680][Ch?=
 =?UTF-8?q?ecklistentryvalues=20werden=20beim=20L=C3=B6schen=20von=20Sales?=
 =?UTF-8?q?projects=20nicht=20ber=C3=BCcksichtigt]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../recordcontainers/db/onDBDelete.js         | 54 ++++++++-----------
 1 file changed, 22 insertions(+), 32 deletions(-)

diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js b/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js
index 169c88c898..885fb8ab82 100644
--- a/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js
@@ -9,45 +9,35 @@ var currentId = vars.getString("$field.SALESPROJECTID");
 
 if (currentId)
 {
-    var toDelete = [
-    "SALESPROJECT_MILESTONE",
-    "SALESPROJECT_TOUCHPOINT",
-    "CLASSIFICATIONSTORAGE"
+    var directRefTables = [
+        "SALESPROJECT_MILESTONE",
+        "SALESPROJECT_TOUCHPOINT"
+    ];
+    var objectTypeRefTables = [
+        "CLASSIFICATION",
+        "CLASSIFICATIONSTORAGE",
+        "COMPETITION",
+        "OBJECTMEMBER",
+        "FORECAST",
+        "CHECKLISTENTRYVALUE"
     ];
     
-    toDelete = toDelete.map(function(pTable)
+    var deleteStatements = [];
+    directRefTables.forEach(function(pTable)
     {
-        var cond;
-        if(pTable != "CLASSIFICATIONSTORAGE")
-            cond = newWhere(pTable + ".SALESPROJECT_ID", currentId)
-        else 
-            cond = newWhere(pTable + ".OBJECT_ROWID", currentId)
-        
-        return [pTable, cond.build()];
+        var cond = newWhere(pTable + ".SALESPROJECT_ID", currentId);
+        deleteStatements.push([pTable, cond.build()]);
     });
-    
-    
-    
-    var modulesToDelete = [
-    "CLASSIFICATION",
-    "COMPETITION",
-    "OBJECTMEMBER",
-    "FORECAST"
-    ];
-
-    toDelete = toDelete.concat(modulesToDelete.map(function(pTableComp)
+    objectTypeRefTables.forEach(function(pTable)
     {
-        var cond = newWhere(pTableComp + ".OBJECT_TYPE", ContextUtils.getCurrentContextId())
-                       .and(pTableComp + ".OBJECT_ROWID", currentId)
-        
-        return [pTableComp, cond.build()];
-    }));
-    
-    
-    db.deletes(toDelete);
+        var cond = newWhere(pTable + ".OBJECT_TYPE", ContextUtils.getCurrentContextId())
+            .and(pTable + ".OBJECT_ROWID", currentId)
+        deleteStatements.push([pTable, cond.build()]);
+    });
+    db.deletes(deleteStatements);
 }
 
 new AttributeRelationQuery(currentId, null, ContextUtils.getCurrentContextId())
     .deleteAllAttributes();
 
-WorkflowSignalSender.deleted();
\ No newline at end of file
+WorkflowSignalSender.deleted();
-- 
GitLab