From 1d4217c9152c2c1f1a01f3e1787e66fbf38dae91 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Wed, 28 Nov 2018 09:34:30 +0100
Subject: [PATCH] Salesproject fix Meilensteine

---
 .../SalesprojectCycle_entity.aod              | 22 +++++++++--------
 .../entityfields/type/possibleItemsProcess.js |  8 +++++++
 .../entityfields/type/valueProcess.js         |  0
 .../value/possibleItemsProcess.js             | 12 ++++++----
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  3 +--
 .../SalesprojectCycleEdit_view.aod            |  4 ++++
 .../SalesprojectCycleFilter_view.aod          |  5 ++++
 process/Keyword_lib/process.js                | 24 +++++++++----------
 8 files changed, 49 insertions(+), 29 deletions(-)
 create mode 100644 entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js
 delete mode 100644 entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js

diff --git a/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod b/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod
index be74ba4538..d1d4e7cb60 100644
--- a/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod
+++ b/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod
@@ -6,6 +6,14 @@
   <recordContainerType>DB</recordContainerType>
   <alias>Data_alias</alias>
   <conditionProcess>%aditoprj%/entity/SalesprojectCycle_entity/conditionProcess.js</conditionProcess>
+  <linkInformation>
+    <linkInformation>
+      <name>479f5969-fe03-4b36-8437-d2efc967e7b9</name>
+      <tableName>SALESPROJECT_CYCLE</tableName>
+      <primaryKey>SALESPROJECT_CYCLEID</primaryKey>
+      <isUIDTable v="true" />
+    </linkInformation>
+  </linkInformation>
   <entityFields>
     <entityIncomingField>
       <name>#INCOMING</name>
@@ -40,16 +48,18 @@
     </entityField>
     <entityField>
       <name>TYPE</name>
+      <title>Type</title>
       <tableName>SALESPROJECT_CYCLE</tableName>
       <columnName>TYPE</columnName>
-      <contentType>NUMBER</contentType>
-      <valueProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js</valueProcess>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>VALUE</name>
       <title>Milestone</title>
       <tableName>SALESPROJECT_CYCLE</tableName>
       <columnName>VALUE</columnName>
+      <mandatory v="true" />
       <possibleItemsProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js</possibleItemsProcess>
       <valueProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/value/valueProcess.js</valueProcess>
     </entityField>
@@ -97,12 +107,4 @@
       </dependencies>
     </entityIncomingField>
   </entityFields>
-  <linkInformation>
-    <linkInformation>
-      <name>479f5969-fe03-4b36-8437-d2efc967e7b9</name>
-      <tableName>SALESPROJECT_CYCLE</tableName>
-      <primaryKey>SALESPROJECT_CYCLEID</primaryKey>
-      <isUIDTable v="true" />
-    </linkInformation>
-  </linkInformation>
 </entity>
diff --git a/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js b/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js
new file mode 100644
index 0000000000..ca7ec2ba26
--- /dev/null
+++ b/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+import("system.logging");
+import("Keyword_lib");
+
+var items = KeywordUtils.getStandardArray("SALESPROJECT.CYCLE.TYPE");
+logging.log(items.toSource())
+result.object(items);
\ No newline at end of file
diff --git a/entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js b/entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js b/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js
index 57e45b9818..a3310ce62f 100644
--- a/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js
+++ b/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js
@@ -1,17 +1,19 @@
 import("system.result");
 import("system.vars");
+import("system.logging");
 import("Keyword_lib");
 
-var kwdUtils, items, keyword, type;
+var items, keyword, type;
 
 items = [];
 
-type = vars.getString("$field.TYPE")
+type = vars.getString("$field.TYPE");
+logging.log(type.toSource())
 
