diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index c364a60dda61e94a0ff23081bd9f8bacd3acb558..77c28108b052fd8f97c7bb22ab19fa2846a61ce2 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 0000000000000000000000000000000000000000..d3606bbab63de69eb4ed3b2e3748368af23f1d30 --- /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 0000000000000000000000000000000000000000..078b0ce70cdb0c96db40f203c06a7b04e6bb7f2b --- /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 0000000000000000000000000000000000000000..29dba86a02476bea8576752deae74731c0f168c6 --- /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 0000000000000000000000000000000000000000..1f8ee1ceff032c2caab8194406bdc69ad585f039 --- /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 0000000000000000000000000000000000000000..fcf33532b8f486b562bf3731ea6cb24a50ef2e59 --- /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 0000000000000000000000000000000000000000..7a56cd33a5ce76318de88595151ae16117b8fdb2 --- /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 0000000000000000000000000000000000000000..4d60d87f534d8811ae2fc0aba508d419610b102f --- /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 27dd1f34f9a993b3eee81eb4f1cde1c2b71210ea..5861ec1b788a35c4c7ddd6664116031f3ed85069 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 53db15514695223443856622f25f682fd986df3b..086e32cacebfc76fd231bafc2150c8b6c88be799 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>