public static function processDueItem(OwnedModel $item) { assert('is_object($item)'); $emailMessageId = null; $itemId = $item->id; assert('static::$itemClass === "AutoresponderItem" || static::$itemClass === "CampaignItem"'); $contact = static::resolveContact($item); $itemOwnerModel = static::resolveItemOwnerModel($item); if ($itemOwnerModel->id < 0) { // the corresponding autoresponder/campaign has been deleted already. $item->delete(); return false; } static::$personId = $contact->getClassId('Person'); if (static::skipMessage($contact, $itemOwnerModel)) { static::createSkipActivity($itemId); } else { $marketingList = $itemOwnerModel->marketingList; assert('is_object($marketingList)'); assert('get_class($marketingList) === "MarketingList"'); $textContent = $itemOwnerModel->textContent; $htmlContent = null; if (static::supportsRichText($itemOwnerModel)) { $htmlContent = $itemOwnerModel->htmlContent; } static::resolveContent($textContent, $htmlContent, $contact, $itemOwnerModel->enableTracking, (int) $itemId, static::$itemClass, (int) $marketingList->id); try { $item->emailMessage = static::resolveEmailMessage($textContent, $htmlContent, $itemOwnerModel, $contact, $marketingList, $itemId); } catch (MissingRecipientsForEmailMessageException $e) { static::createSkipActivity($itemId); } } $marked = static::markItemAsProcessedWithSQL($itemId, $item->emailMessage->id); return $marked; }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); static::$user = User::getByUsername('super'); Yii::app()->user->userModel = static::$user; $contact = ContactTestHelper::createContactByNameForOwner('contact 01', static::$user); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 01', 'description 01', 'fromName 01', '*****@*****.**'); $autoresponder = AutoresponderTestHelper::createAutoresponder('subject 01', 'textContent 01', 'htmlContent 01', 10, Autoresponder::OPERATION_SUBSCRIBE, 1, $marketingList); $processed = 0; $processDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time() - 100); $autoresponderItem = AutoresponderItemTestHelper::createAutoresponderItem($processed, $processDateTime, $autoresponder, $contact); static::$personId = $contact->getClassId('Person'); static::$autoresponderItemId = $autoresponderItem->id; $campaign = CampaignTestHelper::createCampaign('campaign 01', 'subject 01', 'text Content 01', 'html Content 01', 'fromName 01', '*****@*****.**', null, Campaign::STATUS_ACTIVE, null, null, $marketingList); $processed = 0; $campaignItem = CampaignItemTestHelper::createCampaignItem($processed, $campaign, $contact); static::$campaignItemId = $campaignItem->id; AllPermissionsOptimizationUtil::rebuild(); }