From 9ce8032a2ddc5cd0e143f73f6c75eb6ab7fa478e Mon Sep 17 00:00:00 2001 From: "p.neub" <p.neub@adito.de> Date: Wed, 19 May 2021 10:58:45 +0200 Subject: [PATCH] =?UTF-8?q?[Projekt:=20xRM-Sales][TicketNr.:=201080452][Au?= =?UTF-8?q?tomatische=20Wahrscheinlichkeit=20soll=20nicht=20h=C3=B6here=20?= =?UTF-8?q?Werte=20=C3=BCberschreiben]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Salesproject_entity.aod | 4 +++ .../entityfields/phase/onValueChange.js | 25 +++++++++++++++++++ .../recordcontainers/db/onDBUpdate.js | 12 --------- 3 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 entity/Salesproject_entity/entityfields/phase/onValueChange.js diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index 7f800c660a3..f40a10ef01e 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -47,6 +47,10 @@ <mandatory v="true" /> <state>EDITABLE</state> <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/displayValueProcess.js</displayValueProcess> + <onValueChange>%aditoprj%/entity/Salesproject_entity/entityfields/phase/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + </onValueChangeTypes> </entityField> <entityField> <name>PROJECTCODE</name> diff --git a/entity/Salesproject_entity/entityfields/phase/onValueChange.js b/entity/Salesproject_entity/entityfields/phase/onValueChange.js new file mode 100644 index 00000000000..4fbd8be4825 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/phase/onValueChange.js @@ -0,0 +1,25 @@ +import("Sql_lib"); +import("system.neon"); +import("system.vars"); + +var currPobab = parseInt( + newSelect("SALESPROJECT.PROBABILITY") + .from("SALESPROJECT") + .where("SALESPROJECT.SALESPROJECTID", vars.get("$field.SALESPROJECTID")) + .cell() +); +var autoProbab = parseInt( + newSelect("SALESPROJECTPHASEDEFINITION.AUTOPROBABILITY") + .from("SALESPROJECTPHASEDEFINITION") + .where("SALESPROJECTPHASEDEFINITION.PHASE", vars.get("$this.value")) + .cell() +); + +if(isNaN(autoProbab) || autoProbab < currPobab) +{ + neon.setFieldValue("$field.PROBABILITY", currPobab); +} +else +{ + neon.setFieldValue("$field.PROBABILITY", autoProbab); +} diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js index 29d8ada35d3..c9dfa3fa5c3 100644 --- a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js @@ -22,18 +22,6 @@ vars.get("$local.changed").forEach(function(fieldName) { switch (fieldName) { case "SALESPROJECT.PHASE": - typeValue = "SalesprojectPhase"; - var autoProbab = newSelect("SALESPROJECTPHASEDEFINITION.AUTOPROBABILITY") - .from("SALESPROJECTPHASEDEFINITION") - .where("SALESPROJECTPHASEDEFINITION.PHASE", vars.get("$field.PHASE")).cell(); - if(!isNaN(parseInt(autoProbab))) - { - newWhere("SALESPROJECT.SALESPROJECTID", vars.get("$field.SALESPROJECTID")) - .and("SALESPROJECT.PROBABILITY", autoProbab, SqlBuilder.LESS()) - .updateFields({ - "PROBABILITY": autoProbab - }, "SALESPROJECT"); - } break; case "SALESPROJECT.STATUS": // Milestone -- GitLab