From 9856f4c6e6b4102d9a8dd14a6639eb48f7c82db8 Mon Sep 17 00:00:00 2001
From: "s.pongratz" <s.pongratz@adito.de>
Date: Fri, 30 Oct 2020 10:27:30 +0100
Subject: [PATCH] #1068034-CampaignDeshlet Fix Condition and FromClause-Prozess

---
 .../recordcontainers/db/conditionProcess.js      | 16 ++++------------
 .../recordcontainers/db/fromClauseProcess.js     |  9 +++++----
 2 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/entity/Campaign_entity/recordcontainers/db/conditionProcess.js b/entity/Campaign_entity/recordcontainers/db/conditionProcess.js
index b56a17e4e1..ea77837ea6 100644
--- a/entity/Campaign_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Campaign_entity/recordcontainers/db/conditionProcess.js
@@ -7,19 +7,11 @@ import("Sql_lib");
 
 
 var recordState = vars.get("$sys.recordstate");
+var condition = newWhere();
 
 if(vars.get("$param.ShowOnlyCurrentUsersCampaigns_param") == 'true')
 {
-    //TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
-    result.string(newWhere("CAMPAIGN.EMPLOYEE_CONTACT_ID", EmployeeUtils.getCurrentContactId()).toString());
-} else if (recordState != neon.OPERATINGSTATE_NEW && recordState != neon.OPERATINGSTATE_EDIT) {
-    var condition = new SqlBuilder()
-        .whereIfSet("STEPDATESTART_TABLEALIAS.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID")
-        .andIfSet("STEPDATEEND_TABLEALIAS.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID")
-        ;
+    condition.and("CAMPAIGN.EMPLOYEE_CONTACT_ID", EmployeeUtils.getCurrentContactId());
+}
 
-    result.string(condition.toString());
-} else {
-    
-    result.string(newWhere().toString());
-}
\ No newline at end of file
+result.string(condition.toString());
\ No newline at end of file
diff --git a/entity/Campaign_entity/recordcontainers/db/fromClauseProcess.js b/entity/Campaign_entity/recordcontainers/db/fromClauseProcess.js
index 5eec4c678e..a24f9dfb3c 100644
--- a/entity/Campaign_entity/recordcontainers/db/fromClauseProcess.js
+++ b/entity/Campaign_entity/recordcontainers/db/fromClauseProcess.js
@@ -7,10 +7,11 @@ var recordState = vars.get("$sys.recordstate");
 var res = "CAMPAIGN";
 
 if (recordState != neon.OPERATINGSTATE_NEW && recordState != neon.OPERATINGSTATE_EDIT) {
-    var subSelectDateStart = "(select min(DATE_START) as STEPDATESTART_ALIAS, CAMPAIGN_ID from CAMPAIGNSTEP group by CAMPAIGN_ID) as STEPDATESTART_TABLEALIAS";
-    var subSelectDateEnd = "(select max(DATE_END) as STEPDATEEND_ALIAS, CAMPAIGN_ID from CAMPAIGNSTEP group by CAMPAIGN_ID) as STEPDATEEND_TABLEALIAS";
-         
-    res += ", " + subSelectDateStart + ", " + subSelectDateEnd;
+    res +=  " join (select min(DATE_START) as STEPDATESTART_ALIAS, CAMPAIGN_ID from CAMPAIGNSTEP group by CAMPAIGN_ID) as STEPDATESTART_TABLEALIAS"
+        + " on STEPDATESTART_TABLEALIAS.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID "
+        + " join (select max(DATE_END) as STEPDATEEND_ALIAS, CAMPAIGN_ID from CAMPAIGNSTEP group by CAMPAIGN_ID) as STEPDATEEND_TABLEALIAS"
+        + " on STEPDATEEND_TABLEALIAS.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID ";
+
 }
 
 result.string(res);
-- 
GitLab