From 3be997fa95055a483388d3e64a0f65559048f23f Mon Sep 17 00:00:00 2001 From: Maria Hofmann <m.hofmann@adito.de> Date: Wed, 26 Jun 2019 11:46:47 +0200 Subject: [PATCH] Field "value" --- aliasDefinition/Data_alias/Data_alias.aod | 160 ++++++++++++++++++ entity/DSGVO_entity/DSGVO_entity.aod | 7 +- .../entityfields/value/dropDownProcess.js | 10 -- .../entityfields/value/valueProcess.js | 0 .../recordcontainers/db/conditionProcess.js | 8 - .../value.value/expression.js | 4 +- .../recordcontainers/jdito/contentProcess.js | 78 ++++++--- 7 files changed, 216 insertions(+), 51 deletions(-) delete mode 100644 entity/DSGVO_entity/entityfields/value/dropDownProcess.js delete mode 100644 entity/DSGVO_entity/entityfields/value/valueProcess.js diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index 8ae24f0991d..48649f7db08 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -10201,6 +10201,166 @@ </entityFieldDb> </entityFields> </entityDb> + <entityDb> + <name>AB_UNLINKEDMAIL</name> + <dbName></dbName> + <idColumn>AB_UNLINKEDMAILID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>MAIL</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SENDER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1000" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SUBJECT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="200" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>AB_UNLINKEDMAILID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECIPIENTS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="4000" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SENTDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> </entities> </entityGroup> </aliasDefDb> diff --git a/entity/DSGVO_entity/DSGVO_entity.aod b/entity/DSGVO_entity/DSGVO_entity.aod index 0fb6a686862..8bf104a5a93 100644 --- a/entity/DSGVO_entity/DSGVO_entity.aod +++ b/entity/DSGVO_entity/DSGVO_entity.aod @@ -178,8 +178,6 @@ <name>VALUE</name> <title>Value</title> <mandatory v="true" /> - <dropDownProcess>%aditoprj%/entity/DSGVO_entity/entityfields/value/dropDownProcess.js</dropDownProcess> - <valueProcess>%aditoprj%/entity/DSGVO_entity/entityfields/value/valueProcess.js</valueProcess> </entityField> <entityConsumer> <name>KeywordTablename</name> @@ -297,12 +295,9 @@ <recordFields> <element>DSGVOID.value</element> <element>ROW_ID.value</element> - <element>STATUORITYSOURCE.value</element> - <element>PURPOSE.value</element> <element>TABLENAME.value</element> <element>TYPE.value</element> - <element>VALID_TO.value</element> - <element>CONTACT_ID.value</element> + <element>VALUE.value</element> </recordFields> </jDitoRecordContainer> </recordContainers> diff --git a/entity/DSGVO_entity/entityfields/value/dropDownProcess.js b/entity/DSGVO_entity/entityfields/value/dropDownProcess.js deleted file mode 100644 index c8a14bde82f..00000000000 --- a/entity/DSGVO_entity/entityfields/value/dropDownProcess.js +++ /dev/null @@ -1,10 +0,0 @@ -import("system.result"); -import("system.vars"); -import("Sql_lib"); -import("system.db"); -import("DSGVO_lib"); - - -var data = getDSGVOTable(vars.get("$param.currentPerson_param"), vars.get("$field.TABLENAME")); - -result.object(data); \ No newline at end of file diff --git a/entity/DSGVO_entity/entityfields/value/valueProcess.js b/entity/DSGVO_entity/entityfields/value/valueProcess.js deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js b/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js index e35a5d6c723..e69de29bb2d 100644 --- a/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js +++ b/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js @@ -1,8 +0,0 @@ -import("system.db"); -import("system.result"); -import("Sql_lib"); - -var cond = new SqlCondition(); -cond.andPrepareVars("DSGVO.CONTACT_ID", "$param.currentPerson_param"); -/* TODO: use a preparedCondition when available*/ -result.string(db.translateCondition(cond.build("1 = 1"))); \ No newline at end of file diff --git a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js index d047656e738..13e181d1db9 100644 --- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js +++ b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js @@ -1,6 +1,6 @@ -import("system.vars"); +/*import("system.vars"); import("system.result"); import("DSGVO_lib"); -result.object(getDSGVOTable(vars.get("$param.currentPerson_param"), vars.get("$field.TABLENAME"))); \ No newline at end of file +result.object(getDSGVOTable(vars.get("$param.currentPerson_param"), vars.get("$field.TABLENAME")));*/ \ No newline at end of file diff --git a/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js b/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js index 66df3fc69b5..8630527704c 100644 --- a/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js @@ -9,9 +9,11 @@ var recordCond = SqlCondition.begin(); recordCond.andPrepare("$param.currentPerson_param", "$field.CONTACT_ID"); -var dataQuery = recordCond.buildSql("select DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, TYPE, VALID_TO, CONTACT_ID " + - "from DSGVO ", "1 = 1"); //, "order by DATE_NEW desc, USER_NEW asc"); +//var dataQuery = recordCond.buildSql("select DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, TYPE, VALID_TO, CONTACT_ID " + +// "from DSGVO ", "1 = 1"); //, "order by DATE_NEW desc, USER_NEW asc"); +var dataQuery = recordCond.buildSql("select DSGVOID, ROW_ID, TABLENAME, TYPE from DSGVO ", "1 = 1"); +var res = _groupData(dataQuery); // res.push([dsgvoId, row, statSource, purpose, tablename, type, validTo, contactId]); // ---->>>> VALUE von RowId @@ -28,39 +30,65 @@ function _groupData(pData) var res = []; var tableContainer = $KeywordRegistry.DSGVOTablename(); + for (var i = 0; i < dataQuery.length; i++) { + var tableViewVal = KeywordUtils.getViewValue(tableContainer, pData[i][2]); var innerCond = SqlCondition.begin(); - if(KeywordUtils.getViewValue(tableContainer, pData[i][4]) == "Adressen") + switch (tableViewVal) { - var addrData = innerCond.andPrepare(pData[i][1], "ADDRESSID") - //.andPrepare(pData[i][7], "CONTACT_ID") - .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, " + case "Adressen": + var addrData = innerCond.andPrepare(pData[i][1], "ADDRESSID") // RowId + .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, " + "BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, STATE, ZIP " + "from ADDRESS", "1 = 1"); - if(addrData.length == 1) + if(addrData.length == 1) { // TODO welche Werte brauch ich? s.o. - var value = (_formatAddrData(addrData[0])) - res.push(pData[i][0], pData[i][1], pData[i][2], pData[i][3], pData[i][4], pData[i][5], value, pData[i][6], pData[i][7]) + var addrVal = (_formatAddrData(addrData[0])) + res.push(["DSGVOID", pData[i][0]], ["ROW_ID", pData[i][1]], ["TABLENAME", pData[i][2]], ["TYPE", pData[i][3]], ["VALUE", addrVal]); + //res.push(pData[i][0], pData[i][1], pData[i][2], pData[i][3], pData[i][4], pData[i][5], value, pData[i][6], pData[i][7]) + }else + continue; + break; + case "Kommunikationsdaten": + var comm = db.table(SqlCondition.begin() + .andPrepare("CONTACT.PERSON_ID", pPerson) + .buildSql("select COMMUNICATIONID, ADDR, MEDIUM_ID from COMMUNICATION join CONTACT on COMMUNICATION.CONTACT_ID = CONTACTID", "1 = 1")); + if(comm.length == 1) + { + res.push(["DSGVOID", pData[i][0]], ["ROW_ID", pData[i][1]], ["TABLENAME", pData[i][2]], ["TYPE", pData[i][3]], ["VALUE", comm[1]]); + } + break; + case "Attribute": + break; + case "Persönliche Daten": + var pers = db.table(SqlCondition.begin() + .andPrepare("PERSON.PERSONID", pPerson) // 4 8 + .buildSql("select PERSONID, DATEOFBIRTH, FIRSTNAME, MIDDLENAME, LASTNAME, GENDER, SALUTATION, TITLE, TITLESUFFIX, PICTURE from PERSON", "1 = 1")); + if(pers.length == 1) + { + var typeContainer = $KeywordRegistry.DSGVOType(); + var typeViewVal = KeywordUtils.getViewValue(typeContainer, pData[i][3]); + switch (typeViewVal) + { + case "Namen": + var names = pers[6] + " " + pers[7] + " " + pers[8] + " " + pers[2] + " " + pers[3] + " " + pers[4]; + res.push(["DSGVOID", pData[i][0]], ["ROW_ID", pData[i][1]], ["TABLENAME", pData[i][2]], ["TYPE", pData[i][3]], ["VALUE", names]); + break; + case "sonstige Persönliche Daten": + var otherPersData = pers[9] + pers[1] + ", " + pers[5]; + res.push(["DSGVOID", pData[i][0]], ["ROW_ID", pData[i][1]], ["TABLENAME", pData[i][2]], ["TYPE", pData[i][3]], ["VALUE", otherPersData]); + break; + default: + continue; + } } - else + break; + default: continue; - // return []; - } - else if(KeywordUtils.getViewValue(container, table) == "Kommunikationsdaten") - { - - } - else if(KeywordUtils.getViewValue(container, table) == "Attribute") - { - - } - else if(KeywordUtils.getViewValue(container, table) == "Persönliche Daten") - { - } - return res; } -} + return res; +} \ No newline at end of file -- GitLab