From 76c06585c4ca41006cc07b13c3cfb7cea6954b79 Mon Sep 17 00:00:00 2001
From: Daniel Tran <d.tran@adito.de>
Date: Fri, 2 Oct 2020 06:22:52 +0000
Subject: [PATCH] #1058762: Display district responsibles in PersonMain_view.

---
 .../DistrictResponsible_entity.aod             |  7 +++++++
 .../iconIdProcess.js                           |  5 +++++
 .../expression.js                              | 10 ++--------
 entity/Person_entity/Person_entity.aod         | 16 ++++++++++++++++
 .../children/orguid_param/valueProcess.js      |  8 ++++++++
 .../districtresponsibles/stateProcess.js       |  9 +++++++++
 language/_____LANGUAGE_de/_____LANGUAGE_de.aod |  2 +-
 neonContext/Organisation/Organisation.aod      |  4 ----
 .../DistrictResponsibleList_view.aod           |  5 +++++
 .../OrganisationDistrictResponsibles_view.aod  | 18 ------------------
 .../OrganisationMain_view.aod                  | 10 +++++-----
 neonView/PersonMain_view/PersonMain_view.aod   |  5 +++++
 12 files changed, 63 insertions(+), 36 deletions(-)
 create mode 100644 entity/DistrictResponsible_entity/iconIdProcess.js
 create mode 100644 entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js
 create mode 100644 entity/Person_entity/entityfields/districtresponsibles/stateProcess.js
 delete mode 100644 neonView/OrganisationDistrictResponsibles_view/OrganisationDistrictResponsibles_view.aod

diff --git a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
index 539afbb9ac..cc4783ab5b 100644
--- a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
+++ b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
@@ -6,6 +6,7 @@
   <icon>VAADIN:GLOBE</icon>
   <title>District Responsible</title>
   <contentTitleProcess>%aditoprj%/entity/DistrictResponsible_entity/contentTitleProcess.js</contentTitleProcess>
+  <iconIdProcess>%aditoprj%/entity/DistrictResponsible_entity/iconIdProcess.js</iconIdProcess>
   <image>VAADIN:GLOBE</image>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -164,6 +165,12 @@
           <fieldName>DistrictResponsibles</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>2b3318a3-4925-4aa8-bf6e-bc5489549327</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>DistrictResponsibles</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/DistrictResponsible_entity/iconIdProcess.js b/entity/DistrictResponsible_entity/iconIdProcess.js
new file mode 100644
index 0000000000..b60b52f93c
--- /dev/null
+++ b/entity/DistrictResponsible_entity/iconIdProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+var res = "TEXT:" + vars.get("$field.EMPLOYEE_CONTACT_ID.displayValue");
+result.string(res);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js b/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js
index b00816d2ee..ea80128c82 100644
--- a/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js
+++ b/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js
@@ -1,11 +1,5 @@
-import("system.logging");
 import("system.result");
 import("Contact_lib");
-import("Sql_lib");
 
-
-var contact = Contact.createWithColumnPreset();
-var renderer = new ContactTitleRenderer(contact, ContactTitleRenderer.OPTIONS.NoOption);
-var selectExpression = renderer.asSql();
-
-result.string(newSelect(selectExpression));
\ No newline at end of file
+var res = ContactUtils.getResolvingDisplaySubSql("DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID", false);
+result.string(res);
\ No newline at end of file
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 4bb81b013f..6ae187ece5 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -1365,6 +1365,22 @@
         </entityParameter>
       </children>
     </entityProvider>
+    <entityConsumer>
+      <name>DistrictResponsibles</name>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/districtresponsibles/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictResponsible_entity</entityName>
+        <fieldName>OrganisationResponsibles</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OrgUid_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js b/entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js
new file mode 100644
index 0000000000..9bae30ceb9
--- /dev/null
+++ b/entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+
+
+if (vars.exists("$field.ORGANISATION_CONTACTID") && vars.get("$field.ORGANISATION_CONTACTID"))
+{
+    result.string(vars.get("$field.ORGANISATION_CONTACTID"));
+}
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/districtresponsibles/stateProcess.js b/entity/Person_entity/entityfields/districtresponsibles/stateProcess.js
new file mode 100644
index 0000000000..6b51996c15
--- /dev/null
+++ b/entity/Person_entity/entityfields/districtresponsibles/stateProcess.js
@@ -0,0 +1,9 @@
+import("Employee_lib");
+import("system.result");
+import("system.vars");
+import("system.neon");
+
+if (vars.get("$field.ORGANISATION_CONTACTID") && !EmployeeUtils.isUser(vars.get("$field.CONTACTID")))
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 5009df56c3..d275a96f0b 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -9304,7 +9304,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>District Responsible</key>
-      <value>Gebietsverantwortlicher</value>
+      <value>Gebietsverantwortliche</value>
     </entry>
     <entry>
       <key>Responsibles</key>
diff --git a/neonContext/Organisation/Organisation.aod b/neonContext/Organisation/Organisation.aod
index 46f4d763f7..87f1786ece 100644
--- a/neonContext/Organisation/Organisation.aod
+++ b/neonContext/Organisation/Organisation.aod
@@ -67,9 +67,5 @@
       <name>0b052872-d6b4-41ac-ad0b-580575893e1b</name>
       <view>OrganisationLesserNoiseTable_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>2193fe84-ff57-4382-8200-5d1d846f455c</name>
-      <view>OrganisationDistrictResponsibles_view</view>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod b/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod
index 2d6c800894..cab52b315c 100644
--- a/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod
+++ b/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod
@@ -20,7 +20,12 @@
       <isCreatable v="false" />
       <isDeletable v="false" />
       <isEditable v="false" />
+      <title>Responsibles</title>
       <columns>
+        <neonTableColumn>
+          <name>785ec0b8-e71d-4766-a03e-f125a465aa58</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>158f589a-497f-4522-9b43-d7a6155c6818</name>
           <entityField>DISTRICT_ID</entityField>
diff --git a/neonView/OrganisationDistrictResponsibles_view/OrganisationDistrictResponsibles_view.aod b/neonView/OrganisationDistrictResponsibles_view/OrganisationDistrictResponsibles_view.aod
deleted file mode 100644
index ab57158edf..0000000000
--- a/neonView/OrganisationDistrictResponsibles_view/OrganisationDistrictResponsibles_view.aod
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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>OrganisationDistrictResponsibles_view</name>
-  <title>Responsibles</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-  <children>
-    <neonViewReference>
-      <name>a698babd-271c-4f21-94f7-391f4ad80877</name>
-      <entityField>DistrictResponsibles</entityField>
-      <view>DistrictResponsibleList_view</view>
-    </neonViewReference>
-  </children>
-</neonView>
diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod
index f02268bc9b..df9be823df 100644
--- a/neonView/OrganisationMain_view/OrganisationMain_view.aod
+++ b/neonView/OrganisationMain_view/OrganisationMain_view.aod
@@ -55,16 +55,16 @@
       <entityField>#ENTITY</entityField>
       <view>OrganisationAttributeRestriction_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>a806bf0f-6214-4aad-872b-74e6f7fd1ee5</name>
+      <entityField>DistrictResponsibles</entityField>
+      <view>DistrictResponsibleList_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>eba90ed2-5e55-4cdb-9e0b-5a09feeb7536</name>
       <entityField>Documents</entityField>
       <view>DocumentFilter_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>db26269b-32ae-47da-ba22-41e0a5952103</name>
-      <entityField>#ENTITY</entityField>
-      <view>OrganisationDistrictResponsibles_view</view>
-    </neonViewReference>
     <neonViewReference>
       <name>0686ad7e-8dc7-4b10-9df2-bf066ae3a310</name>
       <entityField>LogHistories</entityField>
diff --git a/neonView/PersonMain_view/PersonMain_view.aod b/neonView/PersonMain_view/PersonMain_view.aod
index 4cc0562f16..7e88568ac7 100644
--- a/neonView/PersonMain_view/PersonMain_view.aod
+++ b/neonView/PersonMain_view/PersonMain_view.aod
@@ -49,6 +49,11 @@
       <entityField>Districts</entityField>
       <view>DistrictList_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>19a5f9ed-228d-4352-9e82-e7aa690648e9</name>
+      <entityField>DistrictResponsibles</entityField>
+      <view>DistrictResponsibleList_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>4b50b784-484f-4cdf-a705-4c356da763fa</name>
       <entityField>Documents</entityField>
-- 
GitLab