From 25b418434e3f9639e0d1a885adc9b5761e6c1916 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Tue, 29 Jan 2019 09:47:51 +0100
Subject: [PATCH] Activity mit Objectrelation

---
 entity/Activity_entity/Activity_entity.aod    | 20 ++++++++
 .../children/object1rowid_param/code.js       |  4 ++
 .../children/object1type_param/code.js        |  5 ++
 .../ObjectRelation_entity.aod                 | 49 ++++++++++++++++++-
 .../object2_rowid/displayValueProcess.js      |  3 ++
 .../object2_rowid/linkedContextProcess.js     |  3 ++
 .../recordcontainers/db/conditionProcess.js   |  7 ++-
 .../SalesprojectForecast_entity.aod           |  2 +-
 .../_____LANGUAGE_EXTRA.aod                   | 30 ++++++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 34 +++++++++++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 31 ++++++++++++
 .../ObjectRelation_context.aod                |  6 +++
 .../ActivityMain_view/ActivityMain_view.aod   |  5 ++
 .../ObjectRelationPreview_view.aod            | 27 ++++++++++
 14 files changed, 223 insertions(+), 3 deletions(-)
 create mode 100644 entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js
 create mode 100644 entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js
 create mode 100644 entity/ObjectRelation_entity/entityfields/object2_rowid/displayValueProcess.js
 create mode 100644 entity/ObjectRelation_entity/entityfields/object2_rowid/linkedContextProcess.js
 create mode 100644 neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod

diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index 33ed911d36e..2b9bfcbde13 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -246,6 +246,26 @@
       <mandatory v="false" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityOutgoingField>
+      <name>ActivityObjectRelation_dfo</name>
+      <title>Relations</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectRelation_entity</entityName>
+        <fieldName>ObjectRelationByObject1_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Object1Rowid_param</name>
+          <code>%aditoprj%/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js</code>
+        </entityParameter>
+        <entityParameter>
+          <name>Object1Type_param</name>
+          <code>%aditoprj%/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js b/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js
new file mode 100644
index 00000000000..a8267b62060
--- /dev/null
+++ b/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.ACTIVITYID"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js b/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js
new file mode 100644
index 00000000000..c99cd53587f
--- /dev/null
+++ b/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
diff --git a/entity/ObjectRelation_entity/ObjectRelation_entity.aod b/entity/ObjectRelation_entity/ObjectRelation_entity.aod
index 52aac5e6a29..9dd1aa0d558 100644
--- a/entity/ObjectRelation_entity/ObjectRelation_entity.aod
+++ b/entity/ObjectRelation_entity/ObjectRelation_entity.aod
@@ -46,6 +46,8 @@
     <entityField>
       <name>OBJECT2_ROWID</name>
       <title>Object 2</title>
+      <linkedContextProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object2_rowid/linkedContextProcess.js</linkedContextProcess>
+      <displayValueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object2_rowid/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>OBJECT2_TYPE</name>
@@ -61,13 +63,54 @@
     <entityIncomingField>
       <name>ObjectRelationById_dfi</name>
       <fieldType>DEPENDENCY_IN</fieldType>
+      <title>Relations</title>
       <recordContainer>db</recordContainer>
+      <children>
+        <entityParameter>
+          <name>Object1Type_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>Object1Rowid_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityIncomingField>
+    <entityParameter>
+      <name>Object1Type_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityIncomingField>
+      <name>ObjectRelationByObject1_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>8eb3187c-07cb-4b51-8b7e-d63e83959bdb</name>
+          <entityName>Activity_entity</entityName>
+          <fieldName>ActivityObjectRelation_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ObjectRelatonId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityIncomingField>
+    <entityParameter>
+      <name>Object1Rowid_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <title></title>
       <description>&amp;lt;null value&amp;gt;</description>
       <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/ObjectRelation_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -113,6 +156,10 @@
           <name>USER_NEW.value</name>
           <recordfield>AB_OBJECTRELATION.USER_NEW</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>AB_OBJECTRELATION.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/ObjectRelation_entity/entityfields/object2_rowid/displayValueProcess.js b/entity/ObjectRelation_entity/entityfields/object2_rowid/displayValueProcess.js
