From d0b7b7da9245e0c202b7135d7d7d4d612d94a4c7 Mon Sep 17 00:00:00 2001
From: Maria Hofmann <m.hofmann@adito.de>
Date: Wed, 26 Jun 2019 10:30:45 +0200
Subject: [PATCH] new keyword, new column in DSGVO, Report

---
 .../basic/2019.1.4/DSGVO/create_DSGVO.xml     |   5 +-
 .../2019.1.4/DSGVO/init_dsgvoType_keyword.xml |  32 ++
 ...ert_DSGVO.xml => insert_example_DSGVO.xml} |   0
 .../2019.1.4/DSGVO/update_comm_medium.xml     |  13 +
 .../Data_alias/basic/2019.1.4/changelog.xml   |   4 +-
 aliasDefinition/Data_alias/Data_alias.aod     |  14 +
 entity/DSGVO_entity/DSGVO_entity.aod          |  38 +-
 .../tablename/displayValueProcess.js          |   6 -
 .../entityfields/type/dropDownProcess.js      |   5 +
 .../entityfields/value/dropDownProcess.js     |   4 +-
 .../medium.value/expression.js                |   5 -
 .../type.displayvalue/expression.js           |   6 +
 .../value.value/expression.js                 |   5 +-
 .../recordcontainers/jdito/contentProcess.js  |  66 +++
 neonView/DSGVOEdit_view/DSGVOEdit_view.aod    |  12 +-
 .../DSGVOFilter_view/DSGVOFilter_view.aod     |  10 +-
 process/DSGVO_lib/process.js                  | 418 +++++++++++-------
 process/KeywordRegistry_basic/process.js      |   1 +
 .../DSGVO_Disclosure_Report.aod}              |   5 +-
 .../reportData.jasper                         | Bin
 .../reportData.jrxml                          |   0
 21 files changed, 465 insertions(+), 184 deletions(-)
 create mode 100644 .liquibase/Data_alias/basic/2019.1.4/DSGVO/init_dsgvoType_keyword.xml
 rename .liquibase/Data_alias/basic/2019.1.4/DSGVO/{insert_DSGVO.xml => insert_example_DSGVO.xml} (100%)
 create mode 100644 .liquibase/Data_alias/basic/2019.1.4/DSGVO/update_comm_medium.xml
 delete mode 100644 entity/DSGVO_entity/entityfields/tablename/displayValueProcess.js
 create mode 100644 entity/DSGVO_entity/entityfields/type/dropDownProcess.js
 delete mode 100644 entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/medium.value/expression.js
 create mode 100644 entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
 create mode 100644 entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js
 rename report/{DSGVO_Auskunft_Report/DSGVO_Auskunft_Report.aod => DSGVO_Disclosure_Report/DSGVO_Disclosure_Report.aod} (75%)
 rename report/{DSGVO_Auskunft_Report => DSGVO_Disclosure_Report}/reportData.jasper (100%)
 rename report/{DSGVO_Auskunft_Report => DSGVO_Disclosure_Report}/reportData.jrxml (100%)

diff --git a/.liquibase/Data_alias/basic/2019.1.4/DSGVO/create_DSGVO.xml b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/create_DSGVO.xml
index 47f283a7a2..ae929f253f 100644
--- a/.liquibase/Data_alias/basic/2019.1.4/DSGVO/create_DSGVO.xml
+++ b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/create_DSGVO.xml
@@ -14,13 +14,14 @@
             </column>
             <column name="USER_EDIT" type="NVARCHAR(50)" />
             <column name="DATE_EDIT" type="TIMESTAMP" />
-                        
+            
+            <column name="TABLENAME" type="CHAR(36)" />
+            <column name="TYPE" type="CHAR(36)"/>
             <column name="ROW_ID" type="CHAR(36)" />
             
             <column name="STATUORITYSOURCE" type="CHAR(36)" />
             <column name="PURPOSE" type="CHAR(36)" />
             
-            <column name="TABLENAME" type="CHAR(36)" />
             <column name="VALID_TO" type="TIMESTAMP" />
             
             <column name="CONTACT_ID" type="CHAR(36)">
