diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index be4e2e234c1e056f42f7e2363b41fe573624b7cb..4aba9a26a9234300392467b5e5f7ed6444505c0f 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -9405,7 +9405,7 @@
             <description></description>
             <auditSyncConfig>
               <name>auditSyncConfig</name>
-              <auditMode v="0" />
+              <auditMode v="1" />
               <syncActive v="false" />
               <syncComplete v="true" />
               <syncDirection v="1" />
@@ -9423,8 +9423,20 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Document Template</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                  <customJDitoProperty>
+                    <name>translate4Log</name>
+                    <global v="false" />
+                    <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/bulkmail/entityfields/documenttemplate_id/customproperties/translate4log/property.js</property>
+                  </customJDitoProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>BULKMAILID</name>
@@ -9451,8 +9463,15 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Description</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>SUBJECT</name>
@@ -9465,8 +9484,15 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Subject</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>NAME</name>
@@ -9479,8 +9505,15 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Name</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>SENDER</name>
@@ -9493,8 +9526,15 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Sender</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>STATUS</name>
@@ -10411,7 +10451,7 @@
             <description></description>
             <auditSyncConfig>
               <name>auditSyncConfig</name>
-              <auditMode v="0" />
+              <auditMode v="1" />
               <syncActive v="false" />
               <syncComplete v="true" />
               <syncDirection v="1" />
@@ -10429,8 +10469,20 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Document Template</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                  <customJDitoProperty>
+                    <name>translate4Log</name>
+                    <global v="false" />
+                    <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/serialletter/entityfields/documenttemplate_id/customproperties/translate4log/property.js</property>
+                  </customJDitoProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>SERIALLETTERID</name>
@@ -10457,8 +10509,15 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Title</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>DESCRIPTION</name>
@@ -10471,8 +10530,15 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>Description</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
               </entityFieldDb>
             </entityFields>
           </entityDb>
diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/bulkmail/entityfields/documenttemplate_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/bulkmail/entityfields/documenttemplate_id/customproperties/translate4log/property.js
new file mode 100644
index 0000000000000000000000000000000000000000..0323e52461762d8b246786c89c2fda67412ef534
--- /dev/null
+++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/bulkmail/entityfields/documenttemplate_id/customproperties/translate4log/property.js
@@ -0,0 +1,12 @@
+import("Sql_lib");
+import("Contact_lib");
+import("system.db");
+import("system.result");
+import("Loghistory_lib");
+
+var params = Translate4LogParams.load();
+var res = db.cell(SqlCondition.begin()
+    .andPrepare("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID", params.value)
+    .buildSql("select NAME from DOCUMENTTEMPLATE", "1=2"));
+    
+result.string(res);
diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/serialletter/entityfields/documenttemplate_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/serialletter/entityfields/documenttemplate_id/customproperties/translate4log/property.js
new file mode 100644
index 0000000000000000000000000000000000000000..0323e52461762d8b246786c89c2fda67412ef534
--- /dev/null
+++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/serialletter/entityfields/documenttemplate_id/customproperties/translate4log/property.js
@@ -0,0 +1,12 @@
+import("Sql_lib");
+import("Contact_lib");
+import("system.db");
+import("system.result");
+import("Loghistory_lib");
+
+var params = Translate4LogParams.load();
+var res = db.cell(SqlCondition.begin()
+    .andPrepare("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID", params.value)
+    .buildSql("select NAME from DOCUMENTTEMPLATE", "1=2"));
+    
+result.string(res);
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js b/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js
index b5db958b18fdb85576d0ee3ce7e7a929188e9297..079117e9028cc73670823798d0325902cc451055 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js
@@ -1,26 +1,26 @@
-import("system.translate");
-import("system.result");
-import("system.vars");
-import("system.calendars");
-import("system.db");
-import("Keyword_lib");
-import("Sql_lib");
-import("KeywordRegistry_basic");
-
-var sqlQuery, sqlHelper, queryCondition, affectedIds;
-queryCondition = "";
-if (vars.exists("$local.idvalue")) {
-    affectedIds = vars.get("$local.idvalue");
-    queryCondition = "where SALESPROJECTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
-    //TODO: refactor this for incremental indexer (injections?)
-}
-sqlHelper = new SqlMaskingUtils();
-sqlQuery = "select SALESPROJECTID, PROJECTTITLE as TITLECOLUMN, " 
-    + sqlHelper.concat([
-        "'" + translate.text("Status") + ":'",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "STATE"),
-        "'| " + translate.text("Phase") + ":'",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "PHASE")
-      ]) 
-    + " as DESCCOLUMN, PROJECTCODE " 
-    + " from SALESPROJECT "
-    + queryCondition + " order by PROJECTCODE ";
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("system.calendars");
+import("system.db");
+import("Keyword_lib");
+import("Sql_lib");
+import("KeywordRegistry_basic");
+
+var sqlQuery, sqlHelper, queryCondition, affectedIds;
+queryCondition = "";
+if (vars.exists("$local.idvalue")) {
+    affectedIds = vars.get("$local.idvalue");
+    queryCondition = "where SALESPROJECTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
+    //TODO: refactor this for incremental indexer (injections?)
+}
+sqlHelper = new SqlMaskingUtils();
+sqlQuery = "select SALESPROJECTID, PROJECTTITLE as TITLECOLUMN, " 
+    + sqlHelper.concat([
+        "'" + translate.text("Status") + ":'",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "STATUS"),
+        "'| " + translate.text("Phase") + ":'",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "PHASE")
+      ]) 
+    + " as DESCCOLUMN, PROJECTCODE " 
+    + " from SALESPROJECT "
+    + queryCondition + " order by PROJECTCODE ";
 result.string(sqlQuery);
