diff --git a/.liquibase/Data_alias/basic/2021.0.3/Checklists/alter_checklistentryvalue.xml b/.liquibase/Data_alias/basic/2021.0.3/Checklists/alter_checklistentryvalue.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f62b23a4c538ec2657020161d42c683aa39b2c75
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.3/Checklists/alter_checklistentryvalue.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="p.neub" id="4aa51e9d-499d-42e8-9cfe-dda36abaa5d0">
+        <addColumn tableName="CHECKLISTENTRYVALUE">
+            <column name="DONEUSER" type="VARCHAR(63)"/>
+        </addColumn>
+        <addColumn tableName="CHECKLISTENTRYVALUE">
+            <column name="DONEDATE" type="TIMESTAMP"/>
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.3/Checklists/changelog.xml b/.liquibase/Data_alias/basic/2021.0.3/Checklists/changelog.xml
index bb7e5ba0e9f62190beeaea2f2ab82c5373e4967d..b4a899dadbbb5ed2b7523648bb367755a61ac04c 100644
--- a/.liquibase/Data_alias/basic/2021.0.3/Checklists/changelog.xml
+++ b/.liquibase/Data_alias/basic/2021.0.3/Checklists/changelog.xml
@@ -9,4 +9,5 @@
     <include relativeToChangelogFile="true" file="update_ab_attributeusage_salesprojectorigin.xml"/>
     <include relativeToChangelogFile="true" file="change_phase_translation.xml"/>
     <include relativeToChangelogFile="true" file="alter_salesproject_phase.xml"/>
+    <include relativeToChangelogFile="true" file="alter_checklistentryvalue.xml"/>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.3/Checklists/update_phase.xml b/.liquibase/Data_alias/basic/2021.0.3/Checklists/update_phase.xml
index 837a9380da71b2d37b0cf7dbde31e6cca57d9313..b5d99df603e2ed8f62d9d704d123e51c5a2a97e6 100644
--- a/.liquibase/Data_alias/basic/2021.0.3/Checklists/update_phase.xml
+++ b/.liquibase/Data_alias/basic/2021.0.3/Checklists/update_phase.xml
@@ -2,7 +2,7 @@
 <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
-    <changeSet author="p.neub" id="d204fc4f-f670-4df6-86ae-8a57a1fce5ae">
+    <changeSet author="p.neub" id="b7fced70-0fae-4589-8bbf-c7139ebeb783">
         <delete tableName="SALESPROJECTPHASEDEFINITION"/>
         <delete tableName="CHECKLIST"/>
 
@@ -10,7 +10,7 @@
             <column name="PHASE" value="SALPROJPHASECONTACT"/>
             <column name="CHECKLIST_ID" value="179dcc0d-e6fa-411d-b5ee-cb25b9735dbe"/>
             <column name="DATE_EDIT"/>
-            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Contact'."/>
+            <column name="DESCRIPTION" value="Aufgaben für die Phase: 'Contact'."/>
             <column name="USER_EDIT"/>
             <column name="USER_NEW" value="Admin"/>
             <column name="SALESPROJECTPHASEDEFINITIONID" value="176e43db-1665-49b9-9c35-5c5c0aa135f3"/>
@@ -28,7 +28,7 @@
             <column name="PHASE" value="SALPROJPHASELEAD"/>
             <column name="CHECKLIST_ID" value="3d0f1d25-cee8-4b83-a0de-3fded83ff9c4"/>
             <column name="DATE_EDIT"/>
-            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Lead'."/>
+            <column name="DESCRIPTION" value="Aufgaben für die Phase: 'Lead'."/>
             <column name="USER_EDIT"/>
             <column name="USER_NEW" value="Admin"/>
             <column name="SALESPROJECTPHASEDEFINITIONID" value="d29dcde8-24b4-470a-8189-1e2b0d812daa"/>
@@ -46,7 +46,7 @@
             <column name="PHASE" value="SALPROJPHASEPROS"/>
             <column name="CHECKLIST_ID" value="ecf50252-e0c2-4e7a-8cc6-078b5978d2c5"/>
             <column name="DATE_EDIT"/>
-            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Prospect'."/>
+            <column name="DESCRIPTION" value="Aufgaben für die Phase: 'Prospect'."/>
             <column name="USER_EDIT"/>
             <column name="USER_NEW" value="Admin"/>
             <column name="SALESPROJECTPHASEDEFINITIONID" value="d9605427-ba6b-42b2-8376-51e4ef654814"/>
@@ -64,7 +64,7 @@
             <column name="PHASE" value="SALPROJPHASEOFFER"/>
             <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
             <column name="DATE_EDIT"/>