diff --git a/.liquibase/Data_alias/basic/2019.1.4/DSGVO/init_dsgvoType_keyword.xml b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/init_dsgvoType_keyword.xml
new file mode 100644
index 0000000000..7b6520cb3f
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/init_dsgvoType_keyword.xml
@@ -0,0 +1,32 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="m.hofmann" id="e6b32d7d-298c-44a3-901f-88baa77cb6c3">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="e72a7d5b-7608-4c87-a977-d4a8994e45b4"/>
+            <column name="KEYID" value="dcc34a11-c86b-4acd-9987-e88c98b5b4c5"/>
+            <column name="TITLE" value="Namen"/>
+            <column name="CONTAINER" value="DSGVOType"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="c38a3169-63f8-41f7-88a7-3358b2519a4a"/>
+            <column name="KEYID" value="c626726a-a696-4926-9b0f-c320c410463e"/>
+            <column name="TITLE" value="sonstige Persönliche Daten"/>
+            <column name="CONTAINER" value="DSGVOType"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="ffb1a706-348c-42cd-8b13-6f5e74181ba3"/>
+            <column name="KEYID" value="34c2ddb4-97ce-4683-a067-89a38643ecae"/>
+            <column name="TITLE" value="Eigenschaften"/>
+            <column name="CONTAINER" value="DSGVOType"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.1.4/DSGVO/insert_DSGVO.xml b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/insert_example_DSGVO.xml
similarity index 100%
rename from .liquibase/Data_alias/basic/2019.1.4/DSGVO/insert_DSGVO.xml
rename to .liquibase/Data_alias/basic/2019.1.4/DSGVO/insert_example_DSGVO.xml
diff --git a/.liquibase/Data_alias/basic/2019.1.4/DSGVO/update_comm_medium.xml b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/update_comm_medium.xml
new file mode 100644
index 0000000000..b6faa137bb
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.1.4/DSGVO/update_comm_medium.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="m.hofmann" id="e6b32d7d-298c-44a3-901f-88baa77cb6c3">
+        <update tableName="COMMUNICATION">
+            <column name="MEDIUM_ID" value="d08956b8-369e-4b65-88fa-1c37b3368ae3"></column>
+            <where>MEDIUM_ID = ?</where>
+            <whereParams>
+                <param value="d9434c95-9abb-4661-a4c0-65d8a9eb676e"></param>
+            </whereParams>
+        </update>
+    </changeSet>
+</databaseChangeLog>
+
diff --git a/.liquibase/Data_alias/basic/2019.1.4/changelog.xml b/.liquibase/Data_alias/basic/2019.1.4/changelog.xml
index 23c7dbe0c6..3e235f1508 100644
--- a/.liquibase/Data_alias/basic/2019.1.4/changelog.xml
+++ b/.liquibase/Data_alias/basic/2019.1.4/changelog.xml
@@ -203,8 +203,10 @@
     <include relativeToChangelogFile="true" file="add_objectRelationIcon.xml"/>
 
     <include relativeToChangelogFile="true" file="DSGVO/create_DSGVO.xml"/>
-    <include relativeToChangelogFile="true" file="DSGVO/insert_DSGVO.xml"/>
+    <include relativeToChangelogFile="true" file="DSGVO/insert_example_DSGVO.xml"/>
     <include relativeToChangelogFile="true" file="DSGVO/init_statuoritysource_keyword.xml"/>
     <include relativeToChangelogFile="true" file="DSGVO/init_purpose_keyword.xml"/>
     <include relativeToChangelogFile="true" file="DSGVO/init_dsgvotablename_keyword.xml"/>
+    <include relativeToChangelogFile="true" file="DSGVO/init_dsgvoType_keyword.xml"/>
+    <include relativeToChangelogFile="true" file="DSGVO/update_comm_medium.xml"/>
 </databaseChangeLog>
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 77e27ae314..28ed5d59af 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -10088,6 +10088,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
         </entities>
diff --git a/entity/DSGVO_entity/DSGVO_entity.aod b/entity/DSGVO_entity/DSGVO_entity.aod
index a4701179b4..0fb6a68686 100644
--- a/entity/DSGVO_entity/DSGVO_entity.aod
+++ b/entity/DSGVO_entity/DSGVO_entity.aod
@@ -67,8 +67,8 @@
       <title>Source</title>
       <consumer>KeywordTablename</consumer>
       <groupable v="true" />
