From 09f5a9f5e48946d61dc4a12e908dc54bd9ed79b2 Mon Sep 17 00:00:00 2001
From: Benjamin Ulrich <b.ulrich@adito.de>
Date: Wed, 14 Jul 2021 07:21:22 +0000
Subject: [PATCH] [Projekt: xRM-Sales][TicketNr.: 1081463][Erweiterung der
 Filter-View im Bereich der Vertriebsprojekte um die Wahrscheinlichkeit ]

---
 .../Salesproject_entity.aod                   | 21 ++++++++
 .../volumeweighted/valueProcess.js            |  8 +++
 .../volumeweighted.value/expression.js        |  3 ++
 .../expression.js                             |  3 ++
 .../_____LANGUAGE_EXTRA.aod                   | 52 ++++++++++++++++++-
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 12 +++--
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 24 +++++++--
 .../SalesprojectFilter_view.aod               | 27 ++++++++++
 8 files changed, 140 insertions(+), 10 deletions(-)
 create mode 100644 entity/Salesproject_entity/entityfields/volumeweighted/valueProcess.js
 create mode 100644 entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted.value/expression.js
 create mode 100644 entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted_aggregate.value/expression.js

diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 2e65295c1f0..4114b299d4c 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -858,6 +858,18 @@
       <name>IgnoreChecklists_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityField>
+      <name>volumeWeighted</name>
+      <title>Weighted(€)</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volumeweighted/valueProcess.js</valueProcess>
+    </entityField>
+    <entityAggregateField>
+      <name>volumeWeighted_aggregate</name>
+      <parentField>volumeWeighted</parentField>
+    </entityAggregateField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -1007,6 +1019,15 @@
           <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/inactivetime.value/expression.js</expression>
           <isFilterable v="true" />
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>volumeWeighted.value</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted.value/expression.js</expression>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <aggregateFieldDbMapping>
+          <name>volumeWeighted_aggregate.value</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted_aggregate.value/expression.js</expression>
+        </aggregateFieldDbMapping>
       </recordFieldMappings>
       <linkInformation>
         <linkInformation>
diff --git a/entity/Salesproject_entity/entityfields/volumeweighted/valueProcess.js b/entity/Salesproject_entity/entityfields/volumeweighted/valueProcess.js
new file mode 100644
index 00000000000..9757744c92b
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/volumeweighted/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.eMath");
+import("system.result");
+
+if(vars.get("$field.VOLUME") && vars.get("$field.PROBABILITY"))
+{
+    result.string(eMath.mulDec(vars.get("$field.VOLUME"), eMath.divDec(vars.get("$field.PROBABILITY"), 100)));
+}
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted.value/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted.value/expression.js
new file mode 100644
index 00000000000..9ac8a4ce412
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted.value/expression.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("VOLUME * PROBABILITY / 100");
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted_aggregate.value/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted_aggregate.value/expression.js
new file mode 100644
index 00000000000..9ac8a4ce412
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted_aggregate.value/expression.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("VOLUME * PROBABILITY / 100");
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index ec885fdd3b0..c63f218a34d 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -9008,10 +9008,58 @@
       <key>Attachment count</key>
     </entry>
     <entry>
-      <key>Volume(Euro)</key>
+      <key>Field Type</key>
     </entry>
     <entry>
-      <key>Field Type</key>
+      <key>The chosen attributes were successfully set for %0 %1</key>
+    </entry>
+    <entry>
+      <key>SerialLetter</key>
+    </entry>
+    <entry>
+      <key>Bulkmail</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the serial letter.</key>
+    </entry>
+    <entry>
+      <key>The attribute \"%0\" couldn't be set for %1 %2, because %3.</key>
+    </entry>
+    <entry>
+      <key>the max amount of this attribute has been reached</key>
+    </entry>
+    <entry>
+      <key>set attribute (use filter result)</key>
+    </entry>
+    <entry>
+      <key>The chosen attribute was successfully set for %0 %1</key>
+    </entry>
+    <entry>
+      <key>Weighted(€)</key>
+    </entry>
+    <entry>
+      <key>add Attributes</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the bulk mail.</key>
+    </entry>
+    <entry>
+      <key>Attribute \"%0\" can only be inserted once with the same value.</key>
+    </entry>
+    <entry>
+      <key>Set attribute (use filter result)</key>
+    </entry>
+    <entry>
+      <key>set attribute (selected data)</key>
+    </entry>
+    <entry>
+      <key>affected rows:</key>
+    </entry>
+    <entry>
+      <key>this attribute with the same value exists already</key>
+    </entry>
+    <entry>
+      <key>Volume (Euro)</key>
     </entry>
     <entry>
       <key>Shows the organisations turnover, forecast and planing in a 3 year time-span</key>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index f333233b075..d7c9c23a39f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -1947,6 +1947,10 @@
       <key>Volume(€)</key>
       <value>Volumen(€)</value>
     </entry>