-            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Offer'."/>
+            <column name="DESCRIPTION" value="Aufgaben für die Phase: 'Offer'."/>
             <column name="USER_EDIT"/>
             <column name="USER_NEW" value="Admin"/>
             <column name="SALESPROJECTPHASEDEFINITIONID" value="e8ff463f-692c-40a7-bafa-d168886700fd"/>
@@ -82,7 +82,7 @@
             <column name="PHASE" value="SALPROJPHASENEGO"/>
             <column name="CHECKLIST_ID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
             <column name="DATE_EDIT"/>
-            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Negotiation'."/>
+            <column name="DESCRIPTION" value="Aufgaben für die Phase: 'Negotiation'."/>
             <column name="USER_EDIT"/>
             <column name="USER_NEW" value="Admin"/>
             <column name="SALESPROJECTPHASEDEFINITIONID" value="21011181-fe9f-4c6c-910e-344ce10e3fc1"/>
diff --git a/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod b/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod
index 33a0522dbead26e0b28e023d1dab41f40ae0633c..e8509f21372a4aa38500c5264870ceeb330a1e44 100644
--- a/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod
+++ b/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod
@@ -96,6 +96,16 @@
       <title>Automatically</title>
       <contentType>BOOLEAN</contentType>
     </entityField>
+    <entityField>
+      <name>DONEDATE</name>
+      <title>Done on</title>
+      <contentType>DATE</contentType>
+      <resolution>MINUTE</resolution>
+    </entityField>
+    <entityField>
+      <name>DONEUSER</name>
+      <title>Done by</title>
+    </entityField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -115,6 +125,12 @@
         <jDitoRecordFieldMapping>
           <name>CHECKLISTENTRY_ID.displayValue</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>DONEUSER.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>DONEDATE.value</name>
+        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>IS_FULFILLED.value</name>
         </jDitoRecordFieldMapping>
diff --git a/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js b/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js
index ccff131335c861fe9e09bb9f170e0485cf631dcb..9ac4b995eb7e8f87127e037ef37566db7633c185 100644
--- a/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js
+++ b/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js
@@ -3,12 +3,18 @@ import("Sql_lib");
 import("system.vars");
 import("system.neon");
 
-var fulfilledValue = Utils.toBoolean(vars.get("$field.IS_FULFILLED")) ? "0" : "1";
+var isFulfilled = Utils.toBoolean(vars.get("$field.IS_FULFILLED"));
+var fulfilledValue = isFulfilled ? "0" : "1";
+var fulfilledUser = isFulfilled ? "" : vars.get("$sys.user");
+var fulfilledDate = isFulfilled ? "" : vars.get("$sys.date");
+
 var cond = newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID", vars.get("$field.UID")).toString();
 
 if(Utils.toBoolean(newSelect("count(*)").from("CHECKLISTENTRYVALUE").where(cond).cell()))
 {
     newWhere(cond).updateFields({
+        DONEUSER:  fulfilledUser,
+        DONEDATE: fulfilledDate,
         IS_FULFILLED: fulfilledValue
     }, "CHECKLISTENTRYVALUE");
 }
