From 02224049d221c6aa901360b6f0170ddf635df457 Mon Sep 17 00:00:00 2001
From: "p.neub" <p.neub@adito.de>
Date: Fri, 21 May 2021 08:19:45 +0200
Subject: [PATCH] =?UTF-8?q?[Projekt:=20xRM-Sales][TicketNr.:=201081069][An?=
 =?UTF-8?q?gebot/Beleg/Vertrag=20anlegen=20f=C3=BCr=20Kontakt,=20der=20zur?=
 =?UTF-8?q?=20L=C3=B6schung=20vorgesehen,=20ist=20in=20den=20Contexten=20i?=
 =?UTF-8?q?m=20Gegensatz=20zur=20360=20Grad=20=20m=C3=B6glich]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 entity/AnyContact_entity/AnyContact_entity.aod         |  4 ++++
 .../recordcontainers/db/conditionProcess.js            | 10 +++++++++-
 entity/Contract_entity/Contract_entity.aod             |  6 ++++++
 .../children/ignorecontactstates_param/valueProcess.js |  7 +++++++
 entity/Offer_entity/Offer_entity.aod                   |  4 ++++
 .../children/ignorecontactstates_param/valueProcess.js |  7 +++++++
 entity/Order_entity/Order_entity.aod                   |  6 ++++++
 .../children/ignorecontactstates_param/valueProcess.js |  7 +++++++
 8 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 entity/Contract_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
 create mode 100644 entity/Offer_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
 create mode 100644 entity/Order_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js

diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod
index 8426dd6b95..0588ebec20 100644
--- a/entity/AnyContact_entity/AnyContact_entity.aod
+++ b/entity/AnyContact_entity/AnyContact_entity.aod
@@ -127,6 +127,10 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityParameter>
+      <name>IgnoreContactStates_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js b/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js
index 4627dbe640..fcb276c307 100644
--- a/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js
@@ -33,7 +33,15 @@ var cond = newWhereIfSet(conditionPrivateOrganisation)
                .andIfSet("CONTACT.ORGANISATION_ID", orgContactId);
 
 var contactIds = vars.exists("$param.ContactIds_param") && vars.get("$param.ContactIds_param");
-if (contactIds) 
+if (contactIds)
+{
     cond.andIfSet("CONTACT.CONTACTID", JSON.parse(contactIds), SqlBuilder.IN());
+}
+
+var ignoredContactStates = vars.exists("$param.IgnoreContactStates_param") && vars.get("$param.IgnoreContactStates_param");
+if (ignoredContactStates)
+{
+    cond.andIfSet("CONTACT.STATUS", JSON.parse(ignoredContactStates), SqlBuilder.NOT_IN());
+}
 
 result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 0b5a6a6d22..f671def3f2 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -183,6 +183,12 @@
         <entityName>AnyContact_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>IgnoreContactStates_param</name>
+          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER</name>
diff --git a/entity/Contract_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js b/entity/Contract_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
new file mode 100644
index 0000000000..c6c72b9e8a
--- /dev/null
+++ b/entity/Contract_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+result.string(JSON.stringify([
+    $KeywordRegistry.contactStatus$inactive(),
+    $KeywordRegistry.contactStatus$markToDelete()
+]));
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 04e18008a2..25500f569d 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -237,6 +237,10 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/anycontacts/children/contactids_param/valueProcess.js</valueProcess>
           <expose v="true" />
         </entityParameter>
+        <entityParameter>
+          <name>IgnoreContactStates_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
diff --git a/entity/Offer_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js b/entity/Offer_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
new file mode 100644
index 0000000000..c6c72b9e8a
--- /dev/null
+++ b/entity/Offer_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+result.string(JSON.stringify([
+    $KeywordRegistry.contactStatus$inactive(),
+    $KeywordRegistry.contactStatus$markToDelete()
+]));
diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod
index e1f343fcba..df86cfc8b0 100644
--- a/entity/Order_entity/Order_entity.aod
+++ b/entity/Order_entity/Order_entity.aod
@@ -182,6 +182,12 @@
         <entityName>AnyContact_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>IgnoreContactStates_param</name>
+          <valueProcess>%aditoprj%/entity/Order_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Documents</name>
diff --git a/entity/Order_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js b/entity/Order_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
new file mode 100644
index 0000000000..c6c72b9e8a
--- /dev/null
+++ b/entity/Order_entity/entityfields/anycontacts/children/ignorecontactstates_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+result.string(JSON.stringify([
+    $KeywordRegistry.contactStatus$inactive(),
+    $KeywordRegistry.contactStatus$markToDelete()
+]));
-- 
GitLab