Beispiel #1
0
 function _createMessageRecipient($account_id, $message_id, $message_text)
 {
     $logger = DevblocksPlatform::getConsoleLog();
     $current_time = time();
     $status = TRUE;
     // Return TRUE status unless something sets it to false
     // Now we grab the Customer Recipient and create Message Recipients
     if ($account_id) {
         // This isn't really needed but you can never be two safe
         $ids_cr = DAO_CustomerRecipient::getWhere(sprintf("%s = %d", DAO_CustomerRecipient::ACCOUNT_ID, $account_id));
         foreach ($ids_cr as $cr_id => $cr) {
             if ($cr->type == 255) {
                 $ids_slave_cr = DAO_CustomerRecipient::getWhere(sprintf("%s = %d", DAO_CustomerRecipient::ACCOUNT_ID, $cr->address));
                 foreach ($ids_slave_cr as $cr_slave_id => $cr_slave) {
                     $this->_createIndividualMessageRecipient($cr_slave_id, $account_id, $message_id, $message_text, $current_time);
                 }
             } else {
                 $this->_createIndividualMessageRecipient($cr_id, $account_id, $message_id, $message_text, $current_time);
             }
         }
     }
     return $status;
 }
Beispiel #2
0
 /**
  * @param Model_DevblocksEvent $event
  */
 function handleEvent(Model_DevblocksEvent $event)
 {
     $translate = DevblocksPlatform::getTranslationService();
     switch ($event->id) {
         case 'cron.maint':
             DAO_MessageAuditLog::maint();
             break;
         case 'cron.import':
             // Is a worker around to invoke this change?  0 = automatic
             /*
                         	@$worker_id = (null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id))
                         		? $active_worker->id
                         		: 0;
             	            		
                        		$fields = array(
             	DAO_MessageAuditLog::WORKER_ID => $worker_id,
             	DAO_MessageAuditLog::ACCOUNT_ID => 0,
             	DAO_MessageAuditLog::RECIPIENT_ID => 0,
             	DAO_MessageAuditLog::MESSAGE_ID => 0,
             	DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0,
             	DAO_MessageAuditLog::CHANGE_DATE => time(),
             	DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cron.import',
             	DAO_MessageAuditLog::CHANGE_VALUE => 'Cron Importer Ran',
                        		);
             $log_id = DAO_MessageAuditLog::create($fields);
             */
             break;
         case 'cron.reprocessing.accounts':
             @($account_id = $event->params['account_id']);
             @($message_id = $event->params['message_id']);
             @($import_source = $event->params['import_source']);
             if ($account_id == 0) {
                 break;
             }
             // Is a worker around to invoke this change?  0 = automatic
             @($worker_id = null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id) ? $active_worker->id : 0);
             $fields = array(DAO_MessageAuditLog::WORKER_ID => $worker_id, DAO_MessageAuditLog::ACCOUNT_ID => $account_id, DAO_MessageAuditLog::RECIPIENT_ID => 0, DAO_MessageAuditLog::MESSAGE_ID => $message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cf.message.status', DAO_MessageAuditLog::CHANGE_VALUE => sprintf("Message ID %d assocated to Account ID %d", $message_id, $account_id));
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'cron.export':
             // Is a worker around to invoke this change?  0 = automatic
             /*
                         	@$worker_id = (null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id))
                         		? $active_worker->id
                         		: 0;
             	            		
                        		$fields = array(
             	DAO_MessageAuditLog::WORKER_ID => $worker_id,
             	DAO_MessageAuditLog::ACCOUNT_ID => 0,
             	DAO_MessageAuditLog::RECIPIENT_ID => 0,
             	DAO_MessageAuditLog::MESSAGE_ID => 0,
             	DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0,
             	DAO_MessageAuditLog::CHANGE_DATE => time(),
             	DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cron.export',
             	DAO_MessageAuditLog::CHANGE_VALUE => 'Cron Exporter Ran',
                        		);
             $log_id = DAO_MessageAuditLog::create($fields);
             */
             break;
         case 'cron.send.email':
             @($recipient = $event->params['recipient']);
             @($message = $event->params['message']);
             @($message_recipient = $event->params['message_recipient']);
             @($message_text = $event->params['message_text']);
             @($send_status = $event->params['send_status']);
             $fields = array(DAO_MessageAuditLog::WORKER_ID => 0, DAO_MessageAuditLog::ACCOUNT_ID => $message_recipient->account_id, DAO_MessageAuditLog::RECIPIENT_ID => $message_recipient->recipient_id, DAO_MessageAuditLog::MESSAGE_ID => $message_recipient->message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => $message_recipient->id, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cs.message.email.send', DAO_MessageAuditLog::CHANGE_VALUE => $send_status ? "Successful Sent" : "Failed to Send");
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'cron.queue.fax':
             @($recipient = $event->params['recipient']);
             @($message = $event->params['message']);
             @($message_recipient = $event->params['message_recipient']);
             @($message_text = $event->params['message_text']);
             @($queue_status = $event->params['queue_status']);
             @($fax_id = $event->params['fax_id']);
             $fields = array(DAO_MessageAuditLog::WORKER_ID => 0, DAO_MessageAuditLog::ACCOUNT_ID => $message_recipient->account_id, DAO_MessageAuditLog::RECIPIENT_ID => $message_recipient->recipient_id, DAO_MessageAuditLog::MESSAGE_ID => $message_recipient->message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => $message_recipient->id, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cs.message.fax.queue', DAO_MessageAuditLog::CHANGE_VALUE => $queue_status ? "Fax successful queue with ID: " . $fax_id : "Failed to Queue");
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'cron.send.snpp':
             @($recipient = $event->params['recipient']);
             @($message = $event->params['message']);
             @($message_recipient = $event->params['message_recipient']);
             @($message_text = $event->params['message_text']);
             @($send_status = $event->params['send_status']);
             $fields = array(DAO_MessageAuditLog::WORKER_ID => 0, DAO_MessageAuditLog::ACCOUNT_ID => $message_recipient->account_id, DAO_MessageAuditLog::RECIPIENT_ID => $message_recipient->recipient_id, DAO_MessageAuditLog::MESSAGE_ID => $message_recipient->message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => $message_recipient->id, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cs.message.snpp.send', DAO_MessageAuditLog::CHANGE_VALUE => $send_status ? "Successful Sent" : "Failed to Send");
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'dao.customer.account.update':
             @($objects = $event->params['objects']);
             foreach ($objects as $object_id => $object) {
                 $model = $object['model'];
                 $changes = $object['changes'];
                 // Filter out any changes we could care less about
                 //unset($changes[DAO_CustomerAccount::IS_DISABLED]);
                 // Is a worker around to invoke this change?  0 = automatic
                 @($worker_id = null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id) ? $active_worker->id : 0);
                 if (!empty($changes)) {
                     foreach ($changes as $key => $change) {
                         $value = $change['to'];
                         if (is_array($value)) {
                             $value = implode("\r\n", $value);
                         }
                         $fields = array(DAO_MessageAuditLog::WORKER_ID => $worker_id, DAO_MessageAuditLog::ACCOUNT_ID => $model['id'], DAO_MessageAuditLog::RECIPIENT_ID => 0, DAO_MessageAuditLog::MESSAGE_ID => 0, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => "auditlog.ca." . $key, DAO_MessageAuditLog::CHANGE_VALUE => substr($value, 0, 128));
                         $log_id = DAO_MessageAuditLog::create($fields);
                     }
                 }
             }
             break;
         case 'dao.customer.recipient.update':
             @($objects = $event->params['objects']);
             foreach ($objects as $object_id => $object) {
                 $model = $object['model'];
                 $changes = $object['changes'];
                 // Filter out any changes we could care less about
                 //unset($changes[DAO_CustomerAccount::IS_DISABLED]);
                 // Is a worker around to invoke this change?  0 = automatic
                 @($worker_id = null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id) ? $active_worker->id : 0);
                 if (!empty($changes)) {
                     foreach ($changes as $key => $change) {
                         $value = $change['to'];
                         if (is_array($value)) {
                             $value = implode("\r\n", $value);
                         }
                         if ($key == 'cr.type') {
                             $value = $translate->_('auditlog.cr.type_' . $value);
                             if ($value == "") {
                                 $value = $translate->_('auditlog.cr.type_unknown');
                             }
                         }
                         $fields = array(DAO_MessageAuditLog::WORKER_ID => $worker_id, DAO_MessageAuditLog::ACCOUNT_ID => $model['account_id'], DAO_MessageAuditLog::RECIPIENT_ID => $model['id'], DAO_MessageAuditLog::MESSAGE_ID => 0, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => "auditlog.cr." . $key, DAO_MessageAuditLog::CHANGE_VALUE => substr($value, 0, 128));
                         $log_id = DAO_MessageAuditLog::create($fields);
                     }
                 }
             }
             break;
         case 'message.account.assign':
             @($account_id = $event->params['account_id']);
             @($message_id = $event->params['message_id']);
             // Is a worker around to invoke this change?  0 = automatic
             @($worker_id = null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id) ? $active_worker->id : 0);
             $account = DAO_CustomerAccount::get($account_id);
             $assign_text = "Message id: " . $message_id . " assigned to account: " . $account->account_number;
             $fields = array(DAO_MessageAuditLog::WORKER_ID => $worker_id, DAO_MessageAuditLog::ACCOUNT_ID => $account_id, DAO_MessageAuditLog::RECIPIENT_ID => 0, DAO_MessageAuditLog::MESSAGE_ID => $message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cf.message.assign', DAO_MessageAuditLog::CHANGE_VALUE => $assign_text);
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'message.create':
             @($account_id = $event->params['account_id']);
             @($message_id = $event->params['message_id']);
             @($message_text = $event->params['message_text']);
             $fields = array(DAO_MessageAuditLog::WORKER_ID => 0, DAO_MessageAuditLog::ACCOUNT_ID => $account_id, DAO_MessageAuditLog::RECIPIENT_ID => 0, DAO_MessageAuditLog::MESSAGE_ID => $message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cf.message.created', DAO_MessageAuditLog::CHANGE_VALUE => sprintf("Message created for account %d", $account_id));
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'message.recipient.create':
             @($account_id = $event->params['account_id']);
             @($recipient_id = $event->params['recipient_id']);
             @($message_id = $event->params['message_id']);
             @($message_recipient_id = $event->params['message_recipient_id']);
             @($message_text = $event->params['message_text']);
             $cr_id = array_shift(DAO_CustomerRecipient::getWhere(sprintf("%s = %d", DAO_CustomerRecipient::ID, $recipient_id)));
             switch ($cr_id->type) {
                 case 0:
                     // Email
                     @($send_type = "Email");
                     break;
                 case 1:
                     // Fax
                     @($send_type = "Fax");
                     break;
                 case 2:
                     // SNPP
                     @($send_type = "Page");
                     break;
                 default:
                     @($send_type = "Unknown");
                     break;
             }
             @($change_value = sprintf("%s Scheduled for %s <'%s'>", $send_type, $cr_id->address_to, $cr_id->address));
             $fields = array(DAO_MessageAuditLog::WORKER_ID => 0, DAO_MessageAuditLog::ACCOUNT_ID => $account_id, DAO_MessageAuditLog::RECIPIENT_ID => $recipient_id, DAO_MessageAuditLog::MESSAGE_ID => $message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => $message_recipient_id, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cf.message.recipient.created', DAO_MessageAuditLog::CHANGE_VALUE => $change_value);
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'message.recipient.status':
             @($message_recipient_id = $event->params['message_recipient_id']);
             @($account_id = $event->params['account_id']);
             @($recipient_id = $event->params['recipient_id']);
             @($message_id = $event->params['message_id']);
             @($send_status = $event->params['send_status']);
             // Is a worker around to invoke this change?  0 = automatic
             @($worker_id = null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id) ? $active_worker->id : 0);
             $status_text = $translate->_('feg.message_recipient.status_' . $send_status);
             if ($status_text == "") {
                 $status_text = $translate->_('feg.core.send_status.unknown');
             }
             $fields = array(DAO_MessageAuditLog::WORKER_ID => $worker_id, DAO_MessageAuditLog::ACCOUNT_ID => $account_id, DAO_MessageAuditLog::RECIPIENT_ID => $recipient_id, DAO_MessageAuditLog::MESSAGE_ID => $message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => $message_recipient_id, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cf.message.recipient.status', DAO_MessageAuditLog::CHANGE_VALUE => $status_text);
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
         case 'message.status':
             @($account_id = $event->params['account_id']);
             @($message_id = $event->params['message_id']);
             @($import_status = $event->params['import_status']);
             // Is a worker around to invoke this change?  0 = automatic
             @($worker_id = null != ($active_worker = FegApplication::getActiveWorker()) && !empty($active_worker->id) ? $active_worker->id : 0);
             $status_text = $translate->_('feg.message.import_status_' . $import_status);
             if ($status_text == "") {
                 $status_text = $translate->_('feg.core.send_status.unknown');
             }
             $fields = array(DAO_MessageAuditLog::WORKER_ID => $worker_id, DAO_MessageAuditLog::ACCOUNT_ID => $account_id, DAO_MessageAuditLog::RECIPIENT_ID => 0, DAO_MessageAuditLog::MESSAGE_ID => $message_id, DAO_MessageAuditLog::MESSAGE_RECIPIENT_ID => 0, DAO_MessageAuditLog::CHANGE_DATE => time(), DAO_MessageAuditLog::CHANGE_FIELD => 'auditlog.cf.message.status', DAO_MessageAuditLog::CHANGE_VALUE => $status_text);
             $log_id = DAO_MessageAuditLog::create($fields);
             break;
     }
 }