From 7d84bf9eef26d4fd794757c8cd13c4c5db48ced8 Mon Sep 17 00:00:00 2001
From: Carolin Wimmer <c.wimmer@adito.de>
Date: Thu, 15 Oct 2020 08:27:47 +0200
Subject: [PATCH] [Projekt: Crowd-Development / Besuch vor Ort][TicketNr.:
 1066740][[aus Schmalz] Neuer Wochenplaneintrag]

---
 .../VisitPlanEntry_entity.aod                 | 22 ++++++++++++++++
 .../entityfields/entrydate/onValueChange.js   | 25 +++++++++++++++++++
 .../stateProcess.js                           |  6 +++++
 .../valueProcess.js                           | 20 +++++++++++++++
 .../recordcontainers/jdito/contentProcess.js  |  7 ------
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  4 +++
 .../KeywordEntryFilter_view.aod               |  4 +++
 .../VisitPlanEntryEdit_view.aod               |  4 +++
 8 files changed, 85 insertions(+), 7 deletions(-)
 create mode 100644 entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js
 create mode 100644 entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js
 create mode 100644 entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js

diff --git a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod
index 76198b71e8a..f37e01d0698 100644
--- a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod
+++ b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod
@@ -49,6 +49,13 @@
       <inputFormat>dd.MM.yyyy</inputFormat>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entrydate/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+        <element>RECORD</element>
+      </onValueChangeTypes>
     </entityField>
     <entityField>
       <name>END_TIME</name>
@@ -226,6 +233,21 @@
       <name>Entrydate_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityField>
+      <name>VISITPLANEMPLOYEEWEEK_INFO</name>
+      <color>priority-high-color</color>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js</valueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>STATUS_APPOINTMENT</name>
+    </entityField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js b/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js
new file mode 100644
index 00000000000..2e2ab9e1659
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js
@@ -0,0 +1,25 @@
+import("system.neon");
+import("system.logging");
+import("system.translate");
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+import("system.datetime");
+import("Employee_lib");
+
+var user = EmployeeUtils.getCurrentContactId();
+var calendarWeek = datetime.toDate(vars.get("$field.ENTRYDATE"), "w");
+var calendarYear = datetime.toDate(vars.get("$field.ENTRYDATE"), "yyyy");
+var info = newSelect("INFO")
+                        .from("VISITPLANEMPLOYEEWEEK") 
+                        .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", calendarWeek)
+                        .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", calendarYear)
+                        .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user)
+                        .cell();
+
+if(info)
+    neon.setFieldValue("$field.VISITPLANEMPLOYEEWEEK_INFO", "Calendar week: " + calendarWeek + " Info: " + info);
+else
+    neon.setFieldValue("$field.VISITPLANEMPLOYEEWEEK_INFO", "");
+
+
diff --git a/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js
new file mode 100644
index 00000000000..c1b91b31059
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$field.ENTRYDATE"))
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js
new file mode 100644
index 00000000000..59c486161a8
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js
@@ -0,0 +1,20 @@
+import("system.logging");
+import("system.translate");
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+import("system.datetime");
+import("Employee_lib");
+
+var user = EmployeeUtils.getCurrentContactId();
+var calendarWeek = datetime.toDate(vars.get("$field.ENTRYDATE"), "w");
+var calendarYear = datetime.toDate(vars.get("$field.ENTRYDATE"), "yyyy");
+var info = newSelect("INFO")
+                        .from("VISITPLANEMPLOYEEWEEK") 
+                        .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", calendarWeek)
+                        .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", calendarYear)
+                        .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user)
+                        .cell();
+
+if(info)
+    result.string(translate.text("Calendar week: " + calendarWeek + " Info: " + info));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
index e984f4719ea..c2499cbaaf5 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
@@ -130,10 +130,6 @@ if(idValues == false)
      
     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
@@ -233,10 +229,7 @@ var filterFns = {
         return false;
     }
 };
-logging.log(JSON.stringify(filter.filter));
 recommendationData = JditoFilterUtils.filterRecords(filterFields, recommendationData, filter.filter, filterFns);
-        
-
 result.object(recommendationData);
 
 function getPrioByDueDate(pDueDate)
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 3409e1c2564..6b96b2f3c12 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -3167,6 +3167,10 @@
       <key>Singapore</key>
       <value>Singapur</value>
     </entry>
+    <entry>
+      <key>Calendar week</key>
+      <value>Kalenderwoche</value>
+    </entry>
     <entry>
       <key>French Guiana</key>
       <value>Französisch-Guayana</value>
diff --git a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
index eda74055038..664c1ec2809 100644
--- a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
+++ b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
@@ -18,6 +18,10 @@
       <defaultGroupFields>
         <element>CONTAINER</element>
       </defaultGroupFields>
+      <maxDBRow v="400" />
+      <isCreatable v="true" />
+      <isDeletable v="true" />
+      <isEditable v="true" />
       <columns>
         <neonTreeTableColumn>
           <name>6100879d-dc6a-4c7e-b750-f5b7e627f48a</name>
diff --git a/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod b/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod
index e52679fea73..47d3c48f8a0 100644
--- a/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod
+++ b/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod
@@ -40,6 +40,10 @@
           <name>75e0b2e9-2cd9-4d27-a696-2494ec79daa4</name>
           <entityField>END_TIME</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>78926e28-339b-41fe-a9bf-e5a49d07508f</name>
+          <entityField>VISITPLANEMPLOYEEWEEK_INFO</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
-- 
GitLab