self::disableEnableRelationship($id, $action, $params, $ids, $active);
}
- self::addRecent($params, $relationship);
+ if (empty($params['skipRecentView'])) {
+ self::addRecent($params, $relationship);
+ }
+
return $relationship;
}
$query = 'SELECT * FROM `civicrm_membership_status`';
if ($active) {
- $query .= 'WHERE `is_current_member` = 1 OR `id` = %1 ';
+ $query .= ' WHERE `is_current_member` = 1 OR `id` = %1 ';
}
- $params[1] = array($pendingStatusId, 'String');
- $dao = CRM_Core_DAO::executeQuery($query, $params);
+ $dao = CRM_Core_DAO::executeQuery($query, array(1 => array($pendingStatusId, 'Integer')));
while ($dao->fetch()) {
$membershipStatusRecordIds[$dao->id] = $dao->id;
}
}
+ if ($action & CRM_Core_Action::UPDATE) {
+ //if updated relationship is already related to contact don't delete existing inherited membership
+ if (in_array($relTypeId, $relTypeIds
+ ) && !empty($values[$relatedContactId]['memberships']) && !empty($ownerMemIds
+ ) && in_array($membershipValues['owner_membership_id'], $ownerMemIds[$relatedContactId])) {
+ continue;
+ }
+
+ //delete the membership record for related
+ //contact before creating new membership record.
+ CRM_Member_BAO_Membership::deleteRelatedMemberships($membershipId, $relatedContactId);
+ }
+
// check whether we have some related memberships still available
$query = "
SELECT count(*)