+      <linkedContext>KeywordEntry</linkedContext>
       <mandatory v="true" />
-      <displayValueProcess>%aditoprj%/entity/DSGVO_entity/entityfields/tablename/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>VALID_TO</name>
@@ -129,10 +129,11 @@
       </dependency>
     </entityConsumer>
     <entityField>
-      <name>MEDIUM</name>
+      <name>TYPE</name>
       <title>Type</title>
       <description>What kind of data is being saved, e.g. Mail, Home address</description>
       <mandatory v="true" />
+      <dropDownProcess>%aditoprj%/entity/DSGVO_entity/entityfields/type/dropDownProcess.js</dropDownProcess>
     </entityField>
     <entityParameter>
       <name>currentPerson_param</name>
@@ -203,12 +204,19 @@
       <conditionProcess>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <linkInformation>
         <linkInformation>
-          <name>57e92e2b-66c8-45f8-a9e9-b6e099dd41ba</name>
+          <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>
@@ -272,10 +280,30 @@
           <expression>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
-          <name>MEDIUM.value</name>
-          <expression>%aditoprj%/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/medium.value/expression.js</expression>
+          <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>
+      <isFilterable v="true" />
+      <contentProcess>%aditoprj%/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <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>
+      </recordFields>
+    </jDitoRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DSGVO_entity/entityfields/tablename/displayValueProcess.js b/entity/DSGVO_entity/entityfields/tablename/displayValueProcess.js
deleted file mode 100644
index 80e574ee4a..0000000000
--- a/entity/DSGVO_entity/entityfields/tablename/displayValueProcess.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.result");
-import("system.vars");
-import("KeywordRegistry_basic");
-import("Keyword_lib");
-
-result.string(KeywordUtils.getViewValue($KeywordRegistry.DSGVOTablename(), vars.get("$field.TABLENAME")));
\ No newline at end of file
diff --git a/entity/DSGVO_entity/entityfields/type/dropDownProcess.js b/entity/DSGVO_entity/entityfields/type/dropDownProcess.js
new file mode 100644
index 0000000000..88f18f20c2
--- /dev/null
+++ b/entity/DSGVO_entity/entityfields/type/dropDownProcess.js
@@ -0,0 +1,5 @@
+import("system.logging");
+import("system.vars");
+import("Keyword_lib")
+import("KeywordRegistry_basic");
+
diff --git a/entity/DSGVO_entity/entityfields/value/dropDownProcess.js b/entity/DSGVO_entity/entityfields/value/dropDownProcess.js
index 829572ad90..c8a14bde82 100644
--- a/entity/DSGVO_entity/entityfields/value/dropDownProcess.js
+++ b/entity/DSGVO_entity/entityfields/value/dropDownProcess.js
@@ -1,10 +1,10 @@
-import("system.logging");
 import("system.result");
 import("system.vars");
 import("Sql_lib");
 import("system.db");
 import("DSGVO_lib");
 
-var data = getDSGVOTable(vars.get("$param.currentPerson_param"), "combo");
+
+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/recordcontainers/db/recordfieldmappings/medium.value/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/medium.value/expression.js
deleted file mode 100644
index d848dd8256..0000000000
--- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/medium.value/expression.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("system.vars");
-import("DSGVO_lib");
-
-result.object(getDSGVOTable(vars.get("$param.currentPerson_param"), "medium"));
\ 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
new file mode 100644
index 0000000000..1e77eef5d3
--- /dev/null
+++ b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
@@ -0,0 +1,6 @@
+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/db/recordfieldmappings/value.value/expression.js b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js
index 9c1830d99e..d047656e73 100644
--- a/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js
+++ b/entity/DSGVO_entity/recordcontainers/db/recordfieldmappings/value.value/expression.js
@@ -1,5 +1,6 @@
-import("system.result");
 import("system.vars");
+import("system.result");
 import("DSGVO_lib");
 
