dev/mem#17 - Deleting memberships does not delete its related line item
authorJitendra Purohit <jitendra@fuzion.co.nz>
Fri, 15 Nov 2019 09:25:48 +0000 (14:55 +0530)
committerJitendra Purohit <jitendra@fuzion.co.nz>
Thu, 6 Feb 2020 09:44:45 +0000 (15:14 +0530)
CRM/Member/BAO/Membership.php
tests/phpunit/CRM/Member/BAO/MembershipTest.php

index 8386983c67646cb7b9b03a68a2cb4067f57af704..9b184d93ccc78712c510edfcf6725f79f3380d35 100644 (file)
@@ -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 = [
index 08b49429396293337c6920c399844d783ed3c8e9..f8b57375eb664384dd7b869ba18a1d28b511a2bb 100644 (file)
@@ -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);
   }