示例#1
0
 /**
  * adds $value['foo_display'] for each $value['foo'] enum from civicrm_phonecall
  *
  * @param array $values (reference)  the array up for enhancing
  * @return void
  */
 function addDisplayEnums(&$values)
 {
     $enumFields =& CRM_Core_DAO_Phonecall::getEnums();
     foreach ($enumFields as $enum) {
         if (isset($values[$enum])) {
             $values[$enum . '_display'] = CRM_Core_DAO_Phonecall::tsEnum($enum, $values[$enum]);
         }
     }
 }
示例#2
0
 /**
  * function to get the list of open Actvities
  *
  * @param array reference $params  array of parameters 
  * @param int     $offset          which row to start from ?
  * @param int     $rowCount        how many rows to fetch
  * @param object|array  $sort      object or array describing sort order for sql query.
  * @param type    $type            type of history we're interested in
  *
  * @return array (reference)      $values the relevant data object values of open activitie
  *
  * @access public
  * @static
  */
 function &getOpenActivities(&$params, $offset = null, $rowCount = null, $sort = null, $type = 'Activity')
 {
     require_once 'CRM/Core/DAO/Phonecall.php';
     $dao =& new CRM_Core_DAO();
     $contactId = CRM_Utils_Type::escape($params['contact_id'], 'Integer');
     $query = "\n( SELECT\n    civicrm_phonecall.id as id,\n    civicrm_phonecall.source_contact_id as source_contact_id, \n    civicrm_phonecall.target_entity_id as  target_contact_id,\n    civicrm_phonecall.subject as subject,\n    civicrm_phonecall.scheduled_date_time as date,\n    civicrm_phonecall.status as status,\n    source.display_name as sourceName,\n    target.display_name as targetName,\n    civicrm_activity_type.id  as activity_type_id,\n    civicrm_activity_type.name  as activity_type\n  FROM civicrm_activity_type, civicrm_phonecall, civicrm_contact source, civicrm_contact target\n  WHERE\n    civicrm_activity_type.id = 2 AND\n    civicrm_phonecall.source_contact_id = source.id AND\n    civicrm_phonecall.target_entity_table = 'civicrm_contact' AND\n    civicrm_phonecall.target_entity_id = target.id AND\n    ( civicrm_phonecall.source_contact_id = {$contactId}\n    OR civicrm_phonecall.target_entity_id = {$contactId} )\n    AND civicrm_phonecall.status != 'Completed'\n ) UNION\n( SELECT   \n    civicrm_meeting.id as id,\n    civicrm_meeting.source_contact_id as source_contact_id,\n    civicrm_meeting.target_entity_id as  target_contact_id,\n    civicrm_meeting.subject as subject,\n    civicrm_meeting.scheduled_date_time as date,\n    civicrm_meeting.status as status,\n    source.display_name as sourceName,\n    target.display_name as targetName,\n    civicrm_activity_type.id  as activity_type_id,\n    civicrm_activity_type.name  as activity_type\n  FROM civicrm_activity_type, civicrm_meeting, civicrm_contact source, civicrm_contact target\n  WHERE\n    civicrm_activity_type.id = 1 AND\n    civicrm_meeting.source_contact_id = source.id AND\n    civicrm_meeting.target_entity_table = 'civicrm_contact' AND\n    civicrm_meeting.target_entity_id = target.id AND\n    ( civicrm_meeting.source_contact_id = {$contactId}\n    OR civicrm_meeting.target_entity_id = {$contactId} )\n    AND civicrm_meeting.status != 'Completed'\n) UNION\n( SELECT   \n    civicrm_activity.id as id,\n    civicrm_activity.source_contact_id as source_contact_id,\n    civicrm_activity.target_entity_id as  target_contact_id,\n    civicrm_activity.subject as subject,\n    civicrm_activity.scheduled_date_time as date,\n    civicrm_activity.status as status,\n    source.display_name as sourceName,\n    target.display_name as targetName,\n    civicrm_activity_type.id  as activity_type_id,\n    civicrm_activity_type.name  as activity_type\n  FROM civicrm_activity, civicrm_contact source, civicrm_contact target ,civicrm_activity_type\n  WHERE\n    civicrm_activity.source_contact_id = source.id AND\n    civicrm_activity.target_entity_table = 'civicrm_contact' AND\n    civicrm_activity.target_entity_id = target.id AND\n    ( civicrm_activity.source_contact_id = {$contactId}\n    OR civicrm_activity.target_entity_id = {$contactId} ) AND\n    civicrm_activity_type.id = civicrm_activity.activity_type_id AND civicrm_activity_type.is_active = 1 AND \n    civicrm_activity.status != 'Completed'\n            )\n";
     $order = '';
     if ($sort) {
         $orderBy = $sort->orderBy();
         if (!empty($orderBy)) {
             $order = " ORDER BY {$orderBy}";
         }
     }
     if (empty($order)) {
         $order = " ORDER BY date desc ";
     }
     if ($rowCount > 0) {
         $limit = " LIMIT {$offset}, {$rowCount} ";
     }
     $queryString = $query . $order . $limit;
     $dao->query($queryString);
     $values = array();
     $rowCnt = 0;
     while ($dao->fetch()) {
         $values[$rowCnt]['activity_type_id'] = $dao->activity_type_id;
         $values[$rowCnt]['activity_type'] = $dao->activity_type;
         $values[$rowCnt]['id'] = $dao->id;
         $values[$rowCnt]['subject'] = $dao->subject;
         $values[$rowCnt]['date'] = $dao->date;
         $values[$rowCnt]['status'] = $dao->status;
         $values[$rowCnt]['sourceName'] = $dao->sourceName;
         $values[$rowCnt]['targetName'] = $dao->targetName;
         $values[$rowCnt]['sourceID'] = $dao->source_contact_id;
         $values[$rowCnt]['targetID'] = $dao->target_contact_id;
         $rowCnt++;
     }
     foreach ($values as $key => $array) {
         CRM_Core_DAO_Meeting::addDisplayEnums($values[$key]);
         CRM_Core_DAO_Phonecall::addDisplayEnums($values[$key]);
     }
     return $values;
 }