From 727babf08a355fa5a764334fca287e8d51219701 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Tue, 27 Aug 2019 10:55:51 +0200
Subject: [PATCH] search for address / communication

---
 entity/Address_entity/Address_entity.aod      |  7 +++++++
 .../Communication_entity.aod                  |  1 +
 .../Organisation_entity.aod                   | 19 +++++++++++++++----
 .../addresses/filterConditionProcess.js       |  4 ++++
 .../communications/filterConditionProcess.js  |  4 ++++
 .../filterConditionProcess.js                 |  0
 entity/Person_entity/Person_entity.aod        | 13 ++++++++++++-
 .../communications/filterConditionProcess.js  |  4 ++++
 .../persaddresses/filterConditionProcess.js   |  4 ++++
 entity/Product_entity/Product_entity.aod      |  2 +-
 10 files changed, 52 insertions(+), 6 deletions(-)
 create mode 100644 entity/Organisation_entity/recordcontainers/db/recordfieldmappings/addresses/filterConditionProcess.js
 create mode 100644 entity/Organisation_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js
 rename entity/Organisation_entity/recordcontainers/db/recordfieldmappings/{product_consumer => products}/filterConditionProcess.js (100%)
 create mode 100644 entity/Person_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js
 create mode 100644 entity/Person_entity/recordcontainers/db/recordfieldmappings/persaddresses/filterConditionProcess.js

diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod
index 4873f86ea5e..e7414beda0b 100644
--- a/entity/Address_entity/Address_entity.aod
+++ b/entity/Address_entity/Address_entity.aod
@@ -425,10 +425,12 @@
         <dbRecordFieldMapping>
           <name>ADDRESS.value</name>
           <recordfield>ADDRESS.ADDRESS</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CITY.value</name>
           <recordfield>ADDRESS.CITY</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ADDRESSADDITION.value</name>
@@ -437,6 +439,7 @@
         <dbRecordFieldMapping>
           <name>COUNTRY.value</name>
           <recordfield>ADDRESS.COUNTRY</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ADDRESSID.value</name>
@@ -453,6 +456,7 @@
         <dbRecordFieldMapping>
           <name>DISTRICT.value</name>
           <recordfield>ADDRESS.DISTRICT</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>BUILDINGNO.value</name>
@@ -461,6 +465,7 @@
         <dbRecordFieldMapping>
           <name>REGION.value</name>
           <recordfield>ADDRESS.REGION</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
@@ -469,10 +474,12 @@
         <dbRecordFieldMapping>
           <name>STATE.value</name>
           <recordfield>ADDRESS.PROVINCE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ZIP.value</name>
           <recordfield>ADDRESS.ZIP</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ADDR_TYPE.displayValue</name>
diff --git a/entity/Communication_entity/Communication_entity.aod b/entity/Communication_entity/Communication_entity.aod
index c9d117fe06f..f45da937b4f 100644
--- a/entity/Communication_entity/Communication_entity.aod
+++ b/entity/Communication_entity/Communication_entity.aod
@@ -264,6 +264,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         <dbRecordFieldMapping>
           <name>ADDR.value</name>
           <recordfield>COMMUNICATION.ADDR</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>MEDIUM_ID.value</name>
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 8250703e17d..76b22d9d247 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -860,7 +860,7 @@
       <iconId>VAADIN:ENVELOPE</iconId>
     </entityActionField>
     <entityConsumer>
-      <name>Product_consumer</name>
+      <name>Products</name>
       <description>Needed for search via Offer</description>
       <dependency>
         <name>dependency</name>
@@ -941,7 +941,6 @@
         <dbRecordFieldMapping>
           <name>ADDRESS_ID.value</name>
           <recordfield>CONTACT.ADDRESS_ID</recordfield>
-          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CUSTOMERCODE.value</name>
@@ -1056,11 +1055,23 @@
           <filtertype>EXTENDED</filtertype>
         </consumerMapping>
         <consumerMapping>