-result.object(getDSGVOTable(vars.get("$param.currentPerson_param"), "value"));
+
+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
new file mode 100644
index 0000000000..66df3fc69b
--- /dev/null
+++ b/entity/DSGVO_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,66 @@
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+import("system.db");
+import("system.result");
+import("Sql_lib");
+import("Address_lib");
+
+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");
+    
+
+// res.push([dsgvoId, row, statSource, purpose, tablename, type, validTo, contactId]);
+// ---->>>> VALUE von RowId
+// result.object();
+
+// RESULT muss Form haben: DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, TYPE, VALUE, VALID_TO, CONTACT_ID
+// ggf. kürzen? nur DSGVOID und VALUE?
+
+function _groupData(pData)
+{
+    if ( pData.length == 0 )
+        return [];
+    
+    var res = [];
+    var tableContainer = $KeywordRegistry.DSGVOTablename();
+    
+    for (var i = 0; i < dataQuery.length; i++)
+    {
+        var innerCond = SqlCondition.begin();
+        if(KeywordUtils.getViewValue(tableContainer, pData[i][4]) == "Adressen")
+        {
+            var addrData = innerCond.andPrepare(pData[i][1], "ADDRESSID")
+                    //.andPrepare(pData[i][7], "CONTACT_ID")
+                    .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, "
+                    + "BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, STATE, ZIP "
+                    + "from ADDRESS", "1 = 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])
+                    
+                }
+            else
+                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;
+    }
+}
diff --git a/neonView/DSGVOEdit_view/DSGVOEdit_view.aod b/neonView/DSGVOEdit_view/DSGVOEdit_view.aod
index 2e5c22f42b..7e996ce2ed 100644
--- a/neonView/DSGVOEdit_view/DSGVOEdit_view.aod
+++ b/neonView/DSGVOEdit_view/DSGVOEdit_view.aod
@@ -15,13 +15,21 @@
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
-          <name>2d624b85-9dbc-4ab1-9682-9c4d50e4df5d</name>
-          <entityField>ROW_ID</entityField>
+          <name>05722873-d882-41fa-9030-aa64df9dc98a</name>
+          <entityField>TABLENAME</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>167afc20-3e2c-452d-9300-f5e105bc85e4</name>
+          <entityField>TYPE</entityField>
         </entityFieldLink>
         <entityFieldLink>
           <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 946ae1b9b6..1ffe887a55 100644
--- a/neonView/DSGVOFilter_view/DSGVOFilter_view.aod
+++ b/neonView/DSGVOFilter_view/DSGVOFilter_view.aod
@@ -15,25 +15,19 @@
       <favoriteActionGroup2>Reports</favoriteActionGroup2>
       <entityField>#ENTITY</entityField>
       <columns>
-        <neonTableColumn>
-          <name>76d31355-bdff-4b4c-a61c-285ed96c6721</name>
-          <entityField>ROW_ID</entityField>
-          <width v="75" />
-          <expandRatio v="100" />
-        </neonTableColumn>
         <neonTableColumn>
           <name>1d329067-0959-4150-aaa4-ea7887a31ec2</name>
           <entityField>VALUE</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>ad9e414f-4f0f-4efb-887a-468e7a9fefb5</name>
-          <entityField>RIGHT</entityField>
+          <entityField>STATUORITYSOURCE</entityField>
           <width v="75" />
           <expandRatio v="100" />
         </neonTableColumn>
         <neonTableColumn>
           <name>b9a96821-ed98-44e8-b1d9-c5577c53bf72</name>
-          <entityField>USE</entityField>
+          <entityField>PURPOSE</entityField>
           <width v="75" />
           <expandRatio v="100" />
         </neonTableColumn>
diff --git a/process/DSGVO_lib/process.js b/process/DSGVO_lib/process.js
index d4c13a0711..dcb635d352 100644
--- a/process/DSGVO_lib/process.js
+++ b/process/DSGVO_lib/process.js
@@ -1,5 +1,6 @@
 import("system.logging");
-import("Keyword_lib");
+import("Keyword_lib")
+import("KeywordRegistry_basic");
 import("system.translate");
 import("Sql_lib");
 import("system.util");
@@ -7,10 +8,100 @@ import("system.vars");
 import("system.db");
 import("system.neon");
 import("system.result");
-import("KeywordRegistry_basic");
 
