From 65ba26c8e951d1768e46ecbcfa23f3e60eee7ee0 Mon Sep 17 00:00:00 2001
From: dsg03695 <dsg03695@N170.hama.de>
Date: Fri, 16 Oct 2020 13:33:18 +0200
Subject: [PATCH] Ticket #1066036: DATE_EDIT, DATE_NEW, USER_NEW, USER_EDIT
 added to DistrictContact, views were adapted, 'Reviewed' state were disabled
 during the manual process, and correct connections were created via
 consumer/provider

---
 .../alter_districtContact_1066036.xml         | 13 +++++
 .../basic/2020.2.0/Districts/changelog.xml    |  1 +
 aliasDefinition/Data_alias/Data_alias.aod     | 56 +++++++++++++++++++
 .../DistrictContact_entity.aod                | 25 +++++----
 .../excludedcontactids_param/valueProcess.js  |  8 ---
 .../valueProcess.js                           | 10 ++++
 .../status/displayValueProcess.js             | 11 ----
 .../status.displayvalue/expression.js         |  6 ++
 .../DistrictResponsible_entity.aod            |  6 ++
 .../Organisation_entity.aod                   |  6 ++
 entity/Person_entity/Person_entity.aod        | 12 ----
 .../DistrictResponsible.aod                   |  5 ++
 .../DistrictContactFilter_view.aod            |  4 ++
 .../DistrictResponsibleLookup_view.aod        | 30 ++++++++++
 process/KeywordRegistry_basic/process.js      |  1 +
 15 files changed, 151 insertions(+), 43 deletions(-)
 create mode 100644 .liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtContact_1066036.xml
 delete mode 100644 entity/DistrictContact_entity/entityfields/advisers/children/excludedcontactids_param/valueProcess.js
 create mode 100644 entity/DistrictContact_entity/entityfields/keywordcontactstates/children/excludedkeyidssubquery_param/valueProcess.js
 delete mode 100644 entity/DistrictContact_entity/entityfields/status/displayValueProcess.js
 create mode 100644 entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
 create mode 100644 neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_view.aod

diff --git a/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtContact_1066036.xml b/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtContact_1066036.xml
new file mode 100644
index 0000000000..b389c64e72
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtContact_1066036.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="Pierre Suchacek" id="9aace074-1b61-4577-ad27-bee6a498134c">
+        <addColumn tableName="DISTRICTCONTACT">
+            <column name="USER_NEW"     type="NVARCHAR(50)" />
+            <column name="USER_EDIT"    type="NVARCHAR(50)" />
+            <column name="DATE_NEW"     type="DATETIME" />
+            <column name="DATE_EDIT"    type="DATETIME" />
+        </addColumn>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2020.2.0/Districts/changelog.xml b/.liquibase/Data_alias/basic/2020.2.0/Districts/changelog.xml
index d8ccdd4c8a..76bc7b7962 100644
--- a/.liquibase/Data_alias/basic/2020.2.0/Districts/changelog.xml
+++ b/.liquibase/Data_alias/basic/2020.2.0/Districts/changelog.xml
@@ -11,4 +11,5 @@
     <include relativeToChangelogFile="true" file="insert_KeywordsAdviserRoles.xml"/>
     <include relativeToChangelogFile="true" file="update_ContactResponsible_consistent.xml"/>
     <include relativeToChangelogFile="true" file="alter_district_1066187.xml"/>
+    <include relativeToChangelogFile="true" file="alter_districtContact_1066036.xml"/>
 </databaseChangeLog>
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 0673fab665..b9c1f90e12 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -15924,6 +15924,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
         </entities>
diff --git a/entity/DistrictContact_entity/DistrictContact_entity.aod b/entity/DistrictContact_entity/DistrictContact_entity.aod
index 0a8b606d3e..477c91f73a 100644
--- a/entity/DistrictContact_entity/DistrictContact_entity.aod
+++ b/entity/DistrictContact_entity/DistrictContact_entity.aod
@@ -26,7 +26,7 @@
     </entityProvider>
     <entityField>
       <name>CONTACT_ID</name>
-      <title>Contact</title>
+      <title>Company</title>
       <consumer>Persons</consumer>
       <groupable v="true" />
       <linkedContext>Person</linkedContext>
@@ -62,7 +62,6 @@
       <consumer>KeywordContactStates</consumer>
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/status/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>VALID_FROM</name>
@@ -102,6 +101,10 @@
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
+        <entityParameter>
+          <name>ExcludedKeyIdsSubquery_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/excludedkeyidssubquery_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
@@ -136,8 +139,8 @@
       <name>Persons</name>
       <dependency>
         <name>dependency</name>
-        <entityName>Person_entity</entityName>
-        <fieldName>Contacts</fieldName>
+        <entityName>Organisation_entity</entityName>
+        <fieldName>Organisations</fieldName>
       </dependency>
       <children>
         <entityParameter>
@@ -150,15 +153,9 @@
       <name>Advisers</name>
       <dependency>
         <name>dependency</name>
-        <entityName>Person_entity</entityName>
-        <fieldName>Contacts</fieldName>
+        <entityName>DistrictResponsible_entity</entityName>
+        <fieldName>DistrictResponsibles</fieldName>
       </dependency>
-      <children>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/advisers/children/excludedcontactids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Districts</name>
@@ -258,6 +255,10 @@
           <name>DISTRICT_ID.displayValue</name>
           <expression>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/DistrictContact_entity/entityfields/advisers/children/excludedcontactids_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/advisers/children/excludedcontactids_param/valueProcess.js