-          <name>Product_consumer</name>
-          <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/product_consumer/filterConditionProcess.js</filterConditionProcess>
+          <name>Addresses</name>
+          <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/addresses/filterConditionProcess.js</filterConditionProcess>
+          <isFilterable v="true" />
+          <filtertype>BASIC</filtertype>
+        </consumerMapping>
+        <consumerMapping>
+          <name>Products</name>
+          <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/products/filterConditionProcess.js</filterConditionProcess>
           <isFilterable v="true" />
           <filtertype>EXTENDED</filtertype>
         </consumerMapping>
+        <consumerMapping>
+          <name>Communications</name>
+          <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js</filterConditionProcess>
+          <isFilterable v="true" />
+          <filtertype>BASIC</filtertype>
+        </consumerMapping>
       </recordFieldMappings>
       <filterExtensions>
         <filterExtensionSet>
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/addresses/filterConditionProcess.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/addresses/filterConditionProcess.js
new file mode 100644
index 00000000000..2e2393946ee
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/addresses/filterConditionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("CONTACTID in (select CONTACT_ID from ADDRESS where "  + vars.get("$local.condition") + " )");
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js
new file mode 100644
index 00000000000..eb7d2f218c6
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("CONTACTID in (select CONTACT_ID from COMMUNICATION where "  + vars.get("$local.condition") + " )");
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/product_consumer/filterConditionProcess.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/products/filterConditionProcess.js
similarity index 100%
rename from entity/Organisation_entity/recordcontainers/db/recordfieldmappings/product_consumer/filterConditionProcess.js
rename to entity/Organisation_entity/recordcontainers/db/recordfieldmappings/products/filterConditionProcess.js
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 96c81fd2c99..714781d05fa 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -1047,7 +1047,6 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         <dbRecordFieldMapping>
           <name>ADDRESS_ID.value</name>
           <recordfield>CONTACT.ADDRESS_ID</recordfield>
-          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ORGANISATION_ID.displayValue</name>
@@ -1158,6 +1157,18 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <name>ORGANISATION_CONTACTID.value</name>
           <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/organisation_contactid.value/expression.js</expression>
         </dbRecordFieldMapping>
+        <consumerMapping>
+          <name>PersAddresses</name>
+          <filterConditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/persaddresses/filterConditionProcess.js</filterConditionProcess>
+          <isFilterable v="true" />
+          <filtertype>BASIC</filtertype>
+        </consumerMapping>
+        <consumerMapping>
+          <name>Communications</name>
+          <filterConditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js</filterConditionProcess>
+          <isFilterable v="true" />
+          <filtertype>BASIC</filtertype>
+        </consumerMapping>
       </recordFieldMappings>
       <filterExtensions>
         <filterExtensionSet>
diff --git a/entity/Person_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js b/entity/Person_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js
new file mode 100644
index 00000000000..eb7d2f218c6
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/recordfieldmappings/communications/filterConditionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("CONTACTID in (select CONTACT_ID from COMMUNICATION where "  + vars.get("$local.condition") + " )");
\ No newline at end of file
diff --git a/entity/Person_entity/recordcontainers/db/recordfieldmappings/persaddresses/filterConditionProcess.js b/entity/Person_entity/recordcontainers/db/recordfieldmappings/persaddresses/filterConditionProcess.js
new file mode 100644
index 00000000000..2e2393946ee
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/recordfieldmappings/persaddresses/filterConditionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("CONTACTID in (select CONTACT_ID from ADDRESS where "  + vars.get("$local.condition") + " )");
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index 4c47769977d..d4d9afc3505 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -329,7 +329,7 @@
         <entityDependency>
           <name>0129066d-805c-4522-b1bc-9bbbc9588629</name>
           <entityName>Organisation_entity</entityName>
-          <fieldName>Product_consumer</fieldName>
+          <fieldName>Products</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-- 
GitLab