-function getDSGVOTable (pPerson, pType)
+import("Report_lib");
+
+function getDSGVOTable (pPerson, pTablename)
 {
+    /*
+    var table = vars.get("$field.TABLENAME");
+    var container = $KeywordRegistry.DSGVOTablename();
+    var data;
+    var entry = new Object{Type:String, value:String};
+    var list = [];
+    
+    if (exists(table, container))
+    {
+        if(KeywordUtils.getViewValue(container, table) == "Adressen")
+        {
+            data = db.table(SqlCondition.begin()
+                .andPrepare("CONTACT.PERSON_ID", pPerson)
+                .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, STATE, ZIP from ADDRESS join CONTACT on ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID", "1 = 1"));
+
+        }
+        else if(KeywordUtils.getViewValue(container, table) == "Kommunikationsdaten")
+        {
+            data = 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"));
+
+        }
+        else if(KeywordUtils.getViewValue(container, table) == "Attribute")
+        {
+                    
+        }
+        else if(KeywordUtils.getViewValue(container, table) == "Persönliche Daten")
+        {
+            data =  db.table(SqlCondition.begin()
+                .andPrepare("PERSON.PERSONID", pPerson)
+                .buildSql("select PERSONID, DATEOFBIRTH, FIRSTNAME, MIDDLENAME, LASTNAME, GENDER, SALUTATION, TITLE, TITLESUFFIX, PICTURE from PERSON", "1 = 1"));
+            
+            for(i = 0; i < pers.length; i++)
+            {
+                if(pers[i][1] != null)
+                {
+                    // TODO
+                    list.push({Type:"123", value:"123"});
+                    mediumData.push(pers[i][0] + " Date of Birth");
+                    valueData.push(pers[i][1]);
+                }
+                if(pers[i][2] != null)
+                {
+                    mediumData.push(pers[i][0] + " Firstname");
+                    valueData.push(pers[i][2]);
+                }
+                if(pers[i][3] != null)
+                {
+                    mediumData.push(pers[i][0] + " Middlename");
+                    valueData.push(pers[i][3]);
+                }
+                if(pers[i][4] != null)
+                {
+                    mediumData.push(pers[i][0] + " Lastname");
+                    valueData.push(pers[i][4]);
+                    persEntry = pers[i][4];
+                }
+                if(pers[i][5] != null)
+                {
+                    mediumData.push(pers[i][0] + " Gender");
+                    valueData.push(pers[i][5]);
+                }
+                if(pers[i][6] != null)
+                {
+                    mediumData.push(pers[i][0] + " Salutation");
+                    valueData.push(pers[i][6]);
+                }
+                if(pers[i][7] != null)
+                {
+                    mediumData.push(pers[i][0] + " Title");
+                    valueData.push(pers[i][7]);
+                }
+                if(pers[i][8] != null)
+                {
+                    mediumData.push(pers[i][0] + " Title suffix");
+                    valueData.push(pers[i][8]);
+                }
+                if(pers[i][9] != null)        {
+                    mediumData.push(pers[i][0] + " Picture");
+                    valueData.push(pers[i][9]);
+                    if(persEntry == null)
+                        persEntry = pers[i][9];
+                }
+            }
+            }
+    else return null;
+}*/
+   
     var addr = db.table(SqlCondition.begin()
         .andPrepare("CONTACT.PERSON_ID", pPerson)
         .buildSql("select ADDRESSID, ADDRESS, ADDRESSADDITION, ADDRIDENTIFIER, BUILDINGNO, CITY, COUNTRY, DISTRICT, REGION, STATE, ZIP from ADDRESS join CONTACT on ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID", "1 = 1"));
@@ -24,168 +115,197 @@ function getDSGVOTable (pPerson, pType)
         .andPrepare("PERSON.PERSONID", pPerson)
         .buildSql("select PERSONID, DATEOFBIRTH, FIRSTNAME, MIDDLENAME, LASTNAME, GENDER, SALUTATION, TITLE, TITLESUFFIX, PICTURE from PERSON", "1 = 1"));
 
-    // var data = new Array();
-    var mediumData = new Array();
-    var valueData = new Array();
-    var allData = new Array();
+// var data = new Array();
+var mediumData = new Array();
+var valueData = new Array();
+var allData = new Array();
     