+// load the possible values based on the type.
 if (type) {
-    keyword = KeywordUtils.createKeyword("SALESPROJECT.CYCLE.TYPE")
-                      .getPropForKey(vars.getString("$field.TYPE"), "keyword", true);
-            
+    keyword = KeywordUtils.get("SALESPROJECT.CYCLE.TYPE", type)[2].keyword;
+        
     if (keyword) {
         items = KeywordUtils.getStandardArray(keyword);
     }
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index ad2ae0ca0f..38c56ae308 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -300,8 +300,7 @@
     </entry>
     <entry>
       <key>State</key>
-      <value>Status
-</value>
+      <value>Status</value>
     </entry>
     <entry>
       <key>Region</key>
diff --git a/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod b/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod
index 00726785ae..ac922eb733 100644
--- a/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod
+++ b/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod
@@ -21,6 +21,10 @@
           <name>5df5e35b-4967-4efd-98ac-a57f757e04b4</name>
           <entityField>DATE_END</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>db138f88-0cc7-42d9-a5d6-2bfc4f13985c</name>
+          <entityField>TYPE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>71891f0f-e610-4584-8936-f2249e99e7ac</name>
           <entityField>VALUE</entityField>
diff --git a/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod b/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod
index 0e640fea74..17d838b10f 100644
--- a/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod
+++ b/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod
@@ -11,12 +11,17 @@
   <children>
     <tableViewTemplate>
       <name>SalesprojectCycleFilter_template</name>
+      <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>1f66befa-a479-437e-b68f-da3cac6fed90</name>
           <entityField>DATE_START</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>5001e853-a479-4e63-a0c6-3021926402b6</name>
+          <entityField>TYPE</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>8a4c91ad-a1e4-4a94-acad-de232c7b0be7</name>
           <entityField>VALUE</entityField>
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 222a8222e9..ca80a4a47d 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -34,7 +34,7 @@ function KeywordUtils(){
      * result.object(item);
      */
     KeywordUtils.get = function(keywordType, key){
-        return this.createKeyword(keywordType).getPropsForKey(key, ["id", "name", "customProperties"]);
+        return KeywordUtils.createKeyword(keywordType).getPropsForKey(key, ["id", "name", "customProperties"]);
     }
     
     /**
@@ -280,23 +280,23 @@ function KeywordUtils(){
                 ]);
                 break;
             case "SALESPROJECT.CYCLE.TYPE":
-                valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("1", translate.text("Phase"), null, {keyword: "SALESPROJECT.PHASE"})
-                    ,createKeywordEntry("2", translate.text("State"), null, {keyword: "SALESPROJECT.STATE"})
+                valueContainer = _createKeywordEntriesContainer([
+                     _createKeywordEntry("1", translate.text("Phase"), null, {keyword: "SALESPROJECT.PHASE"})
+                    ,_createKeywordEntry("2", translate.text("State"), null, {keyword: "SALESPROJECT.STATE"})
                 ]);
                 break;
             case "SALESPROJECT.CLASS":
-                valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("1", translate.text("Class A"), null, {keywords: ["CLASS.BRANCHE", "CLASS.BASED", "CLASS.USERS"]})
-                    ,createKeywordEntry("2", translate.text("Class B"), null, {keywords: ["CLASS.BUDGET", "CLASS.STANDARD", "CLASS.CUSTOMIZING"]})
-                    ,createKeywordEntry("3", translate.text("Class C"), null, {keywords: ["CLASS.POSITION", "CLASS.PROJSTART", "CLASS.CLOUD", "CLASSES.DEPARTMENT"]})
+                valueContainer = _createKeywordEntriesContainer([
+                     _createKeywordEntry("1", translate.text("Class A"), null, {keywords: ["CLASS.BRANCHE", "CLASS.BASED", "CLASS.USERS"]})
+                    ,_createKeywordEntry("2", translate.text("Class B"), null, {keywords: ["CLASS.BUDGET", "CLASS.STANDARD", "CLASS.CUSTOMIZING"]})
+                    ,_createKeywordEntry("3", translate.text("Class C"), null, {keywords: ["CLASS.POSITION", "CLASS.PROJSTART", "CLASS.CLOUD", "CLASSES.DEPARTMENT"]})
                 ]);
                 break;
             case "CLASS.BRANCHE":
-                valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("1", translate.text("Branche 1"), null)
-                    ,createKeywordEntry("2", translate.text("Branche 2"), null)
-                    ,createKeywordEntry("3", translate.text("Branche 3"), null)
+                valueContainer = _createKeywordEntriesContainer([
+                     _createKeywordEntry("1", translate.text("Branche 1"), null)
+                    ,_createKeywordEntry("2", translate.text("Branche 2"), null)
+                    ,_createKeywordEntry("3", translate.text("Branche 3"), null)
                 ]);
                 break;
             case "OFFER.PROBABILITY":
-- 
GitLab