diff --git a/entity/DSGVO_entity/DSGVO_entity.aod b/entity/DSGVO_entity/DSGVO_entity.aod index 69832684f5e24cc9ac22fa7c2f90c08e7f6c47fd..3c85729bb6977ce5b36af67e69237331830ea3a6 100644 --- a/entity/DSGVO_entity/DSGVO_entity.aod +++ b/entity/DSGVO_entity/DSGVO_entity.aod @@ -20,6 +20,7 @@ </entityProvider> <entityField> <name>DSGVOID</name> + <mandatory v="true" /> <valueProcess>%aditoprj%/entity/DSGVO_entity/entityfields/dsgvoid/valueProcess.js</valueProcess> </entityField> <entityField> @@ -197,98 +198,9 @@ </entityConsumer> </entityFields> <recordContainers> - <dbRecordContainer> - <name>db</name> - <alias>Data_alias</alias> - <conditionProcess>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js</conditionProcess> - <linkInformation> - <linkInformation> - <name>1c934bf6-b4b4-47f3-aa22-7886e45fb0a3</name> - <tableName>DSGVO</tableName> - <primaryKey>DSGVOID</primaryKey> - <isUIDTable v="true" /> - <readonly v="false" /> - </linkInformation> - <linkInformation> - <name>98b9e3d9-80b7-49da-96c1-b9b5b3ade1c7</name> - <tableName>CONTACT</tableName> - <primaryKey>CONTACTID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - </linkInformation> - <recordFieldMappings> - <dbRecordFieldMapping> - <name>CONTACT_ID.value</name> - <recordfield>DSGVO.CONTACT_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>DATE_EDIT.value</name> - <recordfield>DSGVO.DATE_EDIT</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>DATE_NEW.value</name> - <recordfield>DSGVO.DATE_NEW</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>DSGVOID.value</name> - <recordfield>DSGVO.DSGVOID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ROW_ID.value</name> - <recordfield>DSGVO.ROW_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>TABLENAME.value</name> - <recordfield>DSGVO.TABLENAME</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>USER_EDIT.value</name> - <recordfield>DSGVO.USER_EDIT</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>USER_NEW.value</name> - <recordfield>DSGVO.USER_NEW</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>VALID_TO.value</name> - <recordfield>DSGVO.VALID_TO</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>TABLENAME.displayValue</name> - <expression>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/tablename.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>STATUORITYSOURCE.displayValue</name> - <expression>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/statuoritysource.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>STATUORITYSOURCE.value</name> - <recordfield>DSGVO.STATUORITYSOURCE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>PURPOSE.displayValue</name> - <expression>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/purpose.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>PURPOSE.value</name> - <recordfield>DSGVO.PURPOSE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>TYPE.value</name> - <recordfield>DSGVO.TYPE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>TYPE.displayValue</name> - <expression>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - </recordFieldMappings> - </dbRecordContainer> <jDitoRecordContainer> <name>jdito</name> <jDitoRecordAlias>Data_alias</jDitoRecordAlias> - <isPageable v="true" /> - <isFilterable v="true" /> <contentProcess>%aditoprj%/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <recordFields> <element>DSGVOID.value</element> diff --git a/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js b/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js deleted file mode 100644 index e35a5d6c723e585b9a8ac53d911a6321f4862bcf..0000000000000000000000000000000000000000 --- a/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js +++ /dev/null @@ -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/onDBInsert.js b/entity/DSGVO_entity/recordcontainers/db/onDBInsert.js deleted file mode 100644 index 09754cf5860927f9a6380fa0a8dad7fa1c185b87..0000000000000000000000000000000000000000 --- a/entity/DSGVO_entity/recordcontainers/db/onDBInsert.js +++ /dev/null @@ -1,43 +0,0 @@ -import("KeywordRegistry_basic"); -import("Keyword_lib"); -import("system.db"); -import("system.neon"); -import("system.vars"); -import("system.util"); - - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - var cols = ["USER_NEW" , "USER_EDIT" , "DSGVOID" , "ROW_ID" , "DATE_NEW" , - "TABLENAME" , "DATE_EDIT" , "RIGHT" , "VALID_TO" , "CONTACT_ID" , "USE"]; - - var vals = [vars.get("$sys.user"), null, util.getNewUUID(), - vars.get("$field.ROW_ID"), vars.get("$sys.date"), vars.get("$field.TABLENAME"), - null, KeywordUtils. vars.get("$field.RIGHT").valueOf(), vars.get("$field.VALID_TO"), - vars.get("$field.CONTACT_ID"), vars.get("$field.USE").valueOf()]; - // KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.DSGVOUse(), "DSGVO.USE"); - db.insertData("DSGVO", cols, null, vals); -} - // TODO Eintrag in DSGVO Tabelle - - /* - * - var InputMapping = { - "OFFERITEM": { - condition: "OFFER_ID = '" + pSourceOfferId + "' order by ITEMSORT", - ValueMapping: { - "OFFER_ID" : pTargetOfferId - } - } - }; - CopyModuleUtils.copyModule(InputMapping); - - var oiUtils = new OfferItemUtils(pTargetOfferId); - - //update order price - cols = ["NET", "VAT"]; - var vals = oiUtils.getNetAndVat(); - - db.updateData("OFFER", cols, null, vals, SqlCondition.equals("OFFER.OFFERID", pTargetOfferId, "1 = 2")); - * - */ \ No newline at end of file diff --git a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/purpose.displayvalue/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/purpose.displayvalue/expression.js deleted file mode 100644 index 3fe2bdf37b0116248b0e8390fc4cb1c2cefde031..0000000000000000000000000000000000000000 --- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/purpose.displayvalue/expression.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.purpose(), "DSGVO.PURPOSE"); -result.string(sql); \ No newline at end of file diff --git a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/statuoritysource.displayvalue/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/statuoritysource.displayvalue/expression.js deleted file mode 100644 index d664589c4e110da1c07e70a22f0d1f5bcf1db990..0000000000000000000000000000000000000000 --- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/statuoritysource.displayvalue/expression.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.statuoritysource(), "DSGVO.STATUORITYSOURCE"); -result.string(sql); \ No newline at end of file diff --git a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/tablename.displayvalue/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/tablename.displayvalue/expression.js deleted file mode 100644 index 36108b9a994926cbed735ac09f0af8ae3e7b7064..0000000000000000000000000000000000000000 --- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/tablename.displayvalue/expression.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.DSGVOTablename(), "DSGVO.TABLENAME"); -result.string(sql); \ No newline at end of file diff --git a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js deleted file mode 100644 index 1e77eef5d3ed836b6160feb15cd5c8fb4007237a..0000000000000000000000000000000000000000 --- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.DSGVOType(), "DSGVO.TYPE"); -result.string(sql); \ 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 79113fb7107a21709d19fe0f23fbdd4c79064c0b..96b51a07a824622b05d40fde42184c9d8a5cf310 100644 --- a/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("system.vars"); import("system.logging"); import("KeywordRegistry_basic"); import("Keyword_lib"); @@ -8,16 +9,21 @@ import("Address_lib"); var recordCond = SqlCondition.begin(); -recordCond.andPrepare("$param.currentPerson_param", "$field.CONTACT_ID"); +if (vars.exists("$param.currentPerson_param") && vars.get("$param.currentPerson_param")) + recordCond.andPrepareVars("DSGVO.CONTACT_ID", "$param.currentPerson_param"); -var dataQuery = recordCond.buildSql("select DSGVOID, ROW_ID, TABLENAME, TYPE, STATUORITYSOURCE, PURPOSE, VALID_TO, CONTACT_ID, DATE_NEW, DATE_EDIT, USER_NEW, USER_EDIT from DSGVO ", "1 = 1"); +if (vars.exists("$local.idvalues") && vars.get("$local.idvalues") && vars.get("$local.idvalues").length > 0) + recordCond.andIn("DSGVO.DSGVOID", vars.get("$local.idvalues")); -logging.log(dataQuery); -var res = _groupData(dataQuery); +var data = db.table(recordCond.buildSql("select DSGVOID, ROW_ID, TABLENAME, TYPE, STATUORITYSOURCE, PURPOSE, VALID_TO, CONTACT_ID, DATE_NEW, DATE_EDIT, USER_NEW, USER_EDIT from DSGVO ", "1 = 2")); + +var res = _groupData(data); +//logging.log(JSON.stringify(res, null, "\t")); result.object(res); -// RESULT muss Form haben: DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, TYPE, VALUE, VALID_TO, CONTACT_ID +// RESULT muss Form haben: [[DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, TYPE, VALUE, VALID_TO, CONTACT_ID] +// ,[DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, TYPE, VALUE, VALID_TO, CONTACT_ID]] function _groupData(pData) @@ -28,23 +34,35 @@ function _groupData(pData) var res = []; var tableContainer = $KeywordRegistry.DSGVOTablename(); - for (var i = 0; i < dataQuery.length; i++) + for (var i = 0; i < pData.length; i++) { var tableViewVal = KeywordUtils.getViewValue(tableContainer, pData[i][2]); var innerCond = SqlCondition.begin(); switch (tableViewVal) { case "Adressen": - logging.log("Address"); - var addrData = innerCond.andPrepare(pData[i][1], "ADDRESSID") // RowId - .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, " - + "BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, STATE, ZIP, ADDR_TYPE " - + "from ADDRESS", "1 = 1"); + var addrData = db.table(innerCond.andPrepare("ADDRESS.ADDRESSID", pData[i][1]) // RowId + .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, " + + "BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, CONTACT_ID, STATE, ZIP, ADDR_TYPE " + + "from ADDRESS", "1 = 1")); + // nur Daten: ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, STATE, ZIP + // ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, " + // + "BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, CONTACT_ID, STATE, ZIP, ADDR_TYPE " + //logging.log(JSON.stringify(addrData, null, "\t")); if(addrData.length == 1) { - logging.log("one value"); - // TODO welche Werte brauch ich? s.o. - var addrVal = (_formatAddrData(addrData[0])) + // TODO echte Addresse + // AddrObject(pContactId, pPerson, pAddressId) + // var addrVal = AddrObject(pData[i][7], true); // Person pData[i][7] addr Contact_ID: addrData[9] + var addrVal = "Tetsstraße 345, FR-2134 Paris"; /* + addrData.forEach(function(entry) + { + logging.log(entry); + addrVal += entry + " "; + });*/ + + logging.log(addrVal); + //var addrVal = (_formatAddrData(addrData)) //var addrType = KeywordUtils.getViewValue($KeywordRegistry.addressType(), pData[i][3]); //if(addrData[i][2]) // addrType = addrType + " | " + addrData[i][2]; @@ -61,10 +79,10 @@ function _groupData(pData) ["DATE_EDIT", pData[i][9]], ["USER_NEW", pData[i][10]], ["USER_EDIT", pData[i][11]]);*/ - res.push(pData[i][0], + res.push([pData[i][0], pData[i][1], pData[i][2], - addrData[11], + pData[i][3], // addrData[12], addrVal, pData[i][4], pData[i][5], @@ -73,7 +91,7 @@ function _groupData(pData) pData[i][8], pData[i][9], pData[i][10], - pData[i][11]); + pData[i][11]]); } // CONTACT_ID, DATE_NEW, DATE_EDIT, USER_NEW, USER_EDIT break; case "Kommunikationsdaten": @@ -96,10 +114,10 @@ function _groupData(pData) ["DATE_EDIT", pData[i][9]], ["USER_NEW", pData[i][10]], ["USER_EDIT", pData[i][11]]);*/ - res.push(pData[i][0], + res.push([pData[i][0], pData[i][1], pData[i][2], - comm[2], + pData[i][3], //comm[2], comm[1], pData[i][4], pData[i][5], @@ -108,7 +126,7 @@ function _groupData(pData) pData[i][8], pData[i][9], pData[i][10], - pData[i][11]); + pData[i][11]]); } break; case "Attribute": @@ -139,7 +157,7 @@ function _groupData(pData) ["DATE_EDIT", pData[i][9]], ["USER_NEW", pData[i][10]], ["USER_EDIT", pData[i][11]]);*/ - res.push(pData[i][0], + res.push([pData[i][0], pData[i][1], pData[i][2], pData[i][3], @@ -151,7 +169,7 @@ function _groupData(pData) pData[i][8], pData[i][9], pData[i][10], - pData[i][11]); + pData[i][11]]); break; case "sonstige Persönliche Daten": var otherPersData = pers[9] + pers[1] + ", " + pers[5]; @@ -169,7 +187,7 @@ function _groupData(pData) ["DATE_EDIT", pData[i][9]], ["USER_NEW", pData[i][10]], ["USER_EDIT", pData[i][11]]);*/ - res.push(pData[i][0], + res.push([pData[i][0], pData[i][1], pData[i][2], pData[i][3], @@ -181,7 +199,7 @@ function _groupData(pData) pData[i][8], pData[i][9], pData[i][10], - pData[i][11]); + pData[i][11]]); break; default: continue; diff --git a/entity/Person_entity/entityfields/dsgvoentries/stateProcess.js b/entity/Person_entity/entityfields/dsgvoentries/stateProcess.js index 447260b2aa142c86c0415565f28d0251d67556e7..1d085dde40b08d83861d4017be6a66f378bc56ee 100644 --- a/entity/Person_entity/entityfields/dsgvoentries/stateProcess.js +++ b/entity/Person_entity/entityfields/dsgvoentries/stateProcess.js @@ -2,7 +2,7 @@ import("system.result"); import("system.project"); import("system.neon"); -var isActive = project.getPreferenceValue("custom.dsgvo.active"); +var isActive = JSON.parse(project.getPreferenceValue("custom.dsgvo.active", "true")); if(isActive) { diff --git a/neonView/DSGVOEdit_view/DSGVOEdit_view.aod b/neonView/DSGVOEdit_view/DSGVOEdit_view.aod index 7e996ce2ed28dd2c6bdff50bb0dc32269b6c6c06..275d5e58103aef976deb78583c0e172960b116f9 100644 --- a/neonView/DSGVOEdit_view/DSGVOEdit_view.aod +++ b/neonView/DSGVOEdit_view/DSGVOEdit_view.aod @@ -26,10 +26,6 @@ <name>732a0a8a-4db3-4ff9-b4a2-c7ab6f2cf144</name> <entityField>VALUE</entityField> </entityFieldLink> - <entityFieldLink> - <name>2d624b85-9dbc-4ab1-9682-9c4d50e4df5d</name> - <entityField>ROW_ID</entityField> - </entityFieldLink> <entityFieldLink> <name>191e8712-abf8-42d8-89d5-649dd0164f56</name> <entityField>STATUORITYSOURCE</entityField> diff --git a/neonView/DSGVOFilter_view/DSGVOFilter_view.aod b/neonView/DSGVOFilter_view/DSGVOFilter_view.aod index 1ffe887a559c126682e566ecd4e8980708cc632b..3afd005938743c7356906c6dbea7d40555b8f7b5 100644 --- a/neonView/DSGVOFilter_view/DSGVOFilter_view.aod +++ b/neonView/DSGVOFilter_view/DSGVOFilter_view.aod @@ -15,9 +15,20 @@ <favoriteActionGroup2>Reports</favoriteActionGroup2> <entityField>#ENTITY</entityField> <columns> + <neonTableColumn> + <name>eb95fb43-28ed-41d0-a9f9-4147697f10e8</name> + <entityField>ROW_ID</entityField> + <width v="10" /> + <expandRatio v="10" /> + </neonTableColumn> + <neonTableColumn> + <name>a09fc7e3-15d9-4739-84df-71f511f4b758</name> + <entityField>TYPE</entityField> + </neonTableColumn> <neonTableColumn> <name>1d329067-0959-4150-aaa4-ea7887a31ec2</name> <entityField>VALUE</entityField> + <width v="75" /> </neonTableColumn> <neonTableColumn> <name>ad9e414f-4f0f-4efb-887a-468e7a9fefb5</name> diff --git a/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod b/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod index 69a0f67d7aa0103411a1b6b1c773ba8e8fc91785..e676ba48e71f0a720247af7f4ebd48fa14226832 100644 --- a/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod +++ b/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod @@ -19,6 +19,10 @@ <width v="10" /> <expandRatio v="15" /> </neonTableColumn> + <neonTableColumn> + <name>53d3702d-faa8-4b06-a50b-0e23e046ab9b</name> + <entityField>TYPE</entityField> + </neonTableColumn> <neonTableColumn> <name>005e5b03-a3d8-478d-9a7c-7b68a314ffc1</name> <entityField>VALUE</entityField> @@ -26,14 +30,14 @@ <expandRatio v="15" /> </neonTableColumn> <neonTableColumn> - <name>c3b92a4c-15c4-4276-a6da-b5d88d495c17</name> - <entityField>PURPOSE</entityField> + <name>4341e1c0-f15b-477f-a893-b88cbf03fc8f</name> + <entityField>STATUORITYSOURCE</entityField> <width v="10" /> <expandRatio v="15" /> </neonTableColumn> <neonTableColumn> - <name>4341e1c0-f15b-477f-a893-b88cbf03fc8f</name> - <entityField>STATUORITYSOURCE</entityField> + <name>c3b92a4c-15c4-4276-a6da-b5d88d495c17</name> + <entityField>PURPOSE</entityField> <width v="10" /> <expandRatio v="15" /> </neonTableColumn>