mail merge only with address
This commit is contained in:
@@ -23,7 +23,8 @@
|
||||
"contactsTemplate": "Contacts Template",
|
||||
"leadsTemplate": "Leads Template",
|
||||
"accountsTemplate": "Accounts Template",
|
||||
"usersTemplate": "Users Template"
|
||||
"usersTemplate": "Users Template",
|
||||
"mailMergeOnlyWithAddress": "Skip records w/o filled address"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Target Lists",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"name": "mailMerge",
|
||||
"rows":[
|
||||
[{"name":"contactsTemplate"}, {"name":"leadsTemplate"}],
|
||||
[{"name":"accountsTemplate"}, {"name":"usersTemplate"}]
|
||||
[{"name":"accountsTemplate"}, {"name":"mailMergeOnlyWithAddress"}]
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -153,6 +153,17 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"mailMergeOnlyWithAddress": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "type",
|
||||
"value": "Mail"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"panels": {
|
||||
|
||||
@@ -162,6 +162,10 @@
|
||||
"type": "link",
|
||||
"view": "crm:views/campaign/fields/template",
|
||||
"targetEntityType": "User"
|
||||
},
|
||||
"mailMergeOnlyWithAddress": {
|
||||
"type": "bool",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
|
||||
@@ -43,6 +43,13 @@ class Campaign extends \Espo\Services\Record
|
||||
$this->addDependency('container');
|
||||
}
|
||||
|
||||
protected $entityTypeAddressFieldListMap = [
|
||||
'Account' => ['billingAddress', 'shippingAddress'],
|
||||
'Contact' => ['address'],
|
||||
'Lead' => ['address'],
|
||||
'User' => []
|
||||
];
|
||||
|
||||
public function loadAdditionalFields(Entity $entity)
|
||||
{
|
||||
parent::loadAdditionalFields($entity);
|
||||
@@ -348,6 +355,8 @@ class Campaign extends \Espo\Services\Record
|
||||
}
|
||||
}
|
||||
|
||||
$addressFieldList = $this->entityTypeAddressFieldListMap[$targetEntityType];
|
||||
|
||||
$targetListCollection = $campaign->get('targetLists');
|
||||
foreach ($targetListCollection as $targetList) {
|
||||
if (!$campaign->get($link . 'TemplateId')) continue;
|
||||
@@ -361,8 +370,21 @@ class Campaign extends \Espo\Services\Record
|
||||
if (!empty($metTargetHash[$hashId])) {
|
||||
continue;
|
||||
}
|
||||
$targetEntityList[] = $e;
|
||||
$metTargetHash[$hashId] = true;
|
||||
|
||||
if ($campaign->get('mailMergeOnlyWithAddress')) {
|
||||
if (empty($addressFieldList)) continue;
|
||||
$hasAddress = false;
|
||||
foreach ($addressFieldList as $addressField) {
|
||||
if ($e->get($addressField . 'Street') || $e->get($addressField . 'PostalCode')) {
|
||||
$hasAddress = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$hasAddress) continue;
|
||||
}
|
||||
|
||||
$targetEntityList[] = $e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user