public static function add(&$params) {
$caseDAO = new CRM_Case_DAO_Case();
$caseDAO->copyValues($params);
- return $caseDAO->save();
+ $result = $caseDAO->save();
+ $caseDAO->find(TRUE); // Get other case values (required by XML processor), this adds to $result array
+ return $result;
}
/**
* @return CRM_Case_BAO_Case
*/
public static function &create(&$params) {
+ // CRM-20958 - These fields are managed by MySQL triggers. Watch out for clients resaving stale timestamps.
+ unset($params['created_date']);
+ unset($params['modified_date']);
+
$transaction = new CRM_Core_Transaction();
if (!empty($params['id'])) {
$caseContact->case_id = $caseId;
$caseContact->find();
$contactArray = array();
+ // FIXME: Why does this return a 1-based array?
$count = 1;
while ($caseContact->fetch()) {
if ($contactID != $caseContact->contact_id) {
public static function getCaseActivity($caseID, &$params, $contactID, $context = NULL, $userID = NULL, $type = NULL) {
$values = array();
- $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+ $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
$activityTypes = CRM_Core_PseudoConstant::activityType(TRUE, TRUE, FALSE, 'name');
$activityStatuses = CRM_Core_PseudoConstant::activityStatus('name');
- $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+ $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
//edit - contact must be source or assignee
//view - contact must be source/assignee/target
$isTarget = $isAssignee = $isSource = FALSE;
- $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+ $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);