-    for(i = 0; i < addr.length; i++)
+for(i = 0; i < addr.length; i++)
+{
+    var addrEntry = null;
+    if(addr[i][1] != null)
     {
-        var addrEntry = null;
-        if(addr[i][1] != null)
-        {
-            mediumData.push(addr[i][0] + " Street");
-            valueData.push(addr[i][1]);
-        }
-        if(addr[i][2] != null)
-        {
-            mediumData.push(addr[i][0] + " Addressaddition");
-            valueData.push(addr[i][2]);
-        }
-        if(addr[i][3] != null)
-        {
-            mediumData.push(addr[i][0] + " Addressident");
-            valueData.push(addr[i][3]);
-        }
-        if(addr[i][4] != null)
-        {
-            mediumData.push(addr[i][0] + " Buildingno");
-            valueData.push(addr[i][4]);
-        }
-        if(addr[i][5] != null)
-        {
-            mediumData.push(addr[i][0] + " City");
-            valueData.push(addr[i][5]);
-            addrEntry = addr[i][5];
-        }
-        if(addr[i][6] != null)
-        {
-            mediumData.push(addr[i][0] +  " Country");
-            valueData.push(addr[i][6]);
-        }
-        if(addr[i][7] != null)
-        {
-            mediumData.push(addr[i][0] + " District");
-            valueData.push(addr[i][7]);
-            if(addrEntry == null)
-                addrEntry = addr[i][7];
-        }
-        if(addr[i][8] != null)
-        {
-            mediumData.push(addr[i][0] + " Region");
-            valueData.push(addr[i][8]);
-            if(addrEntry == null)
-                addrEntry = addr[i][8];
-        }
-        if(addr[i][9] != null)
-        {
-            mediumData.push(addr[i][0] + " State");
-            valueData.push(addr[i][9]);
-        }
-        if(addr[i][10] != null)
-        {
-            mediumData.push(addr[i][0] + " ZIP");
-            valueData.push(addr[i][10]);
-            if(addrEntry == null)
-                addrEntry = addr[i][10];
-        }
-        if(addrEntry != null)
-            allData.push([addr[i][0] + "-address", addrEntry]);
+        mediumData.push(addr[i][0] + " Street");
+        valueData.push(addr[i][1]);
+    }
+    if(addr[i][2] != null)
+    {
+        mediumData.push(addr[i][0] + " Addressaddition");
+        valueData.push(addr[i][2]);
+    }
+    if(addr[i][3] != null)
+    {
+        mediumData.push(addr[i][0] + " Addressident");
+        valueData.push(addr[i][3]);
+    }
+    if(addr[i][4] != null)
+    {
+        mediumData.push(addr[i][0] + " Buildingno");
+        valueData.push(addr[i][4]);
+    }
+    if(addr[i][5] != null)
+    {
+        mediumData.push(addr[i][0] + " City");
+        valueData.push(addr[i][5]);
+        addrEntry = addr[i][5];
+    }
+    if(addr[i][6] != null)
+    {
+        mediumData.push(addr[i][0] +  " Country");
+        valueData.push(addr[i][6]);
+    }
+    if(addr[i][7] != null)
+    {
+        mediumData.push(addr[i][0] + " District");
+        valueData.push(addr[i][7]);
+        if(addrEntry == null)
+            addrEntry = addr[i][7];
+    }
+    if(addr[i][8] != null)
+    {
+        mediumData.push(addr[i][0] + " Region");
+        valueData.push(addr[i][8]);
+        if(addrEntry == null)
+            addrEntry = addr[i][8];
     }
+    if(addr[i][9] != null)
+    {
+        mediumData.push(addr[i][0] + " State");
+        valueData.push(addr[i][9]);
+    }
+    if(addr[i][10] != null)
+    {
+        mediumData.push(addr[i][0] + " ZIP");
+        valueData.push(addr[i][10]);
+        if(addrEntry == null)
+            addrEntry = addr[i][10];
+    }
+    if(addrEntry != null)
+        allData.push([addr[i][0] + "-address", addrEntry]);
+}
 
