}
}
- static function buildRecipientContacts($mappingID, $now) {
+ static function buildRecipientContacts($mappingID, $now, $params = array()) {
$actionSchedule = new CRM_Core_DAO_ActionSchedule();
$actionSchedule->mapping_id = $mappingID;
$actionSchedule->is_active = 1;
+ if(!empty($params)) {
+ _civicrm_api3_dao_set_filter($actionSchedule, $params, FALSE, 'ActionSchedule');
+ }
$actionSchedule->find();
while ($actionSchedule->fetch()) {
return NULL;
}
- static function processQueue($now = NULL) {
+ static function processQueue($now = NULL, $params = array()) {
$now = $now ? CRM_Utils_Time::setTime($now) : CRM_Utils_Time::getTime();
$mappings = self::getMapping();
foreach ($mappings as $mappingID => $mapping) {
- self::buildRecipientContacts($mappingID, $now);
+ self::buildRecipientContacts($mappingID, $now, $params);
self::sendMailings($mappingID, $now);
}
return civicrm_api3_create_error('Could not acquire lock, another EmailProcessor process is running');
}
- $result = CRM_Core_BAO_ActionSchedule::processQueue(CRM_Utils_Array::value('now', $params));
+ $result = CRM_Core_BAO_ActionSchedule::processQueue(CRM_Utils_Array::value('now', $params), $params);
$lock->release();
if ($result['is_error'] == 0) {
return civicrm_api3_create_error($result['messages']);
}
}
-
+/**
+ * Adjust metadata for "send_reminder" action
+ *
+ * The metadata is used for setting defaults, documentation & validation
+ * @param array $params array or parameters determined by getfields
+ */
+function _civicrm_api3_job_send_reminder(&$params) {
+ //@todo this function will now take all fields in action_schedule as params
+ // as it is calling the api fn to set the filters - update getfields to reflect
+ $params['id'] = array(
+ 'type' => CRM_Utils_Type::T_INT,
+ 'title' => 'Action Schedule ID'
+ );
+}
/**
* Execute a specific report instance and send the output via email
*