+--------------------------------------------------------------------+
| CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2016 |
+ | Copyright CiviCRM LLC (c) 2004-2017 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
* Delete group contact record.
*
* @param array $params
- *
* @return array
- *
+ * @throws API_Exception
+ * @throws CiviCRM_API3_Exception
* @deprecated
*/
function civicrm_api3_group_contact_delete($params) {
- $groupContact = civicrm_api3('GroupContact', 'get', $params);
- if ($groupContact['count'] == 0) {
+ $checkParams = $params;
+ if (!empty($checkParams['status']) && in_array($checkParams['status'], array('Removed', 'Deleted'))) {
+ $checkParams['status'] = array('IN' => array('Added', 'Pending'));
+ }
+ elseif (!empty($checkParams['status']) && $checkParams['status'] == 'Added') {
+ $checkParams['status'] = array('IN' => array('Pending', 'Removed'));
+ }
+ elseif (!empty($checkParams['status'])) {
+ unset($checkParams['status']);
+ }
+ $groupContact = civicrm_api3('GroupContact', 'get', $checkParams);
+ if ($groupContact['count'] == 0 && !empty($params['skip_undelete'])) {
+ $checkParams['status'] = array('IN' => array('Removed', 'Pending'));
+ }
+ $groupContact2 = civicrm_api3('GroupContact', 'get', $checkParams);
+ if ($groupContact['count'] == 0 && $groupContact2['count'] == 0) {
throw new API_Exception('Cannot Delete GroupContact');
}
$params['status'] = CRM_Utils_Array::value('status', $params, empty($params['skip_undelete']) ? 'Removed' : 'Deleted');