示例#1
0
 /**
  * @param string $name
  * @param $mode
  * @param $side
  *
  * @return null|string
  */
 public static function from($name, $mode, $side)
 {
     $from = NULL;
     //get survey clause in force,
     //only when we have survey id.
     if (!self::$_applySurveyClause) {
         return $from;
     }
     $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);
     switch ($name) {
         case self::CIVICRM_ACTIVITY_TARGET:
             $from = " INNER JOIN civicrm_activity_contact civicrm_activity_target\n   ON ( civicrm_activity_target.contact_id = contact_a.id AND civicrm_activity_target.record_type_id = {$targetID}) ";
             break;
         case self::CIVICRM_ACTIVITY:
             $surveyActivityTypes = CRM_Campaign_PseudoConstant::activityType();
             $surveyKeys = "(" . implode(',', array_keys($surveyActivityTypes)) . ")";
             $from = " INNER JOIN civicrm_activity ON ( civicrm_activity.id = civicrm_activity_target.activity_id\n                                 AND civicrm_activity.activity_type_id IN {$surveyKeys} ) ";
             break;
         case self::CIVICRM_ACTIVITY_ASSIGNMENT:
             $from = "\nINNER JOIN  civicrm_activity_contact civicrm_activity_assignment ON ( civicrm_activity.id = civicrm_activity_assignment.activity_id AND\ncivicrm_activity_assignment.record_type_id = {$assigneeID} ) ";
             break;
         case 'civicrm_survey':
             $from = " INNER JOIN civicrm_survey ON ( civicrm_survey.id = civicrm_activity.source_record_id ) ";
             break;
         case 'civicrm_campaign':
             $from = " {$side} JOIN civicrm_campaign ON ( civicrm_campaign.id = civicrm_survey.campaign_id ) ";
             break;
     }
     return $from;
 }
示例#2
0
 static function from($name, $mode, $side)
 {
     $from = null;
     //get survey clause in force,
     //only when we have survey id.
     if (!self::$_applySurveyClause) {
         return $from;
     }
     switch ($name) {
         case self::civicrm_activity_target:
             $from = " INNER JOIN civicrm_activity_target ON civicrm_activity_target.target_contact_id = contact_a.id ";
             break;
         case self::civicrm_activity:
             require_once 'CRM/Campaign/PseudoConstant.php';
             $surveyActivityTypes = CRM_Campaign_PseudoConstant::activityType();
             $surveyKeys = "(" . implode(',', array_keys($surveyActivityTypes)) . ")";
             $from = " \nINNER JOIN civicrm_activity ON ( civicrm_activity.id = civicrm_activity_target.activity_id AND \n                                 civicrm_activity.activity_type_id IN {$surveyKeys} )\nINNER JOIN civicrm_activity_assignment ON ( civicrm_activity.id = civicrm_activity_assignment.activity_id )\n";
             break;
         case 'civicrm_survey':
             $from = " INNER JOIN civicrm_survey ON civicrm_survey.id = civicrm_activity.source_record_id ";
             break;
         case 'civicrm_campaign':
             $from = " {$side} JOIN civicrm_campaign ON civicrm_campaign.id = civicrm_survey.campaign_id ";
             break;
     }
     return $from;
 }