From acd689089fcf8b6aae990b98c98ed225e2affb87 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20T=C3=A9tard?= Date: Wed, 28 Mar 2018 14:21:27 +0200 Subject: [PATCH] =?utf8?q?Fix=20CRM-19920=20regression:=20=E2=80=9CDecease?= =?utf8?q?d=E2=80=9D=20status=20could=20be=20translated.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Find “Deceased” `status_id` by using `CRM_Core_PseudoConstant::getKey()` and check use this status is enabled by using this `status_id` instead of its label (which could be translated). --- CRM/Member/BAO/Membership.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index d75062a474..8c12469015 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -2125,9 +2125,12 @@ INNER JOIN civicrm_contact contact ON ( contact.id = membership.contact_id AND */ protected static function updateDeceasedMembersStatuses() { $count = 0; + + $deceasedStatusId = CRM_Core_PseudoConstant::getKey('CRM_Member_BAO_Membership', 'status_id', 'Deceased'); + // 'create' context for buildOptions returns only if enabled. $allStatus = self::buildOptions('status_id', 'create'); - if (($deceasedStatusId = array_search('Deceased', $allStatus)) === FALSE) { + if (array_key_exists($deceasedStatusId, $allStatus) === FALSE) { // Deceased status is an admin status & is required. We want to fail early if // it is not present or active. // We could make the case 'some databases just don't use deceased so we will check -- 2.25.1