+    <entry>
+      <key>Weighted(€)</key>
+      <value>Gewichtet(€)</value>
+    </entry>
     <entry>
       <key>by translated name</key>
       <value>Name (Ãœbersetzt)</value>
@@ -11815,10 +11819,6 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Shows device types used by bulkmail recipients</key>
     </entry>
-    <entry>
-      <key>Volume(Euro)</key>
-      <value>Volumen(Euro)</value>
-    </entry>
     <entry>
       <key>new Email</key>
     </entry>
@@ -11905,9 +11905,11 @@ Bitte Datumseingabe prüfen</value>
       <key>Values have been updated, using the current rate:</key>
       <value>Beträge wurden anhand des aktuellen Kurses aktualisisert:</value>
     </entry>
+    <entry>
+      <key>set attribute (use filter result)</key>
+    </entry>
     <entry>
       <key>Volume (Euro)</key>
-      <value>Volumes (Euro)</value>
     </entry>
     <entry>
       <key>Shows the organisations turnover and forecast</key>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 14283d7447a..9b590bb2531 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -9047,9 +9047,6 @@
     <entry>
       <key>Target amount</key>
     </entry>
-    <entry>
-      <key>Volume(Euro)</key>
-    </entry>
     <entry>
       <key>new Email</key>
     </entry>
@@ -9203,6 +9200,27 @@
     <entry>
       <key>Redirect needs a full URL with http/https</key>
     </entry>
+    <entry>
+      <key>SerialLetter</key>
+    </entry>
+    <entry>
+      <key>Bulkmail</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the serial letter.</key>
+    </entry>
+    <entry>
+      <key>Weighted(€)</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the bulk mail.</key>
+    </entry>
+    <entry>
+      <key>Attribute \"%0\" can only be inserted once with the same value.</key>
+    </entry>
+    <entry>
+      <key>Set attribute (use filter result)</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
index 9a5e4d17919..c75ed2e07a5 100644
--- a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
+++ b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
@@ -112,6 +112,18 @@
           <name>52a851b0-9059-4d57-8ff5-335c819359e8</name>
           <entityField>STATUS</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>7e1737e2-c4d6-4779-a503-d3ba8045585c</name>
+          <entityField>PROBABILITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>2b9e3d06-35b9-4b1a-b6ba-e59d33bdf5ee</name>
+          <entityField>VOLUME</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>3ee04f6e-e14c-4161-8c43-471a30465093</name>
+          <entityField>volumeWeighted</entityField>
+        </neonTableColumn>
       </columns>
     </tableViewTemplate>
     <treeTableViewTemplate>
@@ -169,6 +181,21 @@
           <name>e1fb4cd5-8b56-4564-a1ad-24c3b95a3335</name>
           <entityField>STATUS</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>73bde81c-5d5f-4e1c-877b-1830be737c42</name>
+          <entityField>PROBABILITY</entityField>
+          <aggregateEntityField>PROBABILITY_aggregate</aggregateEntityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>06edea87-f95c-4ff3-a546-e854c33eb3f1</name>
+          <entityField>VOLUME</entityField>
+          <aggregateEntityField>VOLUME_aggregate</aggregateEntityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>1cef6620-accf-4cc8-9e44-9c1f4e50d2cb</name>
+          <entityField>volumeWeighted</entityField>
+          <aggregateEntityField>volumeWeighted_aggregate</aggregateEntityField>
+        </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
     <dynamicMultiDataChartViewTemplate>
-- 
GitLab