\ No newline at end of file
diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
index 242b9cbc00a3806880acd3b8dfa42be53b419217..93f4a351857896cfe83ae0ced85b84772f41f86b 100644
--- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
+++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
@@ -3,6 +3,9 @@
   <name>BulkMailRecipient_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <title>Recipient</title>
+  <siblings>
+    <element>Communication_entity</element>
+  </siblings>
   <titlePlural>Recipients</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index 650f4c8e4d069bb6dacebfa14a434e26254513e4..7d91eff29678c9c1db248dee06fd0fd6b4818140 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -143,6 +143,20 @@
       <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/displayValueProcess.js</displayValueProcess>
     </entityField>
+    <entityConsumer>
+      <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/BulkMail_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js b/entity/BulkMail_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa13fc5ed2e195b362095cc74f843ab270296ce4
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.result");
+import("Context_lib");
+
+var res = [];
+res.push({id: vars.get("$field.BULKMAILID"), tableNames: ["BULKMAIL"]});
+
+res = JSON.stringify(res);//currently only strings  can be passed as param
+result.object(res);
\ No newline at end of file
diff --git a/entity/LetterRecipient_entity/LetterRecipient_entity.aod b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
index b8e3a731f1d86539fa0f40f447c71d3db2100400..492db4ac95e2c09229f8337f6aeeab2aac09c4a7 100644
--- a/entity/LetterRecipient_entity/LetterRecipient_entity.aod
+++ b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
@@ -78,6 +78,13 @@
           <iconId>VAADIN:DOWNLOAD_ALT</iconId>
           <tooltipProcess>%aditoprj%/entity/LetterRecipient_entity/entityfields/recipientactions/children/downloadletterforselection/tooltipProcess.js</tooltipProcess>
         </entityActionField>
+        <entityActionField>
+          <name>removeWithCommRestriction</name>
+          <onActionProcess>%aditoprj%/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:BAN</iconId>
+          <tooltipProcess>%aditoprj%/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
       </children>
     </entityActionGroup>
   </entityFields>
@@ -86,6 +93,7 @@
       <name>db</name>
       <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <linkInformation>
         <linkInformation>
diff --git a/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/onActionProcess.js b/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..80ae8387d5e95fa964747c3b538fa58927007c6b
--- /dev/null
+++ b/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/onActionProcess.js
@@ -0,0 +1,24 @@
+import("Contact_lib");
+import("system.neon");
+import("Sql_lib");
+import("KeywordRegistry_basic");
+import("system.db");
+
+var recipientIds = db.array(db.COLUMN, SqlBuilder.begin()
+    .select("LETTERRECIPIENTID")
+    .from("LETTERRECIPIENT")
+    .join("CONTACT", SqlCondition.begin()
+        .and("LETTERRECIPIENT.CONTACT_ID = CONTACT.CONTACTID")
+        .andSqlCondition(ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$letter())))
+    .where(SqlCondition.begin()
+        .andPrepareVars("LETTERRECIPIENT.SERIALLETTER_ID", "$param.SerialLetterId_param"))
+    .build());
+
+if (recipientIds.length)
+{
+    db.deleteData("LETTERRECIPIENT", SqlCondition.begin()
+        .andIn("LETTERRECIPIENT.LETTERRECIPIENTID", recipientIds)
+        .build("1=2"));
+}
+
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js b/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0cd89c71d0e745d4f9d5924bf3996898c62534d7
--- /dev/null
+++ b/entity/LetterRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Remove recipients with advertising ban"));
\ No newline at end of file
diff --git a/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js b/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abe4a89cb96cd7238483d6b3fda1c2a4683ed8f7
--- /dev/null
+++ b/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("SERIALLETTER_ID = '" + vars.get("$param.SerialLetterId_param") + "'");
\ No newline at end of file
diff --git a/entity/LogHistory_entity/LogHistory_entity.aod b/entity/LogHistory_entity/LogHistory_entity.aod
index 4555dc83a29e012c9b00af7463ddbd95ea4150fa..55a1bf21490d283ff2ddebfaab00ccea39dd60ae 100644
--- a/entity/LogHistory_entity/LogHistory_entity.aod
+++ b/entity/LogHistory_entity/LogHistory_entity.aod
@@ -86,6 +86,18 @@
           <fieldName>LogHistories</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>c7d97e89-6363-4ad3-8132-b5aeb7a0c98e</name>
