Ejemplo n.º 1
0
/**
 * @param $contactIDs
 * @param $values
 */
function getAddressInfo(&$contactIDs, &$values)
{
    $ids = implode(',', $contactIDs);
    $sql = "\nSELECT     c.id as contact_id, l.name as location_type,\n           a.street_address, a.supplemental_address_1, a.supplemental_address_2,\n           a.city, a.postal_code,\n           s.name as state, co.name as country\nFROM       civicrm_contact c\nINNER JOIN civicrm_address        a  ON a.contact_id        = c.id\nLEFT  JOIN civicrm_location_type  l  ON a.location_type_id  = l.id\nLEFT  JOIN civicrm_state_province s  ON a.state_province_id = s.id\nLEFT  JOIN civicrm_country        co ON a.country_id        = co.id\nWHERE c.id IN ( {$ids} )\n";
    $fields = array('location_type', 'street_address', 'supplemental_address_1', 'supplemental_address_2', 'city', 'postal_code', 'state', 'country');
    $dao =& CRM_Core_DAO::executeQuery($sql);
    while ($dao->fetch()) {
        $address = '';
        foreach ($fields as $fld) {
            if (empty($dao->{$fld})) {
                continue;
            }
            $address .= $fld == 'location_type' ? "{$dao->{$fld}}: " : " {$dao->{$fld}},";
            appendValue($values, $dao->contact_id, $fld, $dao->{$fld});
        }
        if (!empty($address)) {
            $address = rtrim($address, ",");
            appendValue($values, $dao->contact_id, 'address', $address);
        }
    }
}
Ejemplo n.º 2
0
/**
 * @param $contactIDs
 * @param $values
 * @param $allContactIDs
 * @param $additionalContacts
 */
function getActivityInfo(&$contactIDs, &$values, &$allContactIDs, &$additionalContacts)
{
    static $_activitiesHandled = array();
    $ids = implode(',', $contactIDs);
    $sql = "(\n  SELECT     a.*\n  FROM       civicrm_activity a\n  INNER JOIN civicrm_activity_assignment aa ON aa.activity_id = a.id\n  WHERE      aa.assignee_contact_id IN ( {$ids} )\n    AND      ( a.activity_type_id != 3 AND a.activity_type_id != 20 )\n) UNION (\n  SELECT     a.*\n  FROM       civicrm_activity a\n  INNER JOIN civicrm_activity_target at ON at.activity_id = a.id\n  WHERE      at.target_contact_id IN ( {$ids} )\n    AND      ( a.activity_type_id != 3 AND a.activity_type_id != 20 )\n)\n";
    $activityFields =& getDBFields('CRM_Activity_DAO_Activity');
    $fields = array_keys($activityFields);
    $activityIDs = array();
    $dao =& CRM_Core_DAO::executeQuery($sql);
    while ($dao->fetch()) {
        if (isset($_activitiesHandled[$dao->id])) {
            continue;
        }
        $_activitiesHandled[$dao->id] = $dao->id;
        $activityIDs[] = $dao->id;
        $activity = array();
        foreach ($fields as $fld) {
            if (empty($dao->{$fld})) {
                $activity[$fld] = NULL;
            } else {
                $activity[$fld] = $dao->{$fld};
            }
        }
        appendValue($values, $dao->id, 'activity', $activity);
        addAdditionalContacts(array($dao->source_contact_id), $allContactIDs, $additionalContacts);
    }
    $dao->free();
    if (empty($activityIDs)) {
        return;
    }
    $activityIDString = implode(",", $activityIDs);
    // now get all assignee contact ids and target contact ids for this activity
    $sql = "SELECT * FROM civicrm_activity_assignment WHERE activity_id IN ({$activityIDString})";
    $aaDAO =& CRM_Core_DAO::executeQuery($sql);
    $activityContacts = array();
    while ($aaDAO->fetch()) {
        $activityAssignee = array('id' => $aaDAO->id, 'assignee_contact_id' => $aaDAO->assignee_contact_id, 'activity_id' => $aaDAO->activity_id);
        appendValue($values, $aaDAO->id, 'activity_assignment', $activityAssignee);
        $activityContacts[] = $aaDAO->assignee_contact_id;
    }
    $aaDAO->free();
    $sql = "SELECT * FROM civicrm_activity_target WHERE activity_id IN ({$activityIDString})";
    $atDAO =& CRM_Core_DAO::executeQuery($sql);
    while ($atDAO->fetch()) {
        $activityTarget = array('id' => $atDAO->id, 'target_contact_id' => $atDAO->target_contact_id, 'activity_id' => $atDAO->activity_id);
        appendValue($values, $atDAO->id, 'activity_target', $activityTarget);
        $activityContacts[] = $atDAO->target_contact_id;
    }
    $atDAO->free();
    addAdditionalContacts($activityContacts, $allContactIDs, $additionalContacts);
}