diff --git a/CRM/Core/BAO/UFField.php b/CRM/Core/BAO/UFField.php index 4549d78d3b0a..e651f84c515a 100644 --- a/CRM/Core/BAO/UFField.php +++ b/CRM/Core/BAO/UFField.php @@ -970,6 +970,7 @@ public static function getAvailableFields($gid = NULL, $defaults = []) { 'membership_type_id', 'member_is_test', 'is_override', + 'member_is_override', 'status_override_end_date', 'status_id', 'member_is_pay_later' diff --git a/CRM/Member/DAO/Membership.php b/CRM/Member/DAO/Membership.php index 3fa1ead53912..59580c356fe6 100644 --- a/CRM/Member/DAO/Membership.php +++ b/CRM/Member/DAO/Membership.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Member/Membership.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:64ef044391b9dee565e8e2a9d893f4cf) + * (GenCodeChecksum:40f3b0813c1e13fab544ae1f8fa2ebb3) */ /** @@ -328,7 +328,7 @@ public static function &fields() { 'labelColumn' => 'label', ], ], - 'is_override' => [ + 'member_is_override' => [ 'name' => 'is_override', 'type' => CRM_Utils_Type::T_BOOLEAN, 'title' => ts('Status Override'), @@ -381,6 +381,7 @@ public static function &fields() { 'title' => ts('Max Related'), 'description' => ts('Maximum number of related memberships (membership_type override).'), 'where' => 'civicrm_membership.max_related', + 'export' => TRUE, 'table_name' => 'civicrm_membership', 'entity' => 'Membership', 'bao' => 'CRM_Member_BAO_Membership', @@ -423,12 +424,13 @@ public static function &fields() { 'type' => 'CheckBox', ], ], - 'contribution_recur_id' => [ + 'membership_recur_id' => [ 'name' => 'contribution_recur_id', 'type' => CRM_Utils_Type::T_INT, 'title' => ts('Membership Recurring Contribution'), 'description' => ts('Conditional foreign key to civicrm_contribution_recur id. Each membership in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.'), 'where' => 'civicrm_membership.contribution_recur_id', + 'export' => TRUE, 'table_name' => 'civicrm_membership', 'entity' => 'Membership', 'bao' => 'CRM_Member_BAO_Membership', diff --git a/CRM/Upgrade/Incremental/php/FiveSeventeen.php b/CRM/Upgrade/Incremental/php/FiveSeventeen.php index 1c5987037462..a1f91b2ec53b 100644 --- a/CRM/Upgrade/Incremental/php/FiveSeventeen.php +++ b/CRM/Upgrade/Incremental/php/FiveSeventeen.php @@ -102,6 +102,11 @@ public function upgrade_5_17_alpha1($rev) { 'contribution_recur_failure_retry_date', ], ]); + $this->addTask('Update smart groups to reflect change of unique name for is_override', 'updateSmartGroups', [ + 'renameField' => [ + ['old' => 'is_override', 'new' => 'member_is_override'], + ], + ]); } } diff --git a/tests/phpunit/CRM/Export/BAO/ExportTest.php b/tests/phpunit/CRM/Export/BAO/ExportTest.php index 3774933f2501..1f1e4690ceb9 100644 --- a/tests/phpunit/CRM/Export/BAO/ExportTest.php +++ b/tests/phpunit/CRM/Export/BAO/ExportTest.php @@ -282,10 +282,10 @@ public function testExportComponentsMembership() { 'Membership Status' => 'Expired', 'Membership ID' => '2', 'Primary Member ID' => '', - 'max_related' => '', - 'membership_recur_id' => '', + 'Max Related' => '', + 'Membership Recurring Contribution' => '', 'Campaign ID' => '', - 'member_is_override' => '', + 'Status Override' => '', 'member_auto_renew' => '', 'Total Amount' => '100.00', 'Contribution Status' => 'Completed', diff --git a/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php b/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php index 06c2c2c73859..bcf155278525 100644 --- a/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php +++ b/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php @@ -155,7 +155,7 @@ public function testImportOverriddenMembershipButWithoutStatus() { 'mapper[0][0]' => 'email', 'mapper[1][0]' => 'membership_type_id', 'mapper[2][0]' => 'membership_start_date', - 'mapper[3][0]' => 'is_override', + 'mapper[3][0]' => 'member_is_override', ]; $membershipImporter = new CRM_Member_Import_Parser_Membership($fieldMapper); $membershipImporter->init(); @@ -184,7 +184,7 @@ public function testImportOverriddenMembershipWithStatus() { 'email', 'membership_type_id', 'membership_start_date', - 'is_override', + 'member_is_override', 'status_id', ]); @@ -207,7 +207,7 @@ public function testImportOverriddenMembershipWithValidOverrideEndDate() { 'mapper[0][0]' => 'email', 'mapper[1][0]' => 'membership_type_id', 'mapper[2][0]' => 'membership_start_date', - 'mapper[3][0]' => 'is_override', + 'mapper[3][0]' => 'member_is_override', 'mapper[4][0]' => 'status_id', 'mapper[5][0]' => 'status_override_end_date', ]; @@ -235,7 +235,7 @@ public function testImportOverriddenMembershipWithInvalidOverrideEndDate() { 'mapper[0][0]' => 'email', 'mapper[1][0]' => 'membership_type_id', 'mapper[2][0]' => 'membership_start_date', - 'mapper[3][0]' => 'is_override', + 'mapper[3][0]' => 'member_is_override', 'mapper[4][0]' => 'status_id', 'mapper[5][0]' => 'status_override_end_date', ]; diff --git a/tests/phpunit/api/v3/MembershipTest.php b/tests/phpunit/api/v3/MembershipTest.php index 07ea1173469c..c2aaadf17668 100644 --- a/tests/phpunit/api/v3/MembershipTest.php +++ b/tests/phpunit/api/v3/MembershipTest.php @@ -221,14 +221,14 @@ public function testGetWithParamsContactId() { $this->callAPISuccess('Membership', 'Delete', [ 'id' => $this->_membershipID, ]); - $this->assertEquals($result['contact_id'], $this->_contactID, "In line " . __LINE__); - $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID, "In line " . __LINE__); - $this->assertEquals($result['status_id'], $this->_membershipStatusID, "In line " . __LINE__); - $this->assertEquals($result['join_date'], '2009-01-21', "In line " . __LINE__); - $this->assertEquals($result['start_date'], '2009-01-21', "In line " . __LINE__); - $this->assertEquals($result['end_date'], '2009-12-21', "In line " . __LINE__); - $this->assertEquals($result['source'], 'Payment', "In line " . __LINE__); - $this->assertEquals($result['is_override'], 1, "In line " . __LINE__); + $this->assertEquals($result['contact_id'], $this->_contactID); + $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID); + $this->assertEquals($result['status_id'], $this->_membershipStatusID); + $this->assertEquals($result['join_date'], '2009-01-21'); + $this->assertEquals($result['start_date'], '2009-01-21'); + $this->assertEquals($result['end_date'], '2009-12-21'); + $this->assertEquals($result['source'], 'Payment'); + $this->assertEquals($result['is_override'], 1); } /** diff --git a/xml/schema/Member/Membership.xml b/xml/schema/Member/Membership.xml index 3be81314907c..e46f4d634e41 100644 --- a/xml/schema/Member/Membership.xml +++ b/xml/schema/Member/Membership.xml @@ -156,8 +156,10 @@ is_override + member_is_override Status Override true + true /override$/i boolean Admin users may set a manual status which overrides the calculated status. When this flag is true, automated status update scripts should NOT modify status for the record. @@ -203,6 +205,7 @@ int Maximum number of related memberships (membership_type override). 4.3 + true Text @@ -234,8 +237,10 @@ contribution_recur_id + membership_recur_id Membership Recurring Contribution int unsigned + true Conditional foreign key to civicrm_contribution_recur id. Each membership in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events. 3.3