new file mode 100644
index 00000000000..7625c5e0e2e
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/object2_rowid/displayValueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("Object")
\ No newline at end of file
diff --git a/entity/ObjectRelation_entity/entityfields/object2_rowid/linkedContextProcess.js b/entity/ObjectRelation_entity/entityfields/object2_rowid/linkedContextProcess.js
new file mode 100644
index 00000000000..05ab13d81d4
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/object2_rowid/linkedContextProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$field.OBJECT2_TYPE"))
\ No newline at end of file
diff --git a/entity/ObjectRelation_entity/recordcontainers/db/conditionProcess.js b/entity/ObjectRelation_entity/recordcontainers/db/conditionProcess.js
index fb7e7cc1c02..6b012d3a311 100644
--- a/entity/ObjectRelation_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/ObjectRelation_entity/recordcontainers/db/conditionProcess.js
@@ -4,11 +4,16 @@ import("system.result");
 import("system.db");
 import("Sql_lib");
 
-logging.log("objectid: " + vars.get("$param.ObjectRelatonId_param"))
+logging.log("rowid: " + vars.get("$param.Object1Rowid_param"))
+logging.log("type: " + vars.get("$param.Object1Type_param"))
 logging.log(SqlCondition.begin()
+                .andPrepareVars("AB_OBJECTRELATION.OBJECT1_TYPE", "$param.Object1Type_param")
+                .andPrepareVars("AB_OBJECTRELATION.OBJECT1_ROWID", "$param.Object1Rowid_param")
                 .andPrepareVars("AB_OBJECTRELATION.AB_OBJECTRELATIONID", "$param.ObjectRelatonId_param")
                 .build("1=2").toSource())
 
 result.string(db.translateCondition(SqlCondition.begin()
+                .andPrepareVars("AB_OBJECTRELATION.OBJECT1_TYPE", "$param.Object1Type_param")
+                .andPrepareVars("AB_OBJECTRELATION.OBJECT1_ROWID", "$param.Object1Rowid_param")
                 .andPrepareVars("AB_OBJECTRELATION.AB_OBJECTRELATIONID", "$param.ObjectRelatonId_param")
                 .build("1=2")));
\ No newline at end of file
diff --git a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
index 04eca20d0ae..75ee24a6cdd 100644
--- a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
+++ b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.1.1">
   <name>SalesprojectForecast_entity</name>
-  <title>Forecast</title>
+  <title>${FORECAST_ENGLISH}</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>db</recordContainer>
   <entityFields>
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index a6b15592693..b1fbca7801f 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -1458,6 +1458,36 @@
     <entry>
       <key>responsible</key>
     </entry>
+    <entry>
+      <key>Kundenstammblatt</key>
+    </entry>
+    <entry>
+      <key>Person</key>
+    </entry>
+    <entry>
+      <key>Detail</key>
+    </entry>
+    <entry>
+      <key>Object 2</key>
+    </entry>
+    <entry>
+      <key>Object 1</key>
+    </entry>
+    <entry>
+      <key>Type 2</key>
+    </entry>
+    <entry>
+      <key>Type 1</key>
+    </entry>
+    <entry>
+      <key>Relations</key>
+    </entry>
+    <entry>
+      <key>Object Relation</key>
+    </entry>
+    <entry>
+      <key>${FORECAST_ENGLISH}</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 a0795421afb..c2f99df8066 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -1561,6 +1561,7 @@
     </entry>
     <entry>
       <key>Object</key>
+      <value>Objekt</value>
     </entry>
     <entry>
       <key>Attributes</key>
