/** * This should be called if a user is bounced or blacklisted * all related subscriptions and active senditems will be updated * * @param $status * @return unknown_type */ private function setAllNewsletterUserRelatedItemsToStatus($status) { $newsletterUserId = $this->attribute('id'); $updateSubcriptions = false; switch ($status) { case CjwNewsletterSubscription::STATUS_BOUNCED_SOFT: case CjwNewsletterSubscription::STATUS_BOUNCED_HARD: $bounceCount = CjwNewsletterEditionSendItem::setAllActiveItemsToStatusAbortAndBouncedByNewsletterUserId($newsletterUserId); $updateSubcriptions = true; break; case CjwNewsletterSubscription::STATUS_BLACKLISTED: // update active senditems $abortCount = CjwNewsletterEditionSendItem::setAllActiveItemsToStatusAbortByNewsletterUserId($newsletterUserId); $updateSubcriptions = true; break; } if ($updateSubcriptions === true) { // update active subscriptions $activeSubscriptionList = CjwNewsletterSubscription::fetchListNotRemovedOrBlacklistedByNewsletterUserId($newsletterUserId, true); foreach ($activeSubscriptionList as $subscription) { if ($subscription->attribute('status') == $status) { CjwNewsletterLog::writeDebug('skip - already set this status - CjwNewsletterUser::setAllNewsletterUserRelatedItemsToStatus', 'subscription', 'status', array('status' => $status, 'subscription_id' => $subscription->attribute('id'), 'nl_user' => $newsletterUserId)); } else { $subscription->setAttribute('status', $status); $subscription->store(); /* CjwNewsletterLog::writeDebug( 'set CjwNewsletterUser::setAllNewsletterUserRelatedItemsToStatus', 'subscription', 'status', array( 'status' => $status, 'subscription_id' => $subscription->attribute('id'), 'nl_user' => $newsletterUserId ) ); */ } } } }