From 44bac3084669a12c0a3b64617759f6ce3f0c3b15 Mon Sep 17 00:00:00 2001 From: dsg03695 <dsg03695@host.docker.internal> Date: Thu, 22 Oct 2020 13:55:36 +0200 Subject: [PATCH] Ticket #1066033: district responsible person can not be put manually to 'in reviewed'. In addition the district adviser can only be changed if no connection is found to district contact. --- .../DistrictResponsible_entity.aod | 5 +++++ .../valueProcess.js | 10 ++++++++++ .../employee_contact_id/stateProcess.js | 20 +++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js create mode 100644 entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js diff --git a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod index db22d05fbd..245c9ebe4d 100644 --- a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod +++ b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod @@ -22,6 +22,7 @@ <linkedContext>Person</linkedContext> <mandatory v="true" /> <selectionMode>SINGLE</selectionMode> + <stateProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/employee_contact_id/displayValueProcess.js</displayValueProcess> </entityField> <entityField> @@ -210,6 +211,10 @@ <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviserstates/children/containername_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> + <entityParameter> + <name>ExcludedKeyIdsSubquery_param</name> + <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityField> diff --git a/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js new file mode 100644 index 0000000000..15b73f9705 --- /dev/null +++ b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("KeywordRegistry_basic"); +import("Sql_lib"); + +var cond = newSelect("AB_KEYWORD_ENTRY.KEYID") +.from("AB_KEYWORD_ENTRY") +.where("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.contactStatus()) +.and("AB_KEYWORD_ENTRY.KEYID", $KeywordRegistry.contactStatus$inReview(), SqlBuilder.LIKE()); + +result.string(cond.toString()); \ No newline at end of file diff --git a/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js b/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js new file mode 100644 index 0000000000..b3376f73e3 --- /dev/null +++ b/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js @@ -0,0 +1,20 @@ +import("system.neon"); +import("system.vars"); +import("system.result"); +import("Sql_lib"); +import("system.db"); + +var cond = newWhere(); + +var test = newSelect("COUNT(*)") +.from("DISTRICTCONTACT") +.join("DISTRICTRESPONSIBLE", "DISTRICTCONTACT.ADVISER_CONTACT_ID = DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID") +.where("DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID", vars.get("$field.EMPLOYEE_CONTACT_ID")) +.arrayColumn()[0]; + +if(test.toString() == 0){ + result.string(neon.COMPONENTSTATE_EDITABLE); +} +else{ + result.string(neon.COMPONENTSTATE_READONLY); +} \ No newline at end of file -- GitLab