@@ -1856,6 +1857,39 @@
       <key>{$DATE_EDIT}</key>
       <value>Änderungsdatum</value>
     </entry>
+    <entry>
+      <key>Kundenstammblatt</key>
+    </entry>
+    <entry>
+      <key>Person</key>
+    </entry>
+    <entry>
+      <key>Detail</key>
+    </entry>
+    <entry>
+      <key>Object 2</key>
+    </entry>
+    <entry>
+      <key>Object 1</key>
+    </entry>
+    <entry>
+      <key>Type 2</key>
+    </entry>
+    <entry>
+      <key>Type 1</key>
+    </entry>
+    <entry>
+      <key>Relations</key>
+      <value>Beziehungen</value>
+    </entry>
+    <entry>
+      <key>Object Relation</key>
+      <value>Objektbeziehung</value>
+    </entry>
+    <entry>
+      <key>${FORECAST_ENGLISH}</key>
+      <value>Forecast</value>
+    </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 e851009f1d3..d4e1267101f 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -1487,6 +1487,37 @@
     <entry>
       <key>responsible</key>
     </entry>
+    <entry>
+      <key>Kundenstammblatt</key>
+    </entry>
+    <entry>
+      <key>Person</key>
+    </entry>
+    <entry>
+      <key>Detail</key>
+    </entry>
+    <entry>
+      <key>Object 2</key>
+    </entry>
+    <entry>
+      <key>Object 1</key>
+    </entry>
+    <entry>
+      <key>Type 2</key>
+    </entry>
+    <entry>
+      <key>Type 1</key>
+    </entry>
+    <entry>
+      <key>Relations</key>
+    </entry>
+    <entry>
+      <key>Object Relation</key>
+    </entry>
+    <entry>
+      <key>${FORECAST_ENGLISH}</key>
+      <value>Forecast</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/ObjectRelation_context/ObjectRelation_context.aod b/neonContext/ObjectRelation_context/ObjectRelation_context.aod
index 90149360d0c..4e07153b0da 100644
--- a/neonContext/ObjectRelation_context/ObjectRelation_context.aod
+++ b/neonContext/ObjectRelation_context/ObjectRelation_context.aod
@@ -2,11 +2,17 @@
 <neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0">
   <name>ObjectRelation_context</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterview>ObjectRelationFilter_view</filterview>
+  <preview>ObjectRelationPreview_view</preview>
   <entity>ObjectRelation_entity</entity>
   <references>
     <neonViewReference>
       <name>f6b27aa2-d0a7-479c-812e-8b16400b564b</name>
       <view>ObjectRelationFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>dc0bd793-a472-4a7b-8394-06c4bc31258a</name>
+      <view>ObjectRelationPreview_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/ActivityMain_view/ActivityMain_view.aod b/neonView/ActivityMain_view/ActivityMain_view.aod
index 983a1dc1ef0..88a02cfbd08 100644
--- a/neonView/ActivityMain_view/ActivityMain_view.aod
+++ b/neonView/ActivityMain_view/ActivityMain_view.aod
@@ -24,5 +24,10 @@
       <entityField>ActivityDocument_dfo</entityField>
       <view>DocumentFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>644418a6-7945-493b-be3f-86b3b62daaab</name>
+      <entityField>ActivityObjectRelation_dfo</entityField>
+      <view>ObjectRelationFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod b/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod
new file mode 100644
index 00000000000..f75d179da38
--- /dev/null
+++ b/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod
@@ -0,0 +1,27 @@
+<?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.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>ObjectRelationPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Object</name>
+      <entityField>#ENTITY</entityField>
+      <title>Object</title>
+      <fields>
+        <entityFieldLink>
+          <name>eabe1737-7a31-4181-8c32-bda6a9f7d7e9</name>
+          <entityField>OBJECT2_ROWID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b1318701-530e-48a5-a776-6f24d1edf907</name>
+          <entityField>OBJECT2_TYPE</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
-- 
GitLab