From b8a45e71c893bc0895b65c4b6d6054dc09c507de Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Tue, 12 Feb 2019 10:23:06 +0100
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.:
 1034270][Vertriebsprojekt - Es soll ein Feld Aufwand geben]

---
 .../Salesproject_entity.aod                    |  6 ++++++
 .../timetrackingsum/valueProcess.js            | 13 +++++++++++++
 .../_____LANGUAGE_EXTRA.aod                    |  3 +++
 language/_____LANGUAGE_de/_____LANGUAGE_de.aod |  8 ++++++++
 language/_____LANGUAGE_en/_____LANGUAGE_en.aod |  3 +++
 .../SalesprojectPreview_view.aod               |  4 ++++
 process/Salesproject_lib/process.js            | 18 ++++++++++++++++++
 7 files changed, 55 insertions(+)
 create mode 100644 entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js

diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 45455a0fb3..9bdcd9e87f 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -303,6 +303,12 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>TIMETRACKINGSUM</name>
+      <title>Time expenses</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js b/entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js
new file mode 100644
index 0000000000..91a3e076d0
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.eMath");
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("Salesproject_lib");
+
+var objectId = ContextUtils.getCurrentContextId();
+var rowId = vars.getString("$field.SALESPROJECTID");
+
+var hrs = Salesproject.getTotalTrackingTime(objectId, rowId) / 60;
+hrs = eMath.roundDec(hrs, 2, eMath.ROUND_HALF_UP);
+
+result.string(hrs + " " + translate.text("hrs"));
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 0220c356e4..1961ad30ca 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -1530,6 +1530,9 @@
     <entry>
       <key>Swiss franc</key>
     </entry>
+    <entry>
+      <key>hrs</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 6ebf2d3938..8f281a95a4 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -78,6 +78,10 @@
       <key>Customercode</key>
       <value>Kundennummer</value>
     </entry>
+    <entry>
+      <key>Time expenses</key>
+      <value>Aufwand</value>
+    </entry>
     <entry>
       <key>Norwegian</key>
       <value>Norwegisch</value>
@@ -711,6 +715,10 @@
       <key>Salesproject</key>
       <value>Vertriebsprojekt</value>
     </entry>
+    <entry>
+      <key>hrs</key>
+      <value>Std.</value>
+    </entry>
     <entry>
       <key>Rollout</key>
       <value>Roll Out</value>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 5fb077d32a..cb879eadc3 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -1556,6 +1556,9 @@
     <entry>
       <key>Swiss franc</key>
     </entry>
+    <entry>
+      <key>hrs</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
index dfa8042e8a..5ae0e4ce87 100644
--- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
+++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
@@ -52,6 +52,10 @@
           <name>774ab565-a5e0-4b31-a77a-39143534f9a8</name>
           <entityField>ESTIMATION</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>bf7ecf7a-3d7f-4ec8-867a-c10ced346343</name>
+          <entityField>TIMETRACKINGSUM</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js
index 20b3bac23f..393cc72188 100644
--- a/process/Salesproject_lib/process.js
+++ b/process/Salesproject_lib/process.js
@@ -81,4 +81,22 @@ Salesproject.getSalesProjectTitleById = function(pSalesProjectId)
     return db.cell( SqlCondition.begin()
                         .andPrepare("SALESPROJECT.SALESPROJECTID", pSalesProjectId)
                         .buildSql("select PROJECTTITLE from SALESPROJECT", "1=0"));
+}
+
+/**
+ * calculates the total time of all time trackings of the object
+ * 
+ * @param {String} pObjectId the objectId
+ * @param {String} pRowId the rowId
+ * 
+ * @return {Number} total time in minutes
+ */
+Salesproject.getTotalTrackingTime = function (pObjectId, pRowId)
+{
+    var totalMinutes = db.cell(SqlCondition.begin()
+        .andPrepare("TIMETRACKING.OBJECT_ID", pObjectId)
+        .andPrepare("TIMETRACKING.ROW_ID", pRowId)
+        .buildSql("select sum(MINUTES) from TIMETRACKING", "1=0"));
+    
+    return Number(totalMinutes);
 }
\ No newline at end of file
-- 
GitLab