From e0b2d43b746f8873f3b5d2b0abc507edbd83a8b6 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Mon, 7 Sep 2020 16:30:31 +0100 Subject: [PATCH] Switch membership BAO to use non-deprecated cached functions to get membershipType details --- CRM/Member/BAO/Membership.php | 13 ++++++------- CRM/Member/BAO/MembershipType.php | 4 +++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index 3a98f1d587..32ff6e0259 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -282,7 +282,7 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership { else { // if membership allows related, default max_related to value in membership_type if (!array_key_exists('max_related', $params) && !empty($params['membership_type_id'])) { - $membershipType = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($params['membership_type_id']); + $membershipType = CRM_Member_BAO_MembershipType::getMembershipType($params['membership_type_id']); if (isset($membershipType['relationship_type_id'])) { $params['max_related'] = $membershipType['max_related'] ?? NULL; } @@ -439,7 +439,8 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership { public static function checkMembershipRelationship($membershipTypeID, $contactId, $action = CRM_Core_Action::ADD) { $contacts = []; - $membershipType = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($membershipTypeID); + $membershipType = CRM_Member_BAO_MembershipType::getMembershipType($membershipTypeID); + $relationships = []; if (isset($membershipType['relationship_type_id'])) { $relationships = CRM_Contact_BAO_Relationship::getRelationship($contactId, @@ -462,11 +463,9 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership { CRM_Contact_BAO_RelationshipType::retrieve($relType, $relValues); // Check if contact's relationship type exists in membership type $relTypeDirs = []; - $relTypeIds = explode(CRM_Core_DAO::VALUE_SEPARATOR, $membershipType['relationship_type_id']); - $relDirections = explode(CRM_Core_DAO::VALUE_SEPARATOR, $membershipType['relationship_direction']); $bidirectional = FALSE; - foreach ($relTypeIds as $key => $value) { - $relTypeDirs[] = $value . '_' . $relDirections[$key]; + foreach ($membershipType['relationship_type_id'] as $key => $value) { + $relTypeDirs[] = $value . '_' . $membershipType['relationship_direction'][$key]; if (in_array($value, $relType) && $relValues['name_a_b'] == $relValues['name_b_a'] ) { @@ -1771,7 +1770,7 @@ INNER JOIN civicrm_contact contact ON ( contact.id = membership.contact_id AND $allStatus = CRM_Member_PseudoConstant::membershipStatus(); $format = '%Y%m%d'; $statusFormat = '%Y-%m-%d'; - $membershipTypeDetails = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($membershipTypeID); + $membershipTypeDetails = CRM_Member_BAO_MembershipType::getMembershipType($membershipTypeID); $dates = []; $ids = []; diff --git a/CRM/Member/BAO/MembershipType.php b/CRM/Member/BAO/MembershipType.php index 11593a8e44..c702b83af3 100644 --- a/CRM/Member/BAO/MembershipType.php +++ b/CRM/Member/BAO/MembershipType.php @@ -635,7 +635,7 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType { } /** - * The function returns all the Organization for all membershipTypes . + * The function returns all the Organization for all membershipTypes . * * @param int $membershipTypeId * @@ -814,6 +814,8 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType { * Caching is by domain - if that hits any issues we should add a new function getDomainMembershipTypes * or similar rather than 'just add another param'! but this is closer to earlier behaviour so 'should' be OK. * + * @return array + * List of membershipType details keyed by membershipTypeID * @throws \CiviCRM_API3_Exception */ public static function getAllMembershipTypes() { -- 2.25.1