Add per-subscriber rescheduling functionality for automatic emails

[PREMIUM-121]
This commit is contained in:
Jan Jakeš
2019-06-25 11:32:28 +02:00
committed by M. Shull
parent 440ed0aa23
commit dc5fa12b8e
2 changed files with 70 additions and 5 deletions

View File

@ -138,4 +138,20 @@ class ScheduledTask extends Model {
'WHERE `id` IN (' . join(',', $ids) . ')'
);
}
/**
* @return ScheduledTask|null
*/
static function findOneScheduledByNewsletterIdAndSubscriberId($newsletter_id, $subscriber_id) {
return ScheduledTask::tableAlias('tasks')
->select('tasks.*')
->innerJoin(SendingQueue::$_table, 'queues.task_id = tasks.id', 'queues')
->innerJoin(ScheduledTaskSubscriber::$_table, 'task_subscribers.task_id = tasks.id', 'task_subscribers')
->where('queues.newsletter_id', $newsletter_id)
->where('tasks.status', ScheduledTask::STATUS_SCHEDULED)
->where('task_subscribers.subscriber_id', $subscriber_id)
->whereNull('queues.deleted_at')
->whereNull('tasks.deleted_at')
->findOne() ?: null;
}
}