From 276c60bba561ca1fc7170821f1117f1510a685e7 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Wed, 17 Jul 2019 15:46:43 +0200
Subject: [PATCH] some search fields + Tinyint for boolean in member as
 everywhere else in basic

---
 .../2019.1.4/update_Salesproject_Member.xml   |  5 ++-
 aliasDefinition/Data_alias/Data_alias.aod     | 34 +++++++++----------
 entity/Member_entity/Member_entity.aod        | 30 +++++++++-------
 .../entityfields/decider/dropDownProcess.js   | 14 ++++----
 .../entityfields/decider/valueProcess.js      |  8 +++++
 .../expression.js                             |  0
 .../Salesproject_entity.aod                   | 11 ++++++
 7 files changed, 65 insertions(+), 37 deletions(-)
 create mode 100644 entity/Member_entity/entityfields/decider/valueProcess.js
 rename entity/Member_entity/recordcontainers/db/recordfieldmappings/{salesproject_role.displayvalue => role.displayvalue}/expression.js (100%)

diff --git a/.liquibase/Data_alias/basic/2019.1.4/update_Salesproject_Member.xml b/.liquibase/Data_alias/basic/2019.1.4/update_Salesproject_Member.xml
index f9ca66f2dc..9a8ad71c48 100644
--- a/.liquibase/Data_alias/basic/2019.1.4/update_Salesproject_Member.xml
+++ b/.liquibase/Data_alias/basic/2019.1.4/update_Salesproject_Member.xml
@@ -4,7 +4,10 @@
         
         <addColumn tableName="SALESPROJECT_MEMBER">
             <column name="OBJECT_TYPE" type="NVARCHAR(63)"/>
-            <column name="DECIDER" type="BOOLEAN"/>
+            <!-- Booleans in basic are always TINYINT with 1 = true, 0 = false see others/guide/whichDatatype.adoc -->
+            <column name="DECIDER" type="TINYINT" >
+                <constraints nullable="false"/>
+            </column> 
         </addColumn>
         <renameColumn newColumnName="OBJECT_ROWID" oldColumnName="SALESPROJECT_ID" tableName="SALESPROJECT_MEMBER" columnDataType="CHAR(36)"/>
         <renameColumn newColumnName="MEMBERID" oldColumnName="SALESPROJECT_MEMBERID" tableName="SALESPROJECT_MEMBER" columnDataType="CHAR(36)"/>
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 6d82073678..2184530956 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -9543,10 +9543,10 @@
                 <name>DECIDER</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="16" />
-                <size v="1" />
+                <columnType v="5" />
+                <size v="5" />
                 <scale v="0" />
-                <notNull v="false" />
+                <notNull v="true" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
@@ -10483,20 +10483,6 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-              <entityFieldDb>
-                <name>DESCRIPTION</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="500" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
               <entityFieldDb>
                 <name>DATE_EDIT</name>
                 <dbName></dbName>
@@ -10795,6 +10781,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DESCRIPTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="500" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
diff --git a/entity/Member_entity/Member_entity.aod b/entity/Member_entity/Member_entity.aod
index 974623c6e9..f4982bb49b 100644
--- a/entity/Member_entity/Member_entity.aod
+++ b/entity/Member_entity/Member_entity.aod
@@ -225,7 +225,9 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
       <name>DECIDER</name>
       <title>Decision maker</title>
       <contentType>BOOLEAN</contentType>
+      <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/Member_entity/entityfields/decider/dropDownProcess.js</dropDownProcess>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/decider/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>IMAGE</name>
@@ -301,38 +303,36 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
           <recordfield>MEMBER.CONTACT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALESPROJECT_ROLE.value</name>
-          <recordfield>MEMBER.ROLE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>RELATIONSHIP.value</name>
           <recordfield>MEMBER.RELATIONSHIP</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_RELATIONSHIP.value</name>
           <recordfield>CONTACT.RELATIONSHIP</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.displayValue</name>
           <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALESPROJECT_ROLE.displayValue</name>
-          <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DEPARTMENT.value</name>
           <recordfield>CONTACT.DEPARTMENT</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACTROLE.value</name>
           <recordfield>CONTACT.CONTACTROLE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>POSITION.value</name>
           <recordfield>CONTACT.POSITION</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>OBJECT_ROWID.value</name>
@@ -346,10 +346,6 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
           <name>MEMBERID.value</name>
           <recordfield>MEMBER.MEMBERID</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ROLE.value</name>
-          <recordfield>MEMBER.ROLE</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>OBJECT_ROWID.displayValue</name>
           <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression>
@@ -357,6 +353,16 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
         <dbRecordFieldMapping>
           <name>DECIDER.value</name>
           <recordfield>MEMBER.DECIDER</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ROLE.value</name>
+          <recordfield>MEMBER.ROLE</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ROLE.displayValue</name>
+          <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/role.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
diff --git a/entity/Member_entity/entityfields/decider/dropDownProcess.js b/entity/Member_entity/entityfields/decider/dropDownProcess.js
index 9b90ec7126..7f3d9f988e 100644
--- a/entity/Member_entity/entityfields/decider/dropDownProcess.js
+++ b/entity/Member_entity/entityfields/decider/dropDownProcess.js
@@ -1,7 +1,7 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     [true, translate.text("Yes")]
-    ,[false, translate.text("No")]
-]);
+import("system.translate");
+import("system.result");
+
+result.object([
+     ["1", translate.text("Yes")]
+    ,["0", translate.text("No")]
+]);
diff --git a/entity/Member_entity/entityfields/decider/valueProcess.js b/entity/Member_entity/entityfields/decider/valueProcess.js
new file mode 100644
index 0000000000..158a9a4274
--- /dev/null
+++ b/entity/Member_entity/entityfields/decider/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+{
+    result.string("0");
+}
\ No newline at end of file
diff --git a/entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js b/entity/Member_entity/recordcontainers/db/recordfieldmappings/role.displayvalue/expression.js
similarity index 100%
rename from entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
rename to entity/Member_entity/recordcontainers/db/recordfieldmappings/role.displayvalue/expression.js
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index ba9c01a20c..c767317136 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -704,26 +704,32 @@
         <dbRecordFieldMapping>
           <name>ENDDATE.value</name>
           <recordfield>SALESPROJECT.ENDDATE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>INFO.value</name>
           <recordfield>SALESPROJECT.INFO</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PHASE.value</name>
           <recordfield>SALESPROJECT.PHASE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PROBABILITY.value</name>
           <recordfield>SALESPROJECT.PROBABILITY</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PROJECTCODE.value</name>
           <recordfield>SALESPROJECT.PROJECTCODE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PROJECTTITLE.value</name>
           <recordfield>SALESPROJECT.PROJECTTITLE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SALESPROJECTID.value</name>
@@ -732,18 +738,22 @@
         <dbRecordFieldMapping>
           <name>STARTDATE.value</name>
           <recordfield>SALESPROJECT.STARTDATE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>STATE.value</name>
           <recordfield>SALESPROJECT.STATE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>VOLUME.value</name>
           <recordfield>SALESPROJECT.VOLUME</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
           <recordfield>SALESPROJECT.CONTACT_ID</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.displayValue</name>
@@ -764,6 +774,7 @@
         <dbRecordFieldMapping>
           <name>REASONS.value</name>
           <recordfield>SALESPROJECT.REASONS</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
-- 
GitLab