当前位置: 首页>>代码示例>>PHP>>正文


PHP CRM_Campaign_BAO_Survey::getSurveyVoterInfo方法代码示例

本文整理汇总了PHP中CRM_Campaign_BAO_Survey::getSurveyVoterInfo方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Campaign_BAO_Survey::getSurveyVoterInfo方法的具体用法?PHP CRM_Campaign_BAO_Survey::getSurveyVoterInfo怎么用?PHP CRM_Campaign_BAO_Survey::getSurveyVoterInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CRM_Campaign_BAO_Survey的用法示例。


在下文中一共展示了CRM_Campaign_BAO_Survey::getSurveyVoterInfo方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: array

/**
 * Get the list of voters (respondents, yet to record survey response) for a survey
 *
 * @param  array   $params           (reference ) input parameters
 *
 * @return array (reference )        contact_id
 * @static void
 * @access public
 */
function &civicrm_api3_survey_voter_get($params)
{
    civicrm_api3_verify_one_mandatory($params, 'CRM_Campaign_BAO_Survey', array('survey_id', 'id'));
    if (array_key_exists('status_id', $params)) {
        $status_id = $params['status_id'];
    } else {
        $status_id = null;
    }
    $surveyID = empty($params['survey_id']) ? $params['id'] : $params['survey_id'];
    require_once 'CRM/Campaign/BAO/Survey.php';
    $survey = new CRM_Campaign_BAO_Survey();
    $voters = $survey->getSurveyVoterInfo($surveyID);
    require_once 'CRM/Contact/BAO/Contact.php';
    foreach ($voters as $key => $voterArray) {
        $voters[$key]['voter_name'] = CRM_Contact_BAO_Contact::displayName($voterArray['voter_id']);
    }
    return civicrm_api3_create_success($voters, $params);
}
开发者ID:rajeshrhino,项目名称:CiviMobile,代码行数:27,代码来源:SurveyVoter.php

示例2: voterClause

 /**
  * @param array $params
  *
  * @return array
  */
 public static function voterClause($params)
 {
     $voterClause = array();
     $fromClause = $whereClause = NULL;
     if (!is_array($params) || empty($params)) {
         return $voterClause;
     }
     $surveyId = CRM_Utils_Array::value('campaign_survey_id', $params);
     $searchVoterFor = CRM_Utils_Array::value('campaign_search_voter_for', $params);
     //get the survey activities.
     $activityStatus = CRM_Core_PseudoConstant::activityStatus('name');
     $status = array('Scheduled');
     if ($searchVoterFor == 'reserve') {
         $status[] = 'Completed';
     }
     $completedStatusId = NULL;
     foreach ($status as $name) {
         if ($statusId = array_search($name, $activityStatus)) {
             $statusIds[] = $statusId;
             if ($name == 'Completed') {
                 $completedStatusId = $statusId;
             }
         }
     }
     $voterActValues = CRM_Campaign_BAO_Survey::getSurveyVoterInfo($surveyId, NULL, $statusIds);
     if (!empty($voterActValues)) {
         $operator = 'IN';
         $voterIds = array_keys($voterActValues);
         if ($searchVoterFor == 'reserve') {
             $operator = 'NOT IN';
             //filter out recontact survey contacts.
             $recontactInterval = CRM_Core_DAO::getFieldValue('CRM_Campaign_DAO_Survey', $surveyId, 'recontact_interval');
             $recontactInterval = unserialize($recontactInterval);
             if ($surveyId && is_array($recontactInterval) && !empty($recontactInterval)) {
                 $voterIds = array();
                 foreach ($voterActValues as $values) {
                     $numOfDays = CRM_Utils_Array::value($values['result'], $recontactInterval);
                     if ($numOfDays && $values['status_id'] == $completedStatusId) {
                         $recontactIntSeconds = $numOfDays * 24 * 3600;
                         $actDateTimeSeconds = CRM_Utils_Date::unixTime($values['activity_date_time']);
                         $totalSeconds = $recontactIntSeconds + $actDateTimeSeconds;
                         //don't consider completed survey activity
                         //unless it fulfill recontact interval criteria.
                         if ($totalSeconds <= time()) {
                             continue;
                         }
                     }
                     $voterIds[$values['voter_id']] = $values['voter_id'];
                 }
             }
         }
         //lets dump these ids in tmp table and
         //use appropriate join depend on operator.
         if (!empty($voterIds)) {
             $voterIdCount = count($voterIds);
             //create temporary table to store voter ids.
             $tempTableName = CRM_Core_DAO::createTempTableName('civicrm_survey_respondent');
             CRM_Core_DAO::executeQuery("DROP TEMPORARY TABLE IF EXISTS {$tempTableName}");
             $query = "\n     CREATE TEMPORARY TABLE {$tempTableName} (\n            id int unsigned NOT NULL AUTO_INCREMENT,\n            survey_contact_id int unsigned NOT NULL,\n  PRIMARY KEY ( id )\n);\n";
             CRM_Core_DAO::executeQuery($query);
             $batch = 100;
             $insertedCount = 0;
             do {
                 $processIds = $voterIds;
                 $insertIds = array_splice($processIds, $insertedCount, $batch);
                 if (!empty($insertIds)) {
                     $insertSQL = "INSERT IGNORE INTO {$tempTableName}( survey_contact_id )\n                     VALUES (" . implode('),(', $insertIds) . ');';
                     CRM_Core_DAO::executeQuery($insertSQL);
                 }
                 $insertedCount += $batch;
             } while ($insertedCount < $voterIdCount);
             if ($operator == 'IN') {
                 $fromClause = " INNER JOIN {$tempTableName} ON ( {$tempTableName}.survey_contact_id = contact_a.id )";
             } else {
                 $fromClause = " LEFT JOIN {$tempTableName} ON ( {$tempTableName}.survey_contact_id = contact_a.id )";
                 $whereClause = "( {$tempTableName}.survey_contact_id IS NULL )";
             }
         }
     }
     $voterClause = array('fromClause' => $fromClause, 'whereClause' => $whereClause);
     return $voterClause;
 }