@@ -17,6 +23,8 @@ else
     new SqlBuilder().insertFields({
         CHECKLISTENTRYVALUEID: vars.get("$field.UID"),
         CHECKLISTENTRY_ID: vars.get("$field.CHECKLISTENTRY_ID"),
+        DONEUSER:  fulfilledUser,
+        DONEDATE: fulfilledDate,
         IS_FULFILLED: fulfilledValue,
         OBJECT_TYPE: vars.get("$field.OBJECT_TYPE"),
         OBJECT_ROWID: vars.get("$field.OBJECT_ROWID"),
diff --git a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js
index 16a48ff0220dc6c9f068c46556ac69b6eb2864f5..e1e1e87749e51d75a7b8090cd0df45d187441724 100644
--- a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js
@@ -10,6 +10,8 @@ var data = newSelect([
     "CHECKLISTENTRY.AUTO",
     "CHECKLISTENTRY.CHECKLISTENTRYID",
     "CHECKLISTENTRY.TITLE",
+    "CHECKLISTENTRYVALUE.DONEUSER",
+    "CHECKLISTENTRYVALUE.DONEDATE",
     "CHECKLISTENTRYVALUE.IS_FULFILLED",
     "CHECKLISTENTRYVALUE.OBJECT_ROWID",
     "CHECKLISTENTRYVALUE.OBJECT_TYPE",
@@ -29,17 +31,17 @@ var data = newSelect([
 for(let i = 0; i < data.length; i++)
 {
     data[i][0] = data[i][0] || util.getNewUUID();
-    data[i][4] = data[i][4] || "0";
-    data[i][5] = data[i][5] || vars.get("$param.ObjectRowId_param");
-    data[i][6] = data[i][6] || vars.get("$param.ObjectType_param");
-    data[i][8] = data[i][8] || datetime.date();
-    data[i][10] = data[i][10] || vars.get("$sys.user");
+    data[i][6] = data[i][6] || "0";
+    data[i][7] = data[i][7] || vars.get("$param.ObjectRowId_param");
+    data[i][8] = data[i][8] || vars.get("$param.ObjectType_param");
+    data[i][10] = data[i][10] || datetime.date();
+    data[i][12] = data[i][12] || vars.get("$sys.user");
     
     if(parseInt(data[i][1]))
     {
         var checklistEntry = $ChecklistEntryRegistry[data[i][3]]();
         data[i][3] = checklistEntry.title;
-        data[i][4] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param")) ? "1" : "0";
+        data[i][6] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param")) ? "1" : "0";
     }
 }
 
diff --git a/entity/ChecklistEntry_entity/entityfields/auto/displayValueProcess.js b/entity/ChecklistEntry_entity/entityfields/auto/displayValueProcess.js
index 94bb5f7e4d05d71c1b725767f2c128ea325687dd..afddf0e768df1b60a36f706193e2d563fc9f7f0a 100644
--- a/entity/ChecklistEntry_entity/entityfields/auto/displayValueProcess.js
+++ b/entity/ChecklistEntry_entity/entityfields/auto/displayValueProcess.js
@@ -2,9 +2,7 @@ import("system.translate");
 import("system.result");
 import("system.vars");
 
-var auto = vars.get("$field.AUTO");
-
-if(auto == 1)
+if(vars.get("$this.value") == 1)
 {
     result.string(translate.text("Automatically"));
 }
diff --git a/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js b/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js
index 13b9519c0cffd3cb0447a630c74ad989c3e62a41..b3faf49a58ac77eacc78015a3054bcf2fcef9ae6 100644
--- a/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js
+++ b/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js
@@ -1,3 +1,4 @@
+import("Util_lib");
 import("system.result");
 import("system.vars");
 import("system.translate");
@@ -6,7 +7,7 @@ import("ChecklistEntryRegistry_basic");
 
 var title = vars.get("$field.TITLE");
 
-if (vars.get("$field.AUTO") == 1)
+if (Utils.toBoolean(vars.get("$field.AUTO")))
 {
     result.string($ChecklistEntryRegistry[title]().title);
 }
diff --git a/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js b/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js
index 6c25101de02357ff096464daebd0cb512ce138c8..fb47eb24c56e539ee2259dfed324a2de4f29c811 100644
--- a/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js
@@ -1,18 +1,5 @@
-import("system.result");
 import("system.vars");
+import("system.result");
 import("Sql_lib");
 
-
-var checklistId = vars.get("$param.ChecklistUid_param");
-var cond = newWhere();
-
-if (checklistId) 
-{
-    cond.and("CHECKLISTENTRY.CHECKLIST_ID", checklistId);
-}
-else
-{
-    cond.and("1 = 2");
-}
-
-result.string(cond.toString());
\ No newline at end of file
+result.string(newWhereIfSet("CHECKLISTENTRY.CHECKLIST_ID", vars.get("$param.ChecklistUid_param")));
diff --git a/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod b/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod
index 92dbe5cb1e68bc44be1d64644dc30d71c9821009..1731b121034ab58d7d2eb2c9f02a7ff12ef9fd6f 100644
--- a/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod
+++ b/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod
@@ -62,6 +62,7 @@
     </entityProvider>
     <entityConsumer>
       <name>ChecklistEntries</name>
+      <refreshParent v="true" />
       <dependency>
         <name>dependency</name>
         <entityName>ChecklistEntry_entity</entityName>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index efe8ca27f6f028ce73a6691cad4692c2306e7d57..4152b5d25dac2a2f3cac4f0f9b96ab9136170795 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -11207,6 +11207,34 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Starts the serverprocess manually, which will recalculate all classifications from scratch. Only do this after e.g importing data from elsewhere where the outdated flag couldn't been set correctly. Since this can take some time.</key>
     </entry>
+    <entry>
+      <key>Done by</key>
+      <value>Erledigt von</value>
+    </entry>
+    <entry>
+      <key>Done on</key>
+      <value>Erledigt am</value>
+    </entry>
+    <entry>
+      <key>Source / origin of the generation of contacts</key>
+      <value>Quelle / Herkunft der Kontaktgenerierung</value>
+    </entry>
+    <entry>
+      <key>Prioritization based on segmentation parameters</key>
+      <value>Priorisierung basierend auf Segmentierungsparametern</value>
+    </entry>
+    <entry>
+      <key>First customer conversation</key>
+      <value>Erstes Kundengespräch</value>
+    </entry>
+    <entry>
+      <key>Project team</key>
+      <value>Projektteam</value>
+    </entry>
+    <entry>
+      <key>Further customer meetings</key>
+      <value>Weitere Kundengespräche</value>
+    </entry>
     <entry>
       <key>Code</key>
     </entry>
diff --git a/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod b/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod
index 05829b4051870bcd2759ca41cbd9c0ccd1f1178d..3d6b1fee4f11118b2d5245a248b5b5831c745e79 100644
--- a/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod
+++ b/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod
@@ -30,6 +30,14 @@
           <name>56a78ef9-dcef-4d1c-b30d-5c89f38611ec</name>
           <entityField>CHECKLISTENTRY_ID</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>c3cf3919-e3ab-4595-9408-de061dc81883</name>
+          <entityField>DONEUSER</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ca57e40c-cf83-4c6c-91f9-4395f6eb1141</name>
+          <entityField>DONEDATE</entityField>
+        </neonTableColumn>
       </columns>
     </tableViewTemplate>
   </children>
diff --git a/process/ChecklistEntryRegistry_basic/process.js b/process/ChecklistEntryRegistry_basic/process.js
index 50d93855904af185fe9bce7b36dfa55ad59f2e6a..3cc7f7907d2f685181e985a1a7d1c827fa1ae44a 100644
--- a/process/ChecklistEntryRegistry_basic/process.js
+++ b/process/ChecklistEntryRegistry_basic/process.js
@@ -214,17 +214,21 @@ $ChecklistEntryRegistry.salesprojectRoleIntDist = function(){
     return{
         title: translate.text("Project team: \"Internal distribution\""),
         verifierFn: function(pSalesprojectId){
-            
             var spRows = $ChecklistEntryRegistry._getRows(pSalesprojectId, "Salesproject_entity", ["SALESPROJECTID", "MST_TEAM_ID", "PROJECTCODE"], null, "NoPhaseRequirementLoading");
-            var memberRows = $ChecklistEntryRegistry._getRows(null, "Member_entity", ["MEMBERROLE"], [["EnableMSTeams_param", spRows[0]["MST_TEAM_ID"]], ["ObjectRowId_param", spRows[0]["SALESPROJECTID"]]], "WithDistrictResponsibles");
+            var memberRows = $ChecklistEntryRegistry._getRows(null, "Member_entity", ["MEMBERROLE"], [["EnableMSTeams_param", spRows[0]["MST_TEAM_ID"]], 
+                                                                    ["ObjectRowId_param", spRows[0]["SALESPROJECTID"]]], "WithDistrictResponsibles");
+            var roles = ["MEMROLEINTSALES", "MEMROLEINTRESPONSIBLE"];
+            
             for (let i = 0; i < memberRows.length; i++) 
             {
-                if(memberRows[i]["MEMBERROLE"] == $KeywordRegistry.memberRoleIntenDistrib())
+                var role = memberRows[i]["MEMBERROLE"];
+                var index = roles.indexOf(role);
+                if (index !== -1)
                 {
-                    return true;
+                    roles.splice(index, 1);
                 }
             }
-                return false;
+            return roles.length == 0;
         }
     };
 }
@@ -421,6 +425,7 @@ $ChecklistEntryRegistry.salesprojectRoleProjectteam = function(){
             var memberRows = $ChecklistEntryRegistry._getRows(null, "Member_entity", ["MEMBERROLE"], [["EnableMSTeams_param", spRows[0]["MST_TEAM_ID"]], 
                                                                     ["ObjectRowId_param", spRows[0]["SALESPROJECTID"]]], "WithDistrictResponsibles");
             var roles = ["MEMROLEINITIATOR", "MEMROLEDECISIONMAKER", "MEMROLEADVISE", "MEMROLEUSER", "MEMROLEEXSALEMANAG"];
+            var halfLength = Math.floor(roles.length / 2);
             
             for (let i = 0; i < memberRows.length; i++) 
             {
@@ -431,7 +436,7 @@ $ChecklistEntryRegistry.salesprojectRoleProjectteam = function(){
                     roles.splice(index, 1);
                 }
             }
-            return roles.length == 0;
+            return roles.length <= halfLength;
         }
     };
 }