diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index 45455a0fb3237ce5b0d5c100592cb23d2fb93fad..9bdcd9e87ff99fd29c58f91f56d6099f2e8c626d 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 0000000000000000000000000000000000000000..91a3e076d0cc7c79921b286f3a29247efe27d23f --- /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 0220c356e438f93caec2593833348848e6b0672e..1961ad30ca4f5803b0bf1ec963b2eb215d0d9999 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 6ebf2d3938dafa3844f9c42d57c01b885b6c26e7..8f281a95a4653e5f898e78220d2ad8d2f31f1b07 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 5fb077d32ad3a7f989a1f38a0fa7489d54b50d53..cb879eadc37a225a881ba5308f30454d95104aff 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 dfa8042e8af3a5ac06c7ee43b87aee9fb7a62b10..5ae0e4ce87a721c66b169da59f446b40edb5050b 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 20b3bac23f92667573e46f92effa12a47e05c2ed..393cc721882ce3815c532aa1309ce72c7e09f6be 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