function civicrm_api3_civi_outlook_createnewcase($params) { $customCiviParams = array('sequential' => 1); $caseTypes = CRM_Case_PseudoConstant::caseType('title', TRUE); $caseStatuses = CRM_Case_PseudoConstant::caseStatus('label', TRUE); /** * Hack for the error - "creator id is not of type int" Native API throws this error * http://civicrm.stackexchange.com/questions/2727/why-doesnt-creating-a-case-from-api-work */ if (CRM_Utils_Array::value("api_key", $_REQUEST)) { $source_contact_id = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $_REQUEST['api_key'], 'id', 'api_key'); $params['creator_id'] = $customCiviParams['creator_id'] = intval($source_contact_id); } if (CRM_Utils_Array::value("case_type_name", $params)) { $customCiviParams['case_type_id'] = array_search($params['case_type_name'], $caseTypes); } if (CRM_Utils_Array::value("details", $params)) { $customCiviParams['details'] = $params['details']; } if (CRM_Utils_Array::value("subject", $params)) { $customCiviParams['subject'] = $params['subject']; } if (CRM_Utils_Array::value("start_date", $params)) { $customCiviParams['start_date'] = $params['start_date']; } if (CRM_Utils_Array::value("status_name", $params)) { $customCiviParams['status_id'] = array_search($params['status_name'], $caseStatuses); } if (CRM_Utils_Array::value("contact_id", $params)) { $customCiviParams['contact_id'] = $params['contact_id']; } $result = outlook_civicrm_api3('Case', 'create', $customCiviParams, 'CiviOutlook', 'createnewcase', $params); $finalArray = array(); foreach ($result as $key => $value) { foreach ($value as $k => $v) { $finalArray['case_' . $k] = $v; } } return civicrm_api3_create_success($finalArray, $params); }
function civicrm_api3_civi_outlook_createnewcase($params) { $customCiviParams = array('sequential' => 1); $caseTypes = CRM_Case_PseudoConstant::caseType('title', FALSE); $caseStatuses = CRM_Case_PseudoConstant::caseStatus('label', FALSE); if (CRM_Utils_Array::value("case_type_name", $params)) { $customCiviParams['case_type_id'] = array_search($params['case_type_name'], $caseTypes); } if (CRM_Utils_Array::value("details", $params)) { $customCiviParams['details'] = $params['details']; } if (CRM_Utils_Array::value("subject", $params)) { $customCiviParams['subject'] = $params['subject']; } if (CRM_Utils_Array::value("start_date", $params)) { $customCiviParams['start_date'] = $params['start_date']; } if (CRM_Utils_Array::value("status_name", $params)) { $customCiviParams['status_id'] = array_search($params['status_name'], $caseStatuses); } if (CRM_Utils_Array::value("contact_id", $params)) { $customCiviParams['contact_id'] = $params['contact_id']; } $result = outlook_civicrm_api3('Case', 'create', $customCiviParams, 'CiviOutlook', 'createnewcase', $params); $finalArray = array(); foreach ($result as $key => $value) { foreach ($value as $k => $v) { $finalArray['case_' . $k] = $v; } } return civicrm_api3_create_success($finalArray, $params); }