-    for(i = 0; i < comm.length; i++)
+for(i = 0; i < comm.length; i++)
+{
+    if(comm[i][1] && comm[i][2])
     {
-        if(comm[i][1] && comm[i][2])
+        var medium = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), comm[i][2]);
+        if(medium != null)
         {
-            var medium = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), comm[i][2]);
-            if(medium != null)
-            {
-                mediumData.push(medium)
-                valueData.push(comm[i][1]);
-                allData.push([comm[i][0] + "-communication", medium])
-            }
+            mediumData.push(medium)
+            valueData.push(comm[i][1]);
+            allData.push([comm[i][0] + "-communication", medium])
         }
     }
+}
 
-    for(i = 0; i < pers.length; i++)
+for(i = 0; i < pers.length; i++)
+{
+    var persEntry = null;
+    if(pers[i][1] != null)
     {
-        var persEntry = null;
-        if(pers[i][1] != null)
-        {
-            mediumData.push(pers[i][0] + " Date of Birth");
-            valueData.push(pers[i][1]);
-        }
-        if(pers[i][2] != null)
-        {
-            mediumData.push(pers[i][0] + " Firstname");
-            valueData.push(pers[i][2]);
-        }
-        if(pers[i][3] != null)
-        {
-            mediumData.push(pers[i][0] + " Middlename");
-            valueData.push(pers[i][3]);
-        }
-        if(pers[i][4] != null)
-        {
-            mediumData.push(pers[i][0] + " Lastname");
-            valueData.push(pers[i][4]);
-            persEntry = pers[i][4];
-        }
-        if(pers[i][5] != null)
-        {
-            mediumData.push(pers[i][0] + " Gender");
-            valueData.push(pers[i][5]);
-        }
-        if(pers[i][6] != null)
-        {
-            mediumData.push(pers[i][0] + " Salutation");
-            valueData.push(pers[i][6]);
-        }
-        if(pers[i][7] != null)
-        {
-            mediumData.push(pers[i][0] + " Title");
-            valueData.push(pers[i][7]);
-        }
-        if(pers[i][8] != null)
-        {
-            mediumData.push(pers[i][0] + " Title suffix");
-            valueData.push(pers[i][8]);
-        }
-        if(pers[i][9] != null)        {
-            mediumData.push(pers[i][0] + " Picture");
-            valueData.push(pers[i][9]);
-            if(persEntry == null)
-                persEntry = pers[i][9];
-        }
-        
-        if(persEntry != null)
-            allData.push([pers[i][0] + "-person", persEntry]);
+        mediumData.push(pers[i][0] + " Date of Birth");
+        valueData.push(pers[i][1]);
     }
-    
-    //logging.log(mediumData.length);
-    //logging.log(valueData.length);
-    //logging.log(allData.length);
-    /*allData.forEach(function (entry)
+    if(pers[i][2] != null)
+    {
+        mediumData.push(pers[i][0] + " Firstname");
+        valueData.push(pers[i][2]);
+    }
+    if(pers[i][3] != null)
+    {
+        mediumData.push(pers[i][0] + " Middlename");
+        valueData.push(pers[i][3]);
+    }
+    if(pers[i][4] != null)
+    {
+        mediumData.push(pers[i][0] + " Lastname");
+        valueData.push(pers[i][4]);
+        persEntry = pers[i][4];
+    }
+    if(pers[i][5] != null)
+    {
+        mediumData.push(pers[i][0] + " Gender");
+        valueData.push(pers[i][5]);
+    }
+    if(pers[i][6] != null)
+    {
+        mediumData.push(pers[i][0] + " Salutation");
+        valueData.push(pers[i][6]);
+    }
+    if(pers[i][7] != null)
+    {
+        mediumData.push(pers[i][0] + " Title");
+        valueData.push(pers[i][7]);
+    }
+    if(pers[i][8] != null)
     {
-        logging.log(entry);
-    })*/
+        mediumData.push(pers[i][0] + " Title suffix");
+        valueData.push(pers[i][8]);
+    }
+    if(pers[i][9] != null)        {
+        mediumData.push(pers[i][0] + " Picture");
+        valueData.push(pers[i][9]);
+        if(persEntry == null)
+            persEntry = pers[i][9];
+    }
+        
+    if(persEntry != null)
+        allData.push([pers[i][0] + "-person", persEntry]);
+}
+
+    
+if(pTablename == "medium")
+{
+    return mediumData;
+}
+else if(pTablename == "value")
+{
+    return valueData;
+}
+else if(pTablename == "combo")
+{
+    return allData;
+}
+else
+    return null;
+}
+
+function openDSGVODisclosureReport(pPerson)
+{
+    var discReport = new Report("DSGVO_Disclosure_Report");
     
-    //logging.log(pType);
+    // TODO: get Images implementieren
+    var imgData = ["meineFirma | Konrad-Zuse-Straße 4  |  DE 84144 Geisenhausen",
+    "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXV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"]
     
-    if(pType == "medium")
-        {
-            return mediumData;
-        }
-    else if(pType == "value")
-        {
-            return valueData;
-        }
-    else if(pType == "combo")
-        {
-            return allData;
-        }
+    var dsgvo = "select DSGVOID, ROW_ID, STATUORITYSOURCE, PURPOSE, TABLENAME, VALID_TO, CONTACT_ID from DSGVO"
+    
+    var params = {};
+    /*
+    var params = {
+        "PaymentConditions" : translate.text("Conditions of payment", language),
+        "Articledescription" : translate.text("Articledescription", language),
+        "DeliveryConditions" : translate.text("Deliveryspecification", language),
+        "Salutation" : letterSalutation}*/
+    
+    discReport.setReportData(ReportData.begin([
+        "PURPOSE",
+        "STATUORITYSOURCE",
+        "VALID_TO",
+        "TYPE", // Type
+        "VALUE" // Value
+        ]));
+    discReport.addImage("myLogo", imgData[1]);
+    discReport.addReportParams(params);
+    discReport.openReport(); // pCondition, pVariables
 }
 