+          <entityName>BulkMail_entity</entityName>
+          <fieldName>LogHistories</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>deef9cab-515b-423c-87df-1a57b3ee1ff2</name>
+          <entityName>SerialLetter_entity</entityName>
+          <fieldName>LogHistories</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
     </entityProvider>
     <entityParameter>
diff --git a/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js b/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js
index b01face83ac0d7a5033f663232b1e8c9ff950b03..718629c28ebd0cd9a84247b26c676ff40ac4b099 100644
--- a/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js
@@ -6,5 +6,5 @@ import("Sql_lib");
 result.string(db.translateCondition(
             SqlCondition.begin()
                         .andPrepareVars("SALESPROJECT.CONTACT_ID", "$param.ContactId_param")
-                        .andPrepareVars("SALESPROJECT.STATE", "$param.Status_param")
+                        .andPrepareVars("SALESPROJECT.STATUS", "$param.Status_param")
                         .build("1 = 1")));
\ No newline at end of file
diff --git a/entity/SerialLetter_entity/SerialLetter_entity.aod b/entity/SerialLetter_entity/SerialLetter_entity.aod
index 4cbbbbd9f47b76043b8a83210aa1946d4ba37d04..4dc3c4b73d86109e95b77d5e571e2a8a7f2abbd3 100644
--- a/entity/SerialLetter_entity/SerialLetter_entity.aod
+++ b/entity/SerialLetter_entity/SerialLetter_entity.aod
@@ -71,6 +71,20 @@
       <title>Description</title>
       <contentType>LONG_TEXT</contentType>
     </entityField>
+    <entityConsumer>
+      <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/SerialLetter_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js b/entity/SerialLetter_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..550976652bfc458dc34f9e87e39f4cda2c350fc8
--- /dev/null
+++ b/entity/SerialLetter_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.result");
+import("Context_lib");
+
+var res = [];
+res.push({id: vars.get("$field.SERIALLETTERID"), tableNames: ["SERIALLETTER"]});
+
+res = JSON.stringify(res);//currently only strings  can be passed as param
+result.object(res);
\ No newline at end of file
diff --git a/neonView/BulkMailMain_view/BulkMailMain_view.aod b/neonView/BulkMailMain_view/BulkMailMain_view.aod
index d4f159843dfe6d19e70ccdb55beb9617ec2ea865..0f6a248d7ebcb16708fb96898fab4572dfd5fcc3 100644
--- a/neonView/BulkMailMain_view/BulkMailMain_view.aod
+++ b/neonView/BulkMailMain_view/BulkMailMain_view.aod
@@ -24,5 +24,10 @@
       <entityField>#ENTITY</entityField>
       <view>BulkMailContent_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>49eb2dd2-0df9-4b58-bdae-f941200be8d9</name>
+      <entityField>LogHistories</entityField>
+      <view>LogHistoryFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/SerialLetterMain_view/SerialLetterMain_view.aod b/neonView/SerialLetterMain_view/SerialLetterMain_view.aod
index fcf3051cace381f66f0bb8e6cae517d803f34e62..94126a57ef4924dbed94a213990b156e3153784f 100644
--- a/neonView/SerialLetterMain_view/SerialLetterMain_view.aod
+++ b/neonView/SerialLetterMain_view/SerialLetterMain_view.aod
@@ -19,5 +19,10 @@
       <entityField>Recipients</entityField>
       <view>LetterRecipientFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>5cba2de9-e00b-4548-8477-5fc76b1e3cb6</name>
+      <entityField>LogHistories</entityField>
+      <view>LogHistoryFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>