From a3a324cf8d09dee86da2e4a59d09cfd712a297a1 Mon Sep 17 00:00:00 2001 From: "j.goderbauer" <j.goderbauer@adito.de> Date: Fri, 10 May 2019 09:39:43 +0200 Subject: [PATCH] Salesproject: KPI --- .../Salesproject_entity.aod | 14 +- .../days_notactive/valueProcess.js | 11 - .../entityfields/inactivetime/valueProcess.js | 20 ++ .../remainingtime/valueProcess.js | 15 ++ .../entityfields/runtime/valueProcess.js | 17 ++ .../_____LANGUAGE_EXTRA.aod | 72 +++++++ .../_____LANGUAGE_de/_____LANGUAGE_de.aod | 59 ++++++ .../_____LANGUAGE_en/_____LANGUAGE_en.aod | 72 +++++++ .../SalesprojectPreview_view.aod | 196 +++++++++--------- 9 files changed, 369 insertions(+), 107 deletions(-) delete mode 100644 entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js create mode 100644 entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js create mode 100644 entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js create mode 100644 entity/Salesproject_entity/entityfields/runtime/valueProcess.js diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index faa8f54f7af..3128ea36724 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -429,11 +429,11 @@ <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> </entityActionField> <entityField> - <name>DAYS_NOTACTIVE</name> + <name>InactiveTime</name> <title>Days inactive</title> <contentType>NUMBER</contentType> <state>READONLY</state> - <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js</valueProcess> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js</valueProcess> </entityField> <entityConsumer> <name>KeywordWonLost</name> @@ -601,6 +601,16 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>RemainingTime</name> + <title>Days remaining</title> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>RunTime</name> + <title>Days running</title> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/runtime/valueProcess.js</valueProcess> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js b/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js deleted file mode 100644 index 5362824c125..00000000000 --- a/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js +++ /dev/null @@ -1,11 +0,0 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); -import("ActivityTask_lib"); -import("Date_lib"); - -var entryDate = ActivityUtils.getLastActivityDate(vars.get("$field.SALESPROJECTID")); -var daysPassed = DateUtils.getDayDifference(entryDate); - -if (daysPassed != null) - result.string(daysPassed); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js b/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js new file mode 100644 index 00000000000..6b34c36109f --- /dev/null +++ b/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js @@ -0,0 +1,20 @@ +import("system.datetime"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("ActivityTask_lib"); +import("Date_lib"); + +var entryDate = ActivityUtils.getLastActivityDate(vars.get("$field.SALESPROJECTID")); +if (!entryDate) + entryDate = vars.get("$field.STARTDATE"); + +var roleoutDate = vars.getString("$field.ENDDATE"); +var daysPassed ; +if (!roleoutDate || roleoutDate < datetime.date()) + daysPassed = 0; +else + daysPassed = DateUtils.getDayDifference(entryDate); + +if (daysPassed != null) + result.string(daysPassed); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js b/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js new file mode 100644 index 00000000000..c93dbc277c9 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js @@ -0,0 +1,15 @@ +import("system.datetime"); +import("system.eMath"); +import("system.vars"); +import("system.result"); + +var roleoutDate = vars.getString("$field.ENDDATE"); +var res = 0; + +if (roleoutDate) +{ + dateDiff = eMath.subInt(roleoutDate, datetime.date());//diff in ms + if (dateDiff > 0)//negative remaining time is pointless, so let's just show 0 + res = eMath.divInt(dateDiff, datetime.ONE_DAY); +} +result.string(res); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/runtime/valueProcess.js b/entity/Salesproject_entity/entityfields/runtime/valueProcess.js new file mode 100644 index 00000000000..95c1884c758 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/runtime/valueProcess.js @@ -0,0 +1,17 @@ +import("system.datetime"); +import("system.eMath"); +import("system.vars"); +import("system.result"); + +var startDate = vars.getString("$field.STARTDATE"); +var endDate = vars.getString("$field.ENDDATE"); +if (!endDate || datetime.date() < endDate) + endDate = datetime.date(); + +var dateDiff = eMath.subInt(endDate, startDate);//diff in ms +if (dateDiff > 0) + dateDiff = eMath.divInt(dateDiff, datetime.ONE_DAY); +else + dateDiff = 0; + +result.string(dateDiff); \ No newline at end of file diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index c793bf267de..b908568e9eb 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -3525,6 +3525,78 @@ <entry> <key>Letter</key> </entry> + <entry> + <key>Appointment</key> + </entry> + <entry> + <key>ARCHIEVED</key> + </entry> + <entry> + <key>UNSEEN</key> + </entry> + <entry> + <key>TODELETE</key> + </entry> + <entry> + <key>CONFIRMED</key> + </entry> + <entry> + <key>SEEN</key> + </entry> + <entry> + <key>rebuild Index</key> + </entry> + <entry> + <key>Charts</key> + </entry> + <entry> + <key>Keywords</key> + </entry> + <entry> + <key>Days running</key> + </entry> + <entry> + <key>Logs</key> + </entry> + <entry> + <key>Mail</key> + </entry> + <entry> + <key>Phonecall</key> + </entry> + <entry> + <key>Chart 2</key> + </entry> + <entry> + <key>Log</key> + </entry> + <entry> + <key>Offer Header Text</key> + </entry> + <entry> + <key>Employees</key> + </entry> + <entry> + <key>Todo</key> + </entry> + <entry> + <key>Days remaining</key> + </entry> + <entry> + <key>Offer Footer Text</key> + </entry> + <entry> + <key>Date new</key> + </entry> + <entry> + <key>Date edit</key> + </entry> + <entry> + <key>Keyword Attributes</key> + </entry> + <entry> + <key>HTML</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 98309a6d774..11a0376a3ae 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -4421,6 +4421,65 @@ <entry> <key>Offer date</key> </entry> + <entry> + <key>Termin</key> + </entry> + <entry> + <key>rebuild Index</key> + </entry> + <entry> + <key>Charts</key> + </entry> + <entry> + <key>Keywords</key> + </entry> + <entry> + <key>Days running</key> + <value>Tage laufend</value> + </entry> + <entry> + <key>Logs</key> + </entry> + <entry> + <key>Mail</key> + </entry> + <entry> + <key>Phonecall</key> + </entry> + <entry> + <key>Chart 2</key> + </entry> + <entry> + <key>Log</key> + </entry> + <entry> + <key>Offer Header Text</key> + </entry> + <entry> + <key>Employees</key> + </entry> + <entry> + <key>Todo</key> + </entry> + <entry> + <key>Days remaining</key> + <value>Tage verbleibend</value> + </entry> + <entry> + <key>Offer Footer Text</key> + </entry> + <entry> + <key>Date new</key> + </entry> + <entry> + <key>Date edit</key> + </entry> + <entry> + <key>Keyword Attributes</key> + </entry> + <entry> + <key>HTML</key> + </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 3fb56232b12..24b30fb02eb 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -3560,6 +3560,78 @@ <entry> <key>Letter</key> </entry> + <entry> + <key>Appointment</key> + </entry> + <entry> + <key>ARCHIEVED</key> + </entry> + <entry> + <key>UNSEEN</key> + </entry> + <entry> + <key>TODELETE</key> + </entry> + <entry> + <key>CONFIRMED</key> + </entry> + <entry> + <key>SEEN</key> + </entry> + <entry> + <key>rebuild Index</key> + </entry> + <entry> + <key>Charts</key> + </entry> + <entry> + <key>Keywords</key> + </entry> + <entry> + <key>Days running</key> + </entry> + <entry> + <key>Logs</key> + </entry> + <entry> + <key>Mail</key> + </entry> + <entry> + <key>Phonecall</key> + </entry> + <entry> + <key>Chart 2</key> + </entry> + <entry> + <key>Log</key> + </entry> + <entry> + <key>Offer Header Text</key> + </entry> + <entry> + <key>Employees</key> + </entry> + <entry> + <key>Todo</key> + </entry> + <entry> + <key>Days remaining</key> + </entry> + <entry> + <key>Offer Footer Text</key> + </entry> + <entry> + <key>Date new</key> + </entry> + <entry> + <key>Date edit</key> + </entry> + <entry> + <key>Keyword Attributes</key> + </entry> + <entry> + <key>HTML</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 3696d1a1eda..f6f56d41947 100644 --- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod +++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod @@ -1,94 +1,102 @@ -<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Head</header> - <footer>AdditionalInfo</footer> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Head</name> - <iconField>IMAGE</iconField> - <titleField>PROJECTTITLE</titleField> - <subtitleField>CONTACT_ID</subtitleField> - <descriptionField>PROJECTCODE</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Details</name> - <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>f2b33601-12e8-463f-a920-6e1ae9745491</name> - <entityField>RELATION_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>4e3d7a37-f55b-4c18-9ba1-ab4ab0bbb442</name> - <entityField>STATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>2867e662-b824-4bbf-8eaf-bbd34f44598e</name> - <entityField>REASONS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ff0dcd67-56ec-4db1-8c53-531f22fda716</name> - <entityField>PHASE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3164fe37-8ca0-44c0-bebe-b9573346fb72</name> - <entityField>STARTDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>529e8b1f-014f-4b44-8bba-96869156ebf7</name> - <entityField>ENDDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0ba7dcb5-9606-4d74-8455-3423a16fd98a</name> - <entityField>PROBABILITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>950d21a3-c0f9-4df5-9810-fa027a6fdb4a</name> - <entityField>VOLUME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>bf7ecf7a-3d7f-4ec8-867a-c10ced346343</name> - <entityField>TIMETRACKINGSUM</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <drawerCaption>Further informations</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>9fe11db5-ec66-4238-9c56-5ace055f1d90</name> - <entityField>INFO</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>f3542270-e7bd-4f9f-b7c0-f6c5210bb337</name> - <entityField>MainDocuments</entityField> - <view>DocumentList_view</view> - </neonViewReference> - <scoreCardViewTemplate> - <name>AdditionalInfo</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>79490331-6be4-422f-9450-da0db56f0654</name> - <entityField>DAYS_NOTACTIVE</entityField> - </entityFieldLink> - </fields> - </scoreCardViewTemplate> - </children> -</neonView> +<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>SalesprojectPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Head</header> + <footer>AdditionalInfo</footer> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Head</name> + <iconField>IMAGE</iconField> + <titleField>PROJECTTITLE</titleField> + <subtitleField>CONTACT_ID</subtitleField> + <descriptionField>PROJECTCODE</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Details</name> + <showDrawer v="true" /> + <drawerCaption>Details</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>f2b33601-12e8-463f-a920-6e1ae9745491</name> + <entityField>RELATION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4e3d7a37-f55b-4c18-9ba1-ab4ab0bbb442</name> + <entityField>STATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2867e662-b824-4bbf-8eaf-bbd34f44598e</name> + <entityField>REASONS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ff0dcd67-56ec-4db1-8c53-531f22fda716</name> + <entityField>PHASE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3164fe37-8ca0-44c0-bebe-b9573346fb72</name> + <entityField>STARTDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>529e8b1f-014f-4b44-8bba-96869156ebf7</name> + <entityField>ENDDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0ba7dcb5-9606-4d74-8455-3423a16fd98a</name> + <entityField>PROBABILITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>950d21a3-c0f9-4df5-9810-fa027a6fdb4a</name> + <entityField>VOLUME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>bf7ecf7a-3d7f-4ec8-867a-c10ced346343</name> + <entityField>TIMETRACKINGSUM</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <drawerCaption>Further informations</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>9fe11db5-ec66-4238-9c56-5ace055f1d90</name> + <entityField>INFO</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>f3542270-e7bd-4f9f-b7c0-f6c5210bb337</name> + <entityField>MainDocuments</entityField> + <view>DocumentList_view</view> + </neonViewReference> + <scoreCardViewTemplate> + <name>AdditionalInfo</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>79490331-6be4-422f-9450-da0db56f0654</name> + <entityField>InactiveTime</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ce670b75-346e-4aeb-b72d-5ef68dd77e71</name> + <entityField>RemainingTime</entityField> + </entityFieldLink> + <entityFieldLink> + <name>884d9900-7e75-42d1-a669-53f6aae5c420</name> + <entityField>RunTime</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> -- GitLab