From 22c4b47e308e3cbeb506e6c1f6410ec754ce7c18 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Tue, 14 May 2019 16:24:19 +0200 Subject: [PATCH] fix classifications --- .../ClassificationScore_entity.aod | 12 ++++++++++ .../entityfields/maxvalue/valueProcess.js | 14 +++++++----- .../Classification_entity.aod | 7 ++++++ .../classificationnumber/mandatoryProcess.js | 5 +++++ .../classificationnumber/stateProcess.js | 12 ++++++++++ .../valueProcess.js | 4 ++++ .../entityfields/info/valueProcess.js | 22 ++++++++++++++----- .../scoretype/mandatoryProcess.js | 5 +++++ .../ClassificationScoreMultipleEdit_view.aod | 1 + .../ClassificatonAdminEdit_view.aod | 10 --------- .../ClassificatonEdit_view.aod | 10 +++++++++ 11 files changed, 80 insertions(+), 22 deletions(-) create mode 100644 entity/Classification_entity/entityfields/classificationnumber/mandatoryProcess.js create mode 100644 entity/Classification_entity/entityfields/classificationnumber/stateProcess.js create mode 100644 entity/Classification_entity/entityfields/classificationscores/children/classificationnumber_param/valueProcess.js create mode 100644 entity/Classification_entity/entityfields/scoretype/mandatoryProcess.js diff --git a/entity/ClassificationScore_entity/ClassificationScore_entity.aod b/entity/ClassificationScore_entity/ClassificationScore_entity.aod index ad9c0d5870..68f7c83e51 100644 --- a/entity/ClassificationScore_entity/ClassificationScore_entity.aod +++ b/entity/ClassificationScore_entity/ClassificationScore_entity.aod @@ -50,6 +50,12 @@ <children> <entityParameter> <name>Scoretype_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + </entityParameter> + <entityParameter> + <name>ClassificationNumber_param</name> + <expose v="true" /> <triggerRecalculation v="true" /> </entityParameter> </children> @@ -64,6 +70,12 @@ <name>MaxValue</name> <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js</valueProcess> </entityField> + <entityParameter> + <name>ClassificationNumber_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js b/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js index 9da24ed56a..a65e5d8ff9 100644 --- a/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js +++ b/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js @@ -7,14 +7,16 @@ import("Sql_lib"); if (!vars.get("$this.value")) { var scoreType = vars.get("$param.Scoretype_param"); - - result.string(db.cell( + var maxValue = db.cell( SqlCondition.begin() .andPrepare("CLASSIFICATIONTYPE.SCORETYPE", scoreType, "# <> ?") - .and("CLASSIFICATIONTYPE.CLASSIFICATIONNUMBER = " + db.translateStatement(SqlCondition.begin() - .andPrepare("CLASSIFICATIONTYPE.SCORETYPE", scoreType, "# = ?") - .buildSql("(select CLASSIFICATIONNUMBER from CLASSIFICATIONTYPE", "1=2", ")"))) + .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONNUMBER", vars.get("$param.ClassificationNumber_param")) .buildSql("select 100.0 - sum(maxScore) from ( \n\ select max(SCORE) maxScore from CLASSIFICATIONTYPE \n\ - join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE.scoretype = CLASSIFICATIONTYPE.scoretype", "1=2", "group by CLASSIFICATIONTYPE.scoretype) maxScores"))) + join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE.scoretype = CLASSIFICATIONTYPE.scoretype", "1=2", "group by CLASSIFICATIONTYPE.scoretype) maxScores")); + + if (maxValue == "") + maxValue = 100; + + result.string(maxValue); } \ No newline at end of file diff --git a/entity/Classification_entity/Classification_entity.aod b/entity/Classification_entity/Classification_entity.aod index ab375e2887..a0e9d8cf66 100644 --- a/entity/Classification_entity/Classification_entity.aod +++ b/entity/Classification_entity/Classification_entity.aod @@ -70,6 +70,7 @@ <entityField> <name>SCORETYPE</name> <title>Scoretype</title> + <mandatoryProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/mandatoryProcess.js</mandatoryProcess> <groupable v="true" /> <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/displayValueProcess.js</displayValueProcess> @@ -79,7 +80,9 @@ <name>CLASSIFICATIONNUMBER</name> <title>Classification number</title> <contentType>TEXT</contentType> + <mandatoryProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationnumber/mandatoryProcess.js</mandatoryProcess> <groupable v="true" /> + <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationnumber/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationnumber/displayValueProcess.js</displayValueProcess> <onValidation>%aditoprj%/entity/Classification_entity/entityfields/classificationnumber/onValidation.js</onValidation> </entityField> @@ -115,6 +118,10 @@ <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/scoretype_param/valueProcess.js</valueProcess> <triggerRecalculation v="true" /> </entityParameter> + <entityParameter> + <name>ClassificationNumber_param</name> + <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationnumber_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityActionField> diff --git a/entity/Classification_entity/entityfields/classificationnumber/mandatoryProcess.js b/entity/Classification_entity/entityfields/classificationnumber/mandatoryProcess.js new file mode 100644 index 0000000000..52b7a0751a --- /dev/null +++ b/entity/Classification_entity/entityfields/classificationnumber/mandatoryProcess.js @@ -0,0 +1,5 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +result.object(vars.get("$param.IsAdminMode_param") == 1 && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW); \ No newline at end of file diff --git a/entity/Classification_entity/entityfields/classificationnumber/stateProcess.js b/entity/Classification_entity/entityfields/classificationnumber/stateProcess.js new file mode 100644 index 0000000000..626da788b0 --- /dev/null +++ b/entity/Classification_entity/entityfields/classificationnumber/stateProcess.js @@ -0,0 +1,12 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + result.string(neon.COMPONENTSTATE_AUTO); +} +else +{ + result.string(neon.COMPONENTSTATE_DISABLED); +} \ No newline at end of file diff --git a/entity/Classification_entity/entityfields/classificationscores/children/classificationnumber_param/valueProcess.js b/entity/Classification_entity/entityfields/classificationscores/children/classificationnumber_param/valueProcess.js new file mode 100644 index 0000000000..058ce28aa4 --- /dev/null +++ b/entity/Classification_entity/entityfields/classificationscores/children/classificationnumber_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CLASSIFICATIONNUMBER")); \ No newline at end of file diff --git a/entity/Classification_entity/entityfields/info/valueProcess.js b/entity/Classification_entity/entityfields/info/valueProcess.js index 1e5d2960de..b581132ae6 100644 --- a/entity/Classification_entity/entityfields/info/valueProcess.js +++ b/entity/Classification_entity/entityfields/info/valueProcess.js @@ -1,9 +1,19 @@ +import("system.vars"); +import("system.db"); import("system.translate"); import("system.result"); +import("system.text"); +import("Sql_lib"); -var sumTranslated = translate.text("sum"); -result.string(translate.text( -"A: 75 < " + sumTranslated + " <= 100<br>\ -B: 50 < " + sumTranslated + " <= 75<br>\ -C: 25 < " + sumTranslated + " <= 50<br>\ -D: 0 <= " + sumTranslated + " <= 25")); \ No newline at end of file +var data = db.table(SqlCondition.begin() + .andPrepare("CLASSIFICATIONSCORE.SCORETYPE", vars.get("$field.SCORETYPE")) + .buildSql("select TITLE, SCORE from CLASSIFICATIONSCORE", "1=2", "order by SORT")) + +var resultText = ""; + +data.forEach(function(pScore) +{ + resultText += translate.text(pScore[0]) + " = " + text.formatDouble(pScore[1], "#,##0.00") + "<br>" +}); + +result.string(resultText); \ No newline at end of file diff --git a/entity/Classification_entity/entityfields/scoretype/mandatoryProcess.js b/entity/Classification_entity/entityfields/scoretype/mandatoryProcess.js new file mode 100644 index 0000000000..52b7a0751a --- /dev/null +++ b/entity/Classification_entity/entityfields/scoretype/mandatoryProcess.js @@ -0,0 +1,5 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +result.object(vars.get("$param.IsAdminMode_param") == 1 && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW); \ No newline at end of file diff --git a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod index 33b639b8b1..dbd9a0c67b 100644 --- a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod +++ b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod @@ -2,6 +2,7 @@ <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>ClassificationScoreMultipleEdit_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> <layout> <boxLayout> <name>layout</name> diff --git a/neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod b/neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod index 07e0d1cefc..aca103e526 100644 --- a/neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod +++ b/neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod @@ -25,16 +25,6 @@ </entityFieldLink> </fields> </genericViewTemplate> - <genericViewTemplate> - <name>info</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>d19a852f-de03-4cb1-a5d5-4b35349ef480</name> - <entityField>Info</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> <neonViewReference> <name>214fbe22-378d-404e-99f8-f175e037f196</name> <entityField>ClassificationScores</entityField> diff --git a/neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod b/neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod index f78d8182f0..b8689e1335 100644 --- a/neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod +++ b/neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod @@ -21,5 +21,15 @@ </entityFieldLink> </fields> </genericViewTemplate> + <genericViewTemplate> + <name>info</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>2d1fae5e-1b2b-4e29-9bcb-646db9fd9653</name> + <entityField>Info</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> </children> </neonView> -- GitLab