campaign: dont count test in statistics

This commit is contained in:
yuri
2016-02-12 11:40:45 +02:00
parent e80681da22
commit edc967c118
7 changed files with 42 additions and 25 deletions
@@ -80,7 +80,7 @@ class CampaignTrackOpened extends \Espo\Core\EntryPoints\Base
return;
}
$campaignService = $this->getServiceFactory()->create('Campaign');
$campaignService->logOpened($campaignId, $queueItemId, $target);
$campaignService->logOpened($campaignId, $queueItemId, $target, null, $queueItem->get('isTest'));
}
}
@@ -72,7 +72,7 @@ class CampaignUrl extends \Espo\Core\EntryPoints\Base
if ($campaign && $target) {
$campaignService = $this->getServiceFactory()->create('Campaign');
$campaignService->logClicked($campaignId, $queueItemId, $target, $trackingUrl);
$campaignService->logClicked($campaignId, $queueItemId, $target, $trackingUrl, null, $queueItem->get('isTest'));
}
ob_clean();
@@ -108,7 +108,7 @@ class Unsubscribe extends \Espo\Core\EntryPoints\Base
if ($campaign && $target) {
$campaignService = $this->getServiceFactory()->create('Campaign');
$campaignService->logOptedOut($campaignId, $queueItemId, $target, $queueItem->get('emailAddress'));
$campaignService->logOptedOut($campaignId, $queueItemId, $target, $queueItem->get('emailAddress'), null, $queueItem->get('isTest'));
}
}
@@ -12,7 +12,7 @@
},
"data": {
"type": "jsonObject",
"view": "Crm:CampaignLogRecord.Fields.Data"
"view": "crm:views/campaign-log-record/fields/data"
},
"stringData": {
"type": "varchar",
@@ -47,6 +47,10 @@
},
"queueItem": {
"type": "link"
},
"isTest": {
"type": "bool",
"default": false
}
},
"links": {
@@ -37,16 +37,17 @@ class Campaign extends \Espo\Services\Record
{
parent::loadAdditionalFields($entity);
$sentCount = $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'campaignId' => $entity->id,
'action' => 'Sent'
'action' => 'Sent',
'isTest' => false
))->count();
$entity->set('sentCount', $sentCount);
$openedCount = $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'campaignId' => $entity->id,
'action' => 'Opened'
'action' => 'Opened',
'isTest' => false
))->count();
$entity->set('openedCount', $openedCount);
@@ -58,7 +59,8 @@ class Campaign extends \Espo\Services\Record
$clickedCount = $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'campaignId' => $entity->id,
'action' => 'Clicked'
'action' => 'Clicked',
'isTest' => false
))->count();
$entity->set('clickedCount', $clickedCount);
@@ -70,7 +72,8 @@ class Campaign extends \Espo\Services\Record
$optedOutCount = $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'campaignId' => $entity->id,
'action' => 'Opted Out'
'action' => 'Opted Out',
'isTest' => false
))->count();
$entity->set('optedOutCount', $optedOutCount);
@@ -82,7 +85,8 @@ class Campaign extends \Espo\Services\Record
$bouncedCount = $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'campaignId' => $entity->id,
'action' => 'Bounced'
'action' => 'Bounced',
'isTest' => false
))->count();
$entity->set('bouncedCount', $bouncedCount);
@@ -126,7 +130,7 @@ class Campaign extends \Espo\Services\Record
}
}
public function logSent($campaignId, $queueItemId = null, Entity $target, Entity $emailOrEmailTemplate = null, $emailAddress, $actionDate = null)
public function logSent($campaignId, $queueItemId = null, Entity $target, Entity $emailOrEmailTemplate = null, $emailAddress, $actionDate = null, $isTest = false)
{
if (empty($actionDate)) {
$actionDate = date('Y-m-d H:i:s');
@@ -139,7 +143,8 @@ class Campaign extends \Espo\Services\Record
'parentType' => $target->getEntityType(),
'action' => 'Sent',
'stringData' => $emailAddress,
'queueItemId' => $queueItemId
'queueItemId' => $queueItemId,
'isTest' => $isTest
));
if ($emailOrEmailTemplate) {
@@ -151,11 +156,12 @@ class Campaign extends \Espo\Services\Record
$this->getEntityManager()->saveEntity($logRecord);
}
public function logBounced($campaignId, $queueItemId = null, Entity $target, $emailAddress, $isHard = false, $actionDate = null)
public function logBounced($campaignId, $queueItemId = null, Entity $target, $emailAddress, $isHard = false, $actionDate = null, $isTest = false)
{
if ($queueItemId && $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'queueItemId' => $queueItemId,
'action' => 'Bounced'
'action' => 'Bounced',
'isTest' => $isTest
))->findOne()) {
return;
}
@@ -170,7 +176,8 @@ class Campaign extends \Espo\Services\Record
'parentType' => $target->getEntityType(),
'action' => 'Bounced',
'stringData' => $emailAddress,
'queueItemId' => $queueItemId
'queueItemId' => $queueItemId,
'isTest' => $isTest
));
if ($isHard) {
$logRecord->set('stringAdditionalData', 'Hard');
@@ -180,11 +187,12 @@ class Campaign extends \Espo\Services\Record
$this->getEntityManager()->saveEntity($logRecord);
}
public function logOptedOut($campaignId, $queueItemId = null, Entity $target, $emailAddress = null, $actionDate = null)
public function logOptedOut($campaignId, $queueItemId = null, Entity $target, $emailAddress = null, $actionDate = null, $isTest = false)
{
if ($queueItemId && $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'queueItemId' => $queueItemId,
'action' => 'Opted Out'
'action' => 'Opted Out',
'isTest' => $isTest
))->findOne()) {
return;
}
@@ -199,12 +207,13 @@ class Campaign extends \Espo\Services\Record
'parentType' => $target->getEntityType(),
'action' => 'Opted Out',
'stringData' => $emailAddress,
'queueItemId' => $queueItemId
'queueItemId' => $queueItemId,
'isTest' => $isTest
));
$this->getEntityManager()->saveEntity($logRecord);
}
public function logOpened($campaignId, $queueItemId = null, Entity $target, $actionDate = null)
public function logOpened($campaignId, $queueItemId = null, Entity $target, $actionDate = null, $isTest = false)
{
if (empty($actionDate)) {
$actionDate = date('Y-m-d H:i:s');
@@ -213,6 +222,7 @@ class Campaign extends \Espo\Services\Record
if ($queueItemId && $this->getEntityManager()->getRepository('CampaignLogRecord')->where(array(
'queueItemId' => $queueItemId,
'action' => 'Opened',
'isTest' => $isTest
))->findOne()) {
return;
}
@@ -229,14 +239,15 @@ class Campaign extends \Espo\Services\Record
'action' => 'Opened',
'objectId' => $massEmail->get('emailTemplateId'),
'objectType' => 'EmailTemplate',
'queueItemId' => $queueItemId
'queueItemId' => $queueItemId,
'isTest' => $isTest
));
$this->getEntityManager()->saveEntity($logRecord);
}
}
}
public function logClicked($campaignId, $queueItemId = null, Entity $target, Entity $trackingUrl, $actionDate = null)
public function logClicked($campaignId, $queueItemId = null, Entity $target, Entity $trackingUrl, $actionDate = null, $isTest = false)
{
$this->logOpened($campaignId, $queueItemId, $target);
@@ -244,7 +255,8 @@ class Campaign extends \Espo\Services\Record
'queueItemId' => $queueItemId,
'action' => 'Clicked',
'objectId' => $trackingUrl->id,
'objectType' => $trackingUrl->getEntityType()
'objectType' => $trackingUrl->getEntityType(),
'isTest' => $isTest
))->findOne()) {
return;
}
@@ -261,7 +273,8 @@ class Campaign extends \Espo\Services\Record
'action' => 'Clicked',
'objectId' => $trackingUrl->id,
'objectType' => $trackingUrl->getEntityType(),
'queueItemId' => $queueItemId
'queueItemId' => $queueItemId,
'isTest' => $isTest
));
$this->getEntityManager()->saveEntity($logRecord);
}
@@ -457,7 +457,7 @@ class MassEmail extends \Espo\Services\Record
$this->getEntityManager()->saveEntity($queueItem);
if ($campaign) {
$this->getCampaignService()->logSent($campaign->id, $queueItem->id, $target, $emailObject, $target->get('emailAddress'));
$this->getCampaignService()->logSent($campaign->id, $queueItem->id, $target, $emailObject, $target->get('emailAddress'), null, $queueItem->get('isTest'));
}
} catch (\Exception $e) {
+1 -1
View File
@@ -660,7 +660,7 @@ class InboundEmail extends \Espo\Services\Record
}
if ($campaignId && $target && $target->id) {
$this->getCampaignService()->logBounced($campaignId, $queueItemId, $target, $emailAddress, $isHard);
$this->getCampaignService()->logBounced($campaignId, $queueItemId, $target, $emailAddress, $isHard, null, $queueItem->get('isTest'));
}
}
}