deleted file mode 100644
index aab936bb3b..0000000000
--- a/entity/DistrictContact_entity/entityfields/advisers/children/excludedcontactids_param/valueProcess.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//import("system.result");
-//import("system.db");
-//import("Sql_lib");
-//
-//result.object(newSelect("ADVISER_CONTACT_ID")
-//                .from("DISTRICTCONTACT")
-//                .where("DISTRICTCONTACT.DISTRICT_ID", "$field.DISTRICT_ID")
-//                .arrayColumn(true));
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/excludedkeyidssubquery_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/excludedkeyidssubquery_param/valueProcess.js
new file mode 100644
index 0000000000..105fc4cc77
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/excludedkeyidssubquery_param/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+var cond = newSelect("AB_KEYWORD_ENTRY.KEYID")
+.from("AB_KEYWORD_ENTRY")
+.where("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.contactStatus())
+.and("AB_KEYWORD_ENTRY.KEYID", $KeywordRegistry.contactStatus$reviewed(), SqlBuilder.LIKE());
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js
deleted file mode 100644
index f2373da2bb..0000000000
--- a/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import("system.result");
-import("system.vars");
-import("KeywordRegistry_basic");
-import("Keyword_lib");
-
-var key = vars.get("$field.STATUS");
-if (key)
-{
-    var res = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), key);
-    result.string(res);
-}
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
new file mode 100644
index 0000000000..22b1e68d72
--- /dev/null
+++ b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("KeywordRegistry_basic");
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contactStatus(), "DISTRICTCONTACT.STATUS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
index 2b2c789377..747c218d53 100644
--- a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
+++ b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
@@ -68,6 +68,12 @@
           <fieldName>DistrictResponsibleUIDs</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>7c71a3ee-2b48-4d21-ae66-b53b9a1ff28c</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>Advisers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 18afded566..472f0c52c5 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -151,6 +151,12 @@
           <fieldName>Organisations</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>b64b29e6-59c5-4250-9bc7-b08c85976e7e</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>Persons</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 1da8d17dc1..93b1185272 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -725,18 +725,6 @@
           <fieldName>Persons</fieldName>
           <isConsumer v="false" />
         </entityDependency>
-        <entityDependency>
-          <name>46a8c52b-ffa4-4ff4-8fff-73f951e9e1aa</name>
-          <entityName>DistrictContact_entity</entityName>
-          <fieldName>Persons</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>bb94fe7a-09d0-4809-aeaf-b06e1eff82af</name>
-          <entityName>DistrictContact_entity</entityName>
-          <fieldName>Advisers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/neonContext/DistrictResponsible/DistrictResponsible.aod b/neonContext/DistrictResponsible/DistrictResponsible.aod
index ac58a2451f..1a7fdf7c9c 100644
--- a/neonContext/DistrictResponsible/DistrictResponsible.aod
+++ b/neonContext/DistrictResponsible/DistrictResponsible.aod
@@ -7,6 +7,7 @@
   <filterView>DistrictResponsibleFilter_view</filterView>
   <editView>DistrictResponsibleEdit_view</editView>
   <previewView>DistrictResponsiblePreviewList_view</previewView>
+  <lookupView>DistrictResponsibleLookup_view</lookupView>
   <devices>
     <element>MOBILE</element>
     <element>TABLET</element>
@@ -34,5 +35,9 @@
       <name>bf0655aa-60e7-47b8-a3e7-eb7ba8b37cac</name>
       <view>DistrictResponsibleEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>30960bbf-184a-4e4e-8058-983d4c150d89</name>
+      <view>DistrictResponsibleLookup_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod b/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod
index 6d7fac9514..681c4fb4db 100644
--- a/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod
+++ b/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod
@@ -21,6 +21,10 @@
           <name>b2b3fd8c-2d93-4059-b4e4-24ca24874018</name>
           <entityField>CONTACT_ID</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>a5b6ac69-712c-45e1-97ff-cf1101da4b95</name>
+          <entityField>ADVISER_CONTACT_ID</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>06c6fc84-5025-4bb2-906a-3de1bbeafbdd</name>
           <entityField>ADVISER_ROLE</entityField>
diff --git a/neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_view.aod b/neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_view.aod
new file mode 100644
index 0000000000..20ab3ef6c6
--- /dev/null
+++ b/neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_view.aod
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+  <name>DistrictResponsibleLookup_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>ResponsibleLookup</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>b1180c08-6e1f-459f-868f-2842d034806f</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e5b2fbc0-174d-4d0e-88d1-a798e65cd773</name>
+          <entityField>EMPLOYEE_CONTACT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>db77b7a3-80bf-4dc7-9691-8d6aa7422756</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index ba80197cd0..f0f7bc74dc 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -41,6 +41,7 @@ $KeywordRegistry.activityDirection$internal = function(){return "x";};
 $KeywordRegistry.contactStatus = function(){return "ContactStatus";};
 $KeywordRegistry.contactStatus$active = function(){return "CONTACTSTATACTIVE";};
 $KeywordRegistry.contactStatus$inactive = function(){return "CONTACTSTATINACTIVE";};
+$KeywordRegistry.contactStatus$reviewed = function(){return "CONTACTSTATREVIEW";};
 
 $KeywordRegistry.currency = function(){return "Currency";};
 $KeywordRegistry.currency$eur = function(){return "EUR";};
-- 
GitLab