From 6ea5426abddffb4be6d92fe23baa04990570951d Mon Sep 17 00:00:00 2001 From: "d.buechler" <d.buechler@adito.de> Date: Tue, 20 Aug 2019 14:10:51 +0200 Subject: [PATCH] =?UTF-8?q?Erste=20Version=20der=20Gesamt=C3=BCbersicht=20?= =?UTF-8?q?f=C3=BCr=20Personendubletten=20erstellt.=20Diese=20zeigt=20die?= =?UTF-8?q?=20Namen=20der=20Personen=20und=20die=20Anzahl=20der=20DUblette?= =?UTF-8?q?n=20im=20Cluster=20an.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Duplicates_entity/Duplicates_entity.aod | 3 ++ .../recordcontainer/contentProcess.js | 49 ++++++++++++++++++- .../PersonDuplicatesFilter_view.aod | 3 ++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/entity/Duplicates_entity/Duplicates_entity.aod b/entity/Duplicates_entity/Duplicates_entity.aod index 5a57d290642..c3fcb61abfd 100644 --- a/entity/Duplicates_entity/Duplicates_entity.aod +++ b/entity/Duplicates_entity/Duplicates_entity.aod @@ -10,9 +10,12 @@ </entityProvider> <entityField> <name>CLUSTER_DESCRIPTION</name> + <title>Cluster description</title> </entityField> <entityField> <name>COUNT_DUPLICATES_IN_CLUSTER</name> + <title>Count duplicates in cluster</title> + <contentType>NUMBER</contentType> </entityField> <entityField> <name>TARGET_ENTITY</name> diff --git a/entity/Duplicates_entity/recordcontainers/recordcontainer/contentProcess.js b/entity/Duplicates_entity/recordcontainers/recordcontainer/contentProcess.js index adde01802a3..3626ae33b75 100644 --- a/entity/Duplicates_entity/recordcontainers/recordcontainer/contentProcess.js +++ b/entity/Duplicates_entity/recordcontainers/recordcontainer/contentProcess.js @@ -1,12 +1,59 @@ +import("system.db"); import("system.vars"); import("system.result"); +var INDEX_ID = 0; +var INDEX_CLUSTERID = 1; +var INDEX_FIRSTNAME = 2; +var INDEX_LASTNAME = 3; + let targetEntity = vars.get("$param.TargetEntity"); let duplicates = []; if(targetEntity == "Person_entity") { - duplicates.push([123, "Description of person cluster", 4, "Person_entity"]); + //duplicates.push([123, "Description of person cluster", 4, "Person_entity"]); + + let personInfosQuery = "select DUPLICATECLUSTERS.ID, CLUSTERID, FIRSTNAME, LASTNAME" + + " from DUPLICATECLUSTERS" + + " join CONTACT on CONTACT.CONTACTID = DUPLICATEID" + + " join PERSON on PERSON.PERSONID = CONTACT.PERSON_ID" + + " ORDER BY CLUSTERID"; + let personInfos = db.table(personInfosQuery); + + let recordClusterId = ""; + let recordDescription = ""; + let recordDuplicateInClusterCount = 0; + + for (let i = 0; i < personInfos.length; i++) + { + let currentClusterId = personInfos[i][INDEX_CLUSTERID]; + let currentDescription = personInfos[i][INDEX_FIRSTNAME] + " " + personInfos[i][INDEX_LASTNAME]; + + if(i == 0) + { + recordClusterId = currentClusterId; + recordDescription = currentDescription; + recordDuplicateInClusterCount = 1; + continue; + } + + if(recordClusterId == currentClusterId) + { + recordDescription += ", " + currentDescription; + recordDuplicateInClusterCount++; + } + else + { + let currentRecordId = personInfos[i][INDEX_ID]; + duplicates.push([currentRecordId, recordDescription, recordDuplicateInClusterCount, "Person_entity"]); + + recordClusterId = currentClusterId + recordDescription = currentDescription + recordDuplicateInClusterCount = 1; + } + } + } else if(targetEntity == "Organisation_entity") { diff --git a/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod b/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod index be3fc312138..aa244f7a44f 100644 --- a/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod +++ b/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod @@ -11,6 +11,9 @@ <tableViewTemplate> <name>PersonDuplicatesTable</name> <entityField>#ENTITY</entityField> + <isCreatable v="false" /> + <isEditable v="false" /> + <isDeletable v="false" /> <columns> <neonTableColumn> <name>7508e984-6a0b-4126-ab49-452e2b54f76d</name> -- GitLab