From 2883b934973d76e3488b42a5a1d53f2df72cd232 Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Fri, 15 Nov 2019 14:55:48 +0530 Subject: [PATCH] dev/mem#17 - Deleting memberships does not delete its related line item --- CRM/Member/BAO/Membership.php | 3 ++- tests/phpunit/CRM/Member/BAO/MembershipTest.php | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index 8386983c67..9b184d93cc 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -641,6 +641,7 @@ INNER JOIN civicrm_membership_type type ON ( type.id = membership.membership_ty CRM_Activity_BAO_Activity::deleteActivity($params); } self::deleteMembershipPayment($membershipId, $preserveContrib); + CRM_Price_BAO_LineItem::deleteLineItems($membershipId, 'civicrm_membership'); $results = $membership->delete(); $transaction->commit(); @@ -2227,7 +2228,7 @@ WHERE civicrm_membership.is_test = 0 self::processOverriddenUntilDateMembership($dao1); } - $query = $baseQuery . " AND (civicrm_membership.is_override = 0 OR civicrm_membership.is_override IS NULL) + $query = $baseQuery . " AND (civicrm_membership.is_override = 0 OR civicrm_membership.is_override IS NULL) AND civicrm_membership.status_id NOT IN (%1, %2, %3, %4) AND civicrm_membership.owner_membership_id IS NULL "; $params = [ diff --git a/tests/phpunit/CRM/Member/BAO/MembershipTest.php b/tests/phpunit/CRM/Member/BAO/MembershipTest.php index 08b4942939..f8b57375eb 100644 --- a/tests/phpunit/CRM/Member/BAO/MembershipTest.php +++ b/tests/phpunit/CRM/Member/BAO/MembershipTest.php @@ -291,6 +291,9 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { $this->assertDBNull('CRM_Member_BAO_Membership', $contactId, 'id', 'contact_id', 'Database check for deleted membership.' ); + $this->assertDBNull('CRM_Price_BAO_LineItem', $membershipId, 'id', + 'entity_id', 'Database check for deleted line item.' + ); $this->contactDelete($contactId); } -- 2.25.1