开发者ID:konadave,项目名称:civicrm-core,代码行数:87,代码来源:Query.php

示例3: getVoterIds

 function getVoterIds()
 {
     if (!$this->_interviewerId) {
         $session = CRM_Core_Session::singleton();
         $this->_interviewerId = $session->get('userID');
     }
     if (!$this->_surveyId) {
         // use default survey id
         require_once 'CRM/Campaign/DAO/Survey.php';
         $dao = new CRM_Campaign_DAO_Survey();
         $dao->is_active = 1;
         $dao->is_default = 1;
         $dao->find(true);
         $this->_surveyId = $dao->id;
     }
     $this->_contactIds = $this->get('contactIds');
     if (!is_array($this->_contactIds)) {
         //get the survey activities.
         require_once 'CRM/Core/PseudoConstant.php';
         $activityStatus = CRM_Core_PseudoConstant::activityStatus('name');
         $statusIds = array();
         if ($statusId = array_search('Scheduled', $activityStatus)) {
             $statusIds[] = $statusId;
         }
         require_once 'CRM/Campaign/BAO/Survey.php';
         $surveyActivities = CRM_Campaign_BAO_Survey::getSurveyVoterInfo($this->_surveyId, $this->_interviewerId, $statusIds);
         $this->_contactIds = array();
         foreach ($surveyActivities as $val) {
             $this->_contactIds[$val['voter_id']] = $val['voter_id'];
         }
         $this->set('contactIds', $this->_contactIds);
     }
 }
开发者ID:hampelm,项目名称:Ginsberg-CiviDemo,代码行数:33,代码来源:Interview.php

示例4: voterClause

 function voterClause($params)
 {
     $voterClause = null;
     if (!is_array($params) || empty($params)) {
         return $voterClause;
     }
     $surveyId = CRM_Utils_Array::value('campaign_survey_id', $params);
     $interviewerId = CRM_Utils_Array::value('survey_interviewer_id', $params);
     $searchVoterFor = CRM_Utils_Array::value('campaign_search_voter_for', $params);
     //get the survey activities.
     require_once 'CRM/Core/PseudoConstant.php';
     $activityStatus = CRM_Core_PseudoConstant::activityStatus('name');
     $status = array('Scheduled');
     if ($searchVoterFor == 'reserve') {
         $status[] = 'Completed';
     }
     $completedStatusId = null;
     foreach ($status as $name) {
         if ($statusId = array_search($name, $activityStatus)) {
             $statusIds[] = $statusId;
             if ($name == 'Completed') {
                 $completedStatusId = $statusId;
             }
         }
     }
     require_once 'CRM/Campaign/BAO/Survey.php';
     $voterActValues = CRM_Campaign_BAO_Survey::getSurveyVoterInfo($surveyId, null, $statusIds);
     if (!empty($voterActValues)) {
         $operator = 'IN';
         $voterIds = array_keys($voterActValues);
         if ($searchVoterFor == 'reserve') {
             $operator = 'NOT IN';
             //filter out recontact survey contacts.
             $recontactInterval = CRM_Core_DAO::getFieldValue('CRM_Campaign_DAO_Survey', $surveyId, 'recontact_interval');
             $recontactInterval = unserialize($recontactInterval);
             if ($surveyId && is_array($recontactInterval) && !empty($recontactInterval)) {
                 $voterIds = array();
                 foreach ($voterActValues as $values) {
                     $numOfDays = CRM_Utils_Array::value($values['result'], $recontactInterval);
                     if ($numOfDays && $values['status_id'] == $completedStatusId) {
                         $recontactIntSeconds = $numOfDays * 24 * 3600;
                         $actDateTimeSeconds = CRM_Utils_Date::unixTime($values['activity_date_time']);
                         $totalSeconds = $recontactIntSeconds + $actDateTimeSeconds;
                         //don't consider completed survey activity
                         //unless it fulfill recontact interval criteria.
                         if ($totalSeconds <= time()) {
                             continue;
                         }
                     }
                     $voterIds[$values['voter_id']] = $values['voter_id'];
                 }
             }
         }
         if (!empty($voterIds)) {
             $voterClause = "( contact_a.id {$operator} ( " . implode(', ', $voterIds) . ' ) )';
         }
     }
     return $voterClause;
 }
开发者ID:hampelm,项目名称:Ginsberg-CiviDemo,代码行数:59,代码来源:Query.php


注:本文中的CRM_Campaign_BAO_Survey::getSurveyVoterInfo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。