+function openDSGVOInformationReport(pPerson)
+{
+    var infoReport = new Report("DSGVO_Information_report");
+}
+
+
 
 
 function insertUpdatePrivacyData(pTableData, pPersRelId){
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index 2030205a1c..44d003a529 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -108,6 +108,7 @@ $KeywordRegistry.permissionAccessType = function(){return "PermissionAccessType"
 $KeywordRegistry.purpose = function(){return "Purpose";};
 $KeywordRegistry.statuoritysource = function(){return "Statuoritysource";};
 $KeywordRegistry.DSGVOTablename = function() {return "DSGVOTablename";};
+$KeywordRegistry.DSGVOType = function() {return "DSGVOType";};
 $KeywordRegistry.textPlaceholder = function(){return "textPlaceholder";};
 $KeywordRegistry.communicationMediumCampaign = function(){return "CommunicationMediumCampaign";};
 
diff --git a/report/DSGVO_Auskunft_Report/DSGVO_Auskunft_Report.aod b/report/DSGVO_Disclosure_Report/DSGVO_Disclosure_Report.aod
similarity index 75%
rename from report/DSGVO_Auskunft_Report/DSGVO_Auskunft_Report.aod
rename to report/DSGVO_Disclosure_Report/DSGVO_Disclosure_Report.aod
index de8f40d3cf..ad0f0fcbfe 100644
--- a/report/DSGVO_Auskunft_Report/DSGVO_Auskunft_Report.aod
+++ b/report/DSGVO_Disclosure_Report/DSGVO_Disclosure_Report.aod
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <report xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/report/1.2.0">
-  <name>DSGVO_Auskunft_Report</name>
+  <name>DSGVO_Disclosure_Report</name>
+  <title>DSGVO Disclosure</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <reportData>%aditoprj%/report/DSGVO_Auskunft_Report/reportData.jrxml</reportData>
+  <reportData>%aditoprj%/report/DSGVO_Disclosure_Report/reportData.jrxml</reportData>
   <reportType>JASPER</reportType>
   <ribbon>
     <name>ribbon</name>
diff --git a/report/DSGVO_Auskunft_Report/reportData.jasper b/report/DSGVO_Disclosure_Report/reportData.jasper
similarity index 100%
rename from report/DSGVO_Auskunft_Report/reportData.jasper
rename to report/DSGVO_Disclosure_Report/reportData.jasper
diff --git a/report/DSGVO_Auskunft_Report/reportData.jrxml b/report/DSGVO_Disclosure_Report/reportData.jrxml
similarity index 100%
rename from report/DSGVO_Auskunft_Report/reportData.jrxml
rename to report/DSGVO_Disclosure_Report/reportData.jrxml
-- 
GitLab