$activity->copyValues($params);
if ($activity->find(TRUE)) {
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
}
$sourceContactId = self::getActivityContact($activity->id, $sourceID);
- $defaults['source_contact_id'] =
- $activity->source_contact_id = $sourceContactId;
+ $defaults['source_contact_id'] = $sourceContactId;
if ($sourceContactId &&
!CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact',
$logMsg = 'Case Activity deleted for';
$msgs = array();
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
// if not set and not 0
!CRM_Utils_Array::value('id', $params)
) {
- $priority = CRM_Core_PseudoConstant::priority();
+ $priority = CRM_Core_PseudoConstant::get('CRM_Activity_DAO_Activity', 'priority_id');
$params['priority_id'] = array_search('Normal', $priority);
}
}
$activityId = $activity->id;
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
}
}
- // write to changelog before transation is committed/rolled
+ // write to changelog before transaction is committed/rolled
// back (and prepare status to display)
if (CRM_Utils_Array::value('id', $params)) {
$logMsg = "Activity (id: {$result->id} ) updated with ";
$session = CRM_Core_Session::singleton();
$id = $session->get('userID');
if (!$id) {
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$id = self::getActivityContact($activity->id. $sourceID);
}
}
/**
- * function to get the list Actvities
+ * function to get the list Activities
*
* @param array $input array of parameters
* Keys include
- * - contact_id int contact_id whose activties we want to retrieve
+ * - contact_id int contact_id whose activities we want to retrieve
* - offset int which row to start from ?
* - rowCount int how many rows to fetch
* - sort object|array object or array describing sort order for sql query.
* - context string page on which selector is build
* - activity_type_id int|string the activitiy types we want to restrict by
*
- * @return array (reference) $values the relevant data object values of open activitie
+ * @return array (reference) $values the relevant data object values of open activities
*
* @access public
* @static
$sql = "CREATE TEMPORARY TABLE {$activityTempTable} ( ";
$insertValueSQL = array();
+ // The activityTempTable contains the sorted rows
+ // so in order to maintain the sort order as-is we add an auto_increment
+ // field; we can sort by this later to ensure the sort order stays correct.
+ $sql .= " fixed_sort_order INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,";
foreach ($tableFields as $name => $desc) {
$sql .= "$name $desc,\n";
$insertValueSQL[] = $name;
}
+ // add unique key on activity_id just to be sure
+ // this cannot be primary key because we need that for the auto_increment
+ // fixed_sort_order field
$sql .= "
- PRIMARY KEY ( activity_id )
+ UNIQUE KEY ( activity_id )
) ENGINE=HEAP DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
";
}
if (empty($order)) {
+ // context = 'activity' in Activities tab.
$order = (CRM_Utils_Array::value('context', $input) == 'activity') ? " ORDER BY tbl.activity_date_time desc " : " ORDER BY tbl.status_id asc, tbl.activity_date_time asc ";
}
CRM_Core_DAO::executeQuery($query);
// step 3: Combine all temp tables to get final query for activity selector
+ // sort by the original sort order, stored in fixed_sort_order
$query = "
SELECT {$activityTempTable}.*,
{$activityContactTempTable}.contact_id,
{$activityContactTempTable}.contact_name
FROM {$activityTempTable}
INNER JOIN {$activityContactTempTable} on {$activityTempTable}.activity_id = {$activityContactTempTable}.activity_id
+ORDER BY fixed_sort_order
";
$allCampaigns = CRM_Campaign_BAO_Campaign::getCampaigns(NULL, NULL, FALSE, FALSE, FALSE, TRUE);
$values = array();
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
*
* @param array $input array of parameters
* Keys include
- * - contact_id int contact_id whose activties we want to retrieve
+ * - contact_id int contact_id whose activities we want to retrieve
* - admin boolean if contact is admin
* - caseId int case ID
* - context string page on which selector is build
- * - activity_type_id int|string the activitiy types we want to restrict by
+ * - activity_type_id int|string the activity types we want to restrict by
*
* @return int count of activities
*
*
* @param array $input array of parameters
* Keys include
- * - contact_id int contact_id whose activties we want to retrieve
+ * - contact_id int contact_id whose activities we want to retrieve
* - admin boolean if contact is admin
* - caseId int case ID
* - context string page on which selector is build
* - count boolean are we interested in the count clause only?
- * - activity_type_id int|string the activitiy types we want to restrict by
+ * - activity_type_id int|string the activity types we want to restrict by
*
* @return int count of activities
*
civicrm_activity.activity_date_time,
civicrm_activity.status_id,
civicrm_activity.subject,
- civicrm_activity.source_contact_id,
+ ac.contact_id,
civicrm_activity.source_record_id,
civicrm_option_value.value as activity_type_id,
civicrm_option_value.label as activity_type,
* @param int $userID use this userID if set
* @param string $from
* @param array $attachments the array of attachments if any
- * @param string $cc cc recepient
- * @param string $bcc bcc recepient
+ * @param string $cc cc recipient
+ * @param string $bcc bcc recipient
* @param array $contactIds contact ids
*
* @return array ( sent, activityId) if any email is sent and activityId
$tokenText,
$tokenHtml,
$smsParams,
- $activityID
+ $activityID,
+ $userID
);
if (PEAR::isError($sendResult)) {
&$tokenText,
&$tokenHtml,
$smsParams = array(),
- $activityID
+ $activityID,
+ $userID = null
) {
$toDoNotSms = "";
$toPhoneNumber = "";
$smsParams['parent_activity_id'] = $activityID;
$providerObj = CRM_SMS_Provider::singleton(array('provider_id' => $smsParams['provider_id']));
- $sendResult = $providerObj->send($recipient, $smsParams, $message, NULL);
+ $sendResult = $providerObj->send($recipient, $smsParams, $message, NULL, $userID);
if (PEAR::isError($sendResult)) {
return $sendResult;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
$toDisplayName = $toEmail;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
//$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
//$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
*/
static function getContactActivity($contactId) {
$activities = array();
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
/**
* Function to add activity for Membership/Event/Contribution
*
- * @param object $activity (reference) perticular component object
+ * @param object $activity (reference) particular component object
* @param string $activityType for Membership Signup or Renewal
*
*
$component = 'Membership';
}
elseif ($activity->__table == 'civicrm_participant') {
- $event = CRM_Event_BAO_Event::getEvents(TRUE, $activity->event_id, TRUE, FALSE);
+ $event = CRM_Event_BAO_Event::getEvents(1, $activity->event_id, TRUE, FALSE);
$roles = CRM_Event_PseudoConstant::participantRole();
$status = CRM_Event_PseudoConstant::participantStatus();
}
/**
- * Function to get Parent activity for currently viewd activity
+ * Function to get Parent activity for currently viewed activity
*
* @param int $activityId current activity id
*
- * @return int $parentId Id of parent acyivity otherwise false.
+ * @return int $parentId Id of parent activity otherwise false.
* @access public
*/
static function getParentActivity($activityId) {
*
* @param int $activityId current activity id
*
- * @return int $params count of prior acyivities otherwise false.
+ * @return int $params count of prior activities otherwise false.
* @access public
*/
static function getPriorCount($activityID) {
}
/**
- * Function to get all prior activities of currently viewd activity
+ * Function to get all prior activities of currently viewe
+ * d activity
*
* @param int $activityId current activity id
*
- * @return array $result prior acyivities info.
+ * @return array $result prior activities info.
* @access public
*/
static function getPriorAcitivities($activityID, $onlyPriorRevisions = FALSE) {
if (!$contactId) {
return $result;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$transaction = new CRM_Core_Transaction();
while ($activityContact->fetch()) {
// finally delete activity.
- if (CRM_Core_DAO::singleValueQuery($sql)) {
- $activityParams = array('id' => $activityContact->activity_id);
- $result = self::deleteActivity($activityParams);
- }
+ $activityParams = array('id' => $activityContact->activity_id);
+ $result = self::deleteActivity($activityParams);
}
$activityContact->free();
$permission = CRM_Core_Permission::EDIT;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
public static function getSourceContactID($activityId) {
static $sourceID = NULL;
if (!$sourceID) {
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
}