From f7b236410bcf0899d84a69503db5866bd731af9a Mon Sep 17 00:00:00 2001 From: "d.lechner" <d.lechner@adito.de> Date: Fri, 26 Jul 2019 17:18:18 +0200 Subject: [PATCH] Turnover and Contact Information for Organisation --- .../Organisation_entity.aod | 32 ++++++++++++++++ .../countactivity/valueProcess.js | 7 ++++ .../entityfields/lastactivity/colorProcess.js | 8 ++++ .../entityfields/lastactivity/valueProcess.js | 15 ++++++++ .../turnovercurrentyear/valueProcess.js | 17 +++++++++ .../turnoverlastyear/valueProcess.js | 17 +++++++++ .../turnoverpercentdiff/colorProcess.js | 14 +++++++ .../turnoverpercentdiff/valueProcess.js | 21 +++++++++++ .../_____LANGUAGE_de/_____LANGUAGE_de.aod | 24 ++++++++++++ .../OrganisationPreview_view.aod | 37 +++++++++++++++++++ 10 files changed, 192 insertions(+) create mode 100644 entity/Organisation_entity/entityfields/countactivity/valueProcess.js create mode 100644 entity/Organisation_entity/entityfields/lastactivity/colorProcess.js create mode 100644 entity/Organisation_entity/entityfields/lastactivity/valueProcess.js create mode 100644 entity/Organisation_entity/entityfields/turnovercurrentyear/valueProcess.js create mode 100644 entity/Organisation_entity/entityfields/turnoverlastyear/valueProcess.js create mode 100644 entity/Organisation_entity/entityfields/turnoverpercentdiff/colorProcess.js create mode 100644 entity/Organisation_entity/entityfields/turnoverpercentdiff/valueProcess.js diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index c364a60dda6..77c28108b05 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -863,6 +863,38 @@ <fieldName>Products</fieldName> </dependency> </entityConsumer> + <entityField> + <name>TurnoverCurrentYear</name> + <title>Turnover Current Year</title> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00€</outputFormat> + <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/turnovercurrentyear/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>TurnoverLastYear</name> + <title>Turnover Last Year</title> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00€</outputFormat> + <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/turnoverlastyear/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>TurnoverPercentDiff</name> + <title>Turnover change</title> + <colorProcess>%aditoprj%/entity/Organisation_entity/entityfields/turnoverpercentdiff/colorProcess.js</colorProcess> + <contentType>TEXT</contentType> + <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/turnoverpercentdiff/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>CountActivity</name> + <title>Number of activities</title> + <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/countactivity/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>LastActivity</name> + <title>Days inactive</title> + <colorProcess>%aditoprj%/entity/Organisation_entity/entityfields/lastactivity/colorProcess.js</colorProcess> + <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/lastactivity/valueProcess.js</valueProcess> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Organisation_entity/entityfields/countactivity/valueProcess.js b/entity/Organisation_entity/entityfields/countactivity/valueProcess.js new file mode 100644 index 00000000000..d3606bbab63 --- /dev/null +++ b/entity/Organisation_entity/entityfields/countactivity/valueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.vars"); +import("system.db"); +var amount = db.cell("select count(ACTIVITYID) from ACTIVITY join ACTIVITYLINK on ACTIVITYLINK.ACTIVITY_ID = ACTIVITY.ACTIVITYID \n\ + where ACTIVITYLINK.OBJECT_ROWID = '" + vars.get("$field.CONTACTID") + "' and ACTIVITYLINK.OBJECT_TYPE = 'Organisation'"); + +result.string(amount); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/lastactivity/colorProcess.js b/entity/Organisation_entity/entityfields/lastactivity/colorProcess.js new file mode 100644 index 00000000000..078b0ce70cd --- /dev/null +++ b/entity/Organisation_entity/entityfields/lastactivity/colorProcess.js @@ -0,0 +1,8 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(parseInt(vars.get("$field.LastActivity")) > 50) +{ + result.string(neon.PRIORITY_HIGH_COLOR); +} \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/lastactivity/valueProcess.js b/entity/Organisation_entity/entityfields/lastactivity/valueProcess.js new file mode 100644 index 00000000000..29dba86a024 --- /dev/null +++ b/entity/Organisation_entity/entityfields/lastactivity/valueProcess.js @@ -0,0 +1,15 @@ +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.CONTACTID")); +if (!entryDate) + entryDate = vars.get("$field.DATE_NEW"); + +daysPassed = DateUtils.getDayDifference(entryDate); + +if (daysPassed != null) + result.string(daysPassed); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/turnovercurrentyear/valueProcess.js b/entity/Organisation_entity/entityfields/turnovercurrentyear/valueProcess.js new file mode 100644 index 00000000000..1f8ee1ceff0 --- /dev/null +++ b/entity/Organisation_entity/entityfields/turnovercurrentyear/valueProcess.js @@ -0,0 +1,17 @@ +import("system.translate"); +import("Util_lib"); +import("system.datetime"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("system.date"); + +var currentYear = datetime.toDate(vars.get("$sys.date"), "yyyy"); + +var salesCurrentYear = db.cell("select SUM(NET) from salesorder where SALESORDERDATE >= '" + currentYear + "-01-01 00:00:00.000' \n\ + and CONTACT_ID = '" + vars.get("$field.CONTACTID") + "'"); + +if(salesCurrentYear == "") + salesCurrentYear = 0; + +result.string(salesCurrentYear); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/turnoverlastyear/valueProcess.js b/entity/Organisation_entity/entityfields/turnoverlastyear/valueProcess.js new file mode 100644 index 00000000000..fcf33532b8f --- /dev/null +++ b/entity/Organisation_entity/entityfields/turnoverlastyear/valueProcess.js @@ -0,0 +1,17 @@ +import("system.logging"); +import("system.datetime"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("system.date"); + +var lastYear = parseInt(datetime.toDate(vars.get("$sys.date"), "yyyy")) - 1; + +var salesLastYear = db.cell("select SUM(NET) from salesorder where SALESORDERDATE < '" + (lastYear+1) + "-01-01 00:00:00.000' \n\ + and SALESORDERDATE >= '" + lastYear + "-01-01 00:00:00.000' \n\ + and CONTACT_ID = '" + vars.get("$field.CONTACTID") + "'"); + +if(salesLastYear == "") + salesLastYear = 0; + +result.string(salesLastYear); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/turnoverpercentdiff/colorProcess.js b/entity/Organisation_entity/entityfields/turnoverpercentdiff/colorProcess.js new file mode 100644 index 00000000000..7a56cd33a5c --- /dev/null +++ b/entity/Organisation_entity/entityfields/turnoverpercentdiff/colorProcess.js @@ -0,0 +1,14 @@ +import("system.result"); +import("system.logging"); +import("system.vars"); +import("system.neon"); + +var ret; +var turnoverPercentDiff = parseInt(vars.get("$field.TurnoverPercentDiff")); + +if(turnoverPercentDiff > 0) + ret = neon.PRIORITY_LOW_COLOR; +else if (turnoverPercentDiff < 0) + ret = neon.PRIORITY_HIGH_COLOR; + +result.string(ret); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/turnoverpercentdiff/valueProcess.js b/entity/Organisation_entity/entityfields/turnoverpercentdiff/valueProcess.js new file mode 100644 index 00000000000..4d60d87f534 --- /dev/null +++ b/entity/Organisation_entity/entityfields/turnoverpercentdiff/valueProcess.js @@ -0,0 +1,21 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); + +var ret = 0; + +var turnoverCurrentYear = parseInt(vars.get("$field.TurnoverCurrentYear")); +var turnoverLastYear = parseInt(vars.get("$field.TurnoverLastYear")); + +if(turnoverLastYear != 0 && turnoverCurrentYear != 0) + ret = parseInt(100 / turnoverLastYear * turnoverCurrentYear) - 100; +else if(turnoverLastYear == 0 && turnoverCurrentYear != 0) + ret = 100; +else if(turnoverLastYear != 0 && turnoverCurrentYear == 0 ) + ret = -100; +else + ret = 0; + +ret += "%"; + +result.string(ret); \ No newline at end of file diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 27dd1f34f9a..5861ec1b788 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -18,6 +18,10 @@ <key>Data Privacy</key> <value>Datenschutz</value> </entry> + <entry> + <key>Number of activities</key> + <value>Anzahl Aktivitäten</value> + </entry> <entry> <key>Bulk mails</key> <value>Serienmails</value> @@ -45,6 +49,10 @@ <entry> <key>Members</key> </entry> + <entry> + <key>Turnover change</key> + <value>Entwicklung Umsatz</value> + </entry> <entry> <key>The following data has been anonymised: %0</key> <value>Die folgenden Daten wurden anonymisiert: %0</value> @@ -57,6 +65,10 @@ <key>MAX</key> <value>maximal</value> </entry> + <entry> + <key>Last activity</key> + <value>Letzte Aktivität (Tage)</value> + </entry> <entry> <key>Your changes have an impact on the data privacy information (DSGVO).</key> <value>Ihre Änderungen haben Auswirkungen auf den Datenschutz (DSGVO).</value> @@ -1750,6 +1762,10 @@ <key>Relationship</key> <value>Beziehung</value> </entry> + <entry> + <key>Change</key> + <value>Veränderung</value> + </entry> <entry> <key>Text Modular</key> <value>Textbaustein</value> @@ -5959,6 +5975,10 @@ <key>{$TICKET_EDITOR}</key> <value>Bearbeiter</value> </entry> + <entry> + <key>Turnover Last Year</key> + <value>Umsatz Vorjahr</value> + </entry> <entry> <key>Supportticket</key> </entry> @@ -6431,6 +6451,10 @@ <entry> <key>dada</key> </entry> + <entry> + <key>Turnover Current Year</key> + <value>Umsatz aktuelles Jahr</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonView/OrganisationPreview_view/OrganisationPreview_view.aod b/neonView/OrganisationPreview_view/OrganisationPreview_view.aod index 53db1551469..086e32caceb 100644 --- a/neonView/OrganisationPreview_view/OrganisationPreview_view.aod +++ b/neonView/OrganisationPreview_view/OrganisationPreview_view.aod @@ -6,6 +6,7 @@ <headerFooterLayout> <name>layout</name> <header>Header</header> + <footer>OrganistaionInformation</footer> </headerFooterLayout> </layout> <children> @@ -27,6 +28,24 @@ <entityField>Addresses</entityField> <view>AddressList_view</view> </neonViewReference> + <genericViewTemplate> + <name>Turnover</name> + <showDrawer v="true" /> + <drawerCaption>Turnover</drawerCaption> + <entityField>#ENTITY</entityField> + <title>Turnover</title> + <devices /> + <fields> + <entityFieldLink> + <name>1998bb83-a6c3-4bfb-9372-d592379591da</name> + <entityField>TurnoverCurrentYear</entityField> + </entityFieldLink> + <entityFieldLink> + <name>894a32ef-84cb-4331-a215-616b7402521d</name> + <entityField>TurnoverLastYear</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> <genericViewTemplate> <name>Info</name> <showDrawer v="true" /> @@ -50,5 +69,23 @@ </entityFieldLink> </fields> </genericViewTemplate> + <scoreCardViewTemplate> + <name>OrganistaionInformation</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>66f460bd-164c-4c8f-a129-49a6626a3696</name> + <entityField>TurnoverPercentDiff</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e1d7710b-f696-434d-b3e4-5b31f847a916</name> + <entityField>LastActivity</entityField> + </entityFieldLink> + <entityFieldLink> + <name>cc143e94-006f-4059-925a-212e91c1ece7</name> + <entityField>CountActivity</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> </children> </neonView> -- GitLab