return civicrm_api3_create_error('Could not acquire lock, another Membership Processing process is running');
}
- $result = CRM_Member_BAO_Membership::updateAllMembershipStatus();
+ // We need to pass this through as a simple array of membership status IDs as values.
+ if (!empty($params['exclude_membership_status_ids'])) {
+ is_array($params['exclude_membership_status_ids']) ?: $params['exclude_membership_status_ids'] = [$params['exclude_membership_status_ids']];
+ }
+ if (!empty($params['exclude_membership_status_ids']['IN'])) {
+ $params['exclude_membership_status_ids'] = $params['exclude_membership_status_ids']['IN'];
+ }
+ $result = CRM_Member_BAO_Membership::updateAllMembershipStatus($params);
$lock->release();
if ($result['is_error'] == 0) {
}
}
+function _civicrm_api3_job_process_membership_spec(&$params) {
+ $params['exclude_test_memberships']['api.default'] = TRUE;
+ $params['exclude_test_memberships']['title'] = 'Exclude test memberships';
+ $params['exclude_test_memberships']['description'] = 'Exclude test memberships from calculations (default = TRUE)';
+ $params['exclude_test_memberships']['type'] = CRM_Utils_Type::T_BOOLEAN;
+ $params['only_active_membership_types']['api.default'] = TRUE;
+ $params['only_active_membership_types']['title'] = 'Exclude disabled membership types';
+ $params['only_active_membership_types']['description'] = 'Exclude disabled membership types from calculations (default = TRUE)';
+ $params['only_active_membership_types']['type'] = CRM_Utils_Type::T_BOOLEAN;
+ $params['exclude_membership_status_ids']['title'] = 'Exclude membership status IDs from calculations';
+ $params['exclude_membership_status_ids']['description'] = 'Default: Exclude Pending, Cancelled, Expired. Deceased will always be excluded';
+ $params['exclude_membership_status_ids']['type'] = CRM_Utils_Type::T_INT;
+ $params['exclude_membership_status_ids']['pseudoconstant'] = [
+ 'table' => 'civicrm_membership_status',
+ 'keyColumn' => 'id',
+ 'labelColumn' => 'label',
+ ];
+}
+
/**
* This api checks and updates the status of all survey respondents.
*