From 7da5f471b29db52e477256ee7b5635a921bc9f00 Mon Sep 17 00:00:00 2001
From: "c.wimmer" <c.wimmer@cwimmer-nb.aditosoftware.local>
Date: Mon, 12 Oct 2020 21:33:02 +0200
Subject: [PATCH] [Projekt: Crowd-Development / Besuch vor Ort][TicketNr.:
 1066737][[aus Schmalz] Besuchsvorschlag - Darstellung in der Filterview]

---
 .../Data_alias/basic/2020.2.0/changelog.xml   |  2 +-
 .../VisitRecommendation_entity.aod            | 14 ++++++++++
 .../entityfields/due_date/valueProcess.js     | 27 +++++++++++++++++++
 .../children/orgid_param/valueProcess.js      |  8 +++---
 .../recordcontainers/jdito/contentProcess.js  | 15 +++++++----
 .../_____LANGUAGE_EXTRA.aod                   | 15 +++++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 16 +++++++++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 15 +++++++++++
 .../VisitRecommendationFilter_view.aod        | 20 ++++++++++++--
 9 files changed, 121 insertions(+), 11 deletions(-)
 create mode 100644 entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js

diff --git a/.liquibase/Data_alias/basic/2020.2.0/changelog.xml b/.liquibase/Data_alias/basic/2020.2.0/changelog.xml
index 42bf76c7652..8024d8ff30d 100644
--- a/.liquibase/Data_alias/basic/2020.2.0/changelog.xml
+++ b/.liquibase/Data_alias/basic/2020.2.0/changelog.xml
@@ -15,5 +15,5 @@
     <include relativeToChangelogFile="true" file="alter_CommrestrictionsEmployeeInvolved.xml"/>
     <include relativeToChangelogFile="true" file="alter_VisitrecommendationpriorityUserNewResp.xml"/>
     <include relativeToChangelogFile="true" file="insert_VisitFrequencyAttributeUsagePers.xml"/>
-  <include relativeToChangelogFile="true" file="insert_VisitPlanningAttribute.xml"/> 
+    <include relativeToChangelogFile="true" file="insert_VisitPlanningAttribute.xml"/> 
 </databaseChangeLog>
diff --git a/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod b/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod
index 1a9cd15e7c1..caeb768e66a 100644
--- a/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod
+++ b/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod
@@ -29,6 +29,7 @@
       <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc</documentation>
       <title>Organisation</title>
       <consumer>OrganisationConsumer</consumer>
+      <groupable v="false" />
       <linkedContext>Organisation</linkedContext>
       <mandatory v="true" />
       <stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/stateProcess.js</stateProcess>
@@ -41,6 +42,7 @@
     <entityField>
       <name>ORGANISATION_NAME</name>
       <title>Organisation</title>
+      <groupable v="true" />
     </entityField>
     <entityField>
       <name>ORGANISATION_ADDRESS</name>
@@ -50,6 +52,7 @@
       <name>PRIORITY</name>
       <title>Priority</title>
       <consumer>KeywordVisitRecommendationPriority</consumer>
+      <groupable v="true" />
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority/displayValueProcess.js</displayValueProcess>
@@ -58,6 +61,7 @@
       <name>PRIORITY_SOURCE</name>
       <title>Priority Source</title>
       <consumer>KeywordVisitRecommendationSource</consumer>
+      <groupable v="true" />
       <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority_source/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -67,7 +71,9 @@
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
       <inputFormat>dd.MM.yyyy</inputFormat>
+      <groupable v="true" />
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>INFO</name>
@@ -151,6 +157,8 @@
     <entityField>
       <name>USER_NEW</name>
       <title>Created from</title>
+      <consumer>Employees</consumer>
+      <groupable v="true" />
       <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/user_new/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -158,6 +166,7 @@
       <title>Contact</title>
       <description></description>
       <consumer>PersonConsumer</consumer>
+      <groupable v="true" />
       <stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_person_id/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_person_id/valueProcess.js</valueProcess>
     </entityField>
@@ -187,6 +196,7 @@
       <name>RESPONSIBLE</name>
       <title>Responsible</title>
       <consumer>Employees</consumer>
+      <groupable v="true" />
       <mandatory v="true" />
     </entityField>
     <entityConsumer>
@@ -210,14 +220,17 @@
     <entityField>
       <name>COUNTRY</name>
       <title>Country</title>
+      <groupable v="true" />
     </entityField>
     <entityField>
       <name>ZIP</name>
       <title>ZIP</title>
+      <groupable v="true" />
     </entityField>
     <entityField>
       <name>CITY</name>
       <title>City</title>
+      <groupable v="true" />
     </entityField>
   </entityFields>
   <recordContainers>
@@ -225,6 +238,7 @@
       <name>jDito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
       <isFilterable v="true" />
+      <isGroupable v="true" />
       <isSortable v="true" />
       <contentProcess>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
       <onInsert>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js</onInsert>
diff --git a/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js
new file mode 100644
index 00000000000..82886507c61
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js
@@ -0,0 +1,27 @@
+//import("Sql_lib");
+//import("Employee_lib");
+//import("system.neon");
+//import("system.vars");
+//import("system.result");
+//
+//
+//if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+//{
+//    var contactidResp = vars.get("$field.RESPONSIBLE")
+//    var maturity = newSelect("ATTRIBUTE_NAME")
+//                        .from("AB_ATTRIBUTERELATION")
+//                        .join("AB_ATTRIBUTE", "AB_ATTRIBUTEID = ID_VALUE")
+//                        .where("AB_ATTRIBUTE_ID", "e8770b60-160c-466e-af57-4f90bd6e02d7")
+//                        .and("OBJECT_ROWID", contactidResp);
+//    
+//    var due_date = new Date();
+//    switch(maturity)
+//    {
+//        case "2 Weeks":
+//            due_date.setDate(d.getDate() + 14);
+//            break;
+//        case ""
+//    }
+//    
+//    result.string();
+//}
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js
index 2ff71eb2363..e954cbeb0d3 100644
--- a/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js
@@ -2,6 +2,8 @@ import("Sql_lib");
 import("system.vars");
 import("system.result");
 
-
-orgid = newSelect("CONTACT.ORGANISATION_ID").from("CONTACT").where("CONTACT.CONTACTID", vars.get("$field.CONTACT_ID")).cell();
-result.string(orgid);
\ No newline at end of file
+if(vars.get("$field.CONTACT_ID"))
+{
+    orgid = newSelect("CONTACT.ORGANISATION_ID").from("CONTACT").where("CONTACT.CONTACTID", vars.get("$field.CONTACT_ID")).cell();
+    result.string(orgid);
+}
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
index 892ba561689..e984f4719ea 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
@@ -126,10 +126,14 @@ if(idValues == false)
                             .leftJoin("ADDRESS", "ADDRESS_ID = ADDRESSID")
                             .join("AB_ATTRIBUTERELATION", "visitPlanFrequency.OBJECT_ROWID = CONTACT.CONTACTID", "visitPlanFrequency")
                             .where(["AB_ATTRIBUTERELATION", "AB_ATTRIBUTE_ID", "visitPlanFrequency"], $AttributeRegistry.visitPlanFrequency())
-                            .table();
-                                        
+                            .table()
+     
     for (var i = 0; i < visitFrequencyData.length; i++)
     {
+        logging.log(visitFrequencyData[i][7])
+        logging.log($KeywordRegistry.visitRecommendationPrioSource())
+        logging.log(KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), visitFrequencyData[i][7]))
+        
         tmpData = [];
         tmpData[0] = visitFrequencyData[i][1]; //UID.value
         tmpData[1] = visitFrequencyData[i][9]; //ORGANISATION_NAME.value
@@ -138,12 +142,12 @@ if(idValues == false)
         tmpData[4] = visitFrequencyData[i][5]; //ZIP.value
         tmpData[5] = visitFrequencyData[i][6]; //CITY.value
         tmpData[6] = ""; //PRIORITY.value
-        tmpData[7] = visitFrequencyData[i][7]; //PRIORITY_SOURCE.value
+        tmpData[7] = $KeywordRegistry.visitRecommendationPrioSource$visitFrequency(); //PRIORITY_SOURCE.value
         tmpData[8] = ""; //PRIORITY.displayValue
         tmpData[9] = ""; //DUE_DATE.value
         tmpData[10] = ""; //INFO.value
         tmpData[11] = visitFrequencyData[i][1]; //CONTACT_ID.value
-        tmpData[12] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), visitFrequencyData[i][7]); //PRIORITY_SOURCE.displayValue
+        tmpData[12] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), $KeywordRegistry.visitRecommendationPrioSource$visitFrequency()); //PRIORITY_SOURCE.displayValue
         tmpData[13] = ""; //USER_NEW.displayValue
         tmpData[14] = ""; //USER_NEW.value
         tmpData[15] = ContactUtils.getFullTitleByContactId(visitFrequencyData[i][1], false); //CONTACT_PERSON_ID.displayValue
@@ -179,7 +183,7 @@ if(idValues == false)
             }
         }
         tmpData[6] = getPrioByDueDate(dueDate); //PRIORITY.value
-        tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), tmpData[7]) //PRIORITY.displayValue
+        tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), tmpData[6]) //PRIORITY.displayValue
         tmpData[9] = dueDate; //DUE_DATE.value
             
         recommendationData.push(tmpData);
@@ -229,6 +233,7 @@ var filterFns = {
         return false;
     }
 };
+logging.log(JSON.stringify(filter.filter));
 recommendationData = JditoFilterUtils.filterRecords(filterFields, recommendationData, filter.filter, filterFns);
         
 
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 4cd6f0330a6..e7857d64b64 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -7281,6 +7281,21 @@
     <entry>
       <key>Probability in %</key>
     </entry>
+    <entry>
+      <key>Created from</key>
+    </entry>
+    <entry>
+      <key>12 Months</key>
+    </entry>
+    <entry>
+      <key>6 Months</key>
+    </entry>
+    <entry>
+      <key>1 Month</key>
+    </entry>
+    <entry>
+      <key>2 Weeks</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index cf7a3b049c7..3409e1c2564 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -9658,6 +9658,22 @@ Bitte Datumseingabe prüfen</value>
       <key>Probability in %</key>
       <value>Wahrscheinlichkeit in %</value>
     </entry>
+    <entry>
+      <key>Created from</key>
+      <value>Ersteller</value>
+    </entry>
+    <entry>
+      <key>12 Months</key>
+    </entry>
+    <entry>
+      <key>6 Months</key>
+    </entry>
+    <entry>
+      <key>1 Month</key>
+    </entry>
+    <entry>
+      <key>2 Weeks</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index a15f9a2f09b..25a9a85803e 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -7362,6 +7362,21 @@
     <entry>
       <key>Probability in %</key>
     </entry>
+    <entry>
+      <key>Created from</key>
+    </entry>
+    <entry>
+      <key>12 Months</key>
+    </entry>
+    <entry>
+      <key>6 Months</key>
+    </entry>
+    <entry>
+      <key>1 Month</key>
+    </entry>
+    <entry>
+      <key>2 Weeks</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod b/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod
index 933d4aec628..c8e533fce41 100644
--- a/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod
+++ b/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod
@@ -85,8 +85,24 @@
           <entityField>ORGANISATION_NAME</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
-          <name>6a98ae55-a30e-48d4-8d45-1c63a359af5e</name>
-          <entityField>ORGANISATION_ADDRESS</entityField>
+          <name>009230b5-a78c-4718-875e-7ccfe080f348</name>
+          <entityField>CONTACT_PERSON_ID</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>b88f4159-c816-4955-877e-ed973a111aca</name>
+          <entityField>STREET</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>81d71829-f0db-4320-9ae8-b1863b45a7db</name>
+          <entityField>COUNTRY</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>e6de8082-b860-4d4d-a5a5-f73b62554ea6</name>
+          <entityField>ZIP</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>ece04c42-ac19-4565-829f-0c437e2c97e7</name>
+          <entityField>CITY</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>599ba04b-e1c4-4feb-89c9-850ab954fbb2</name>
-- 
GitLab