From 79b62c939c6ba9fb157a5b2b061760922986af06 Mon Sep 17 00:00:00 2001 From: eileen Date: Mon, 29 Jul 2019 03:41:12 +1200 Subject: [PATCH] Fix metadata on member export Note auto_renew seems un-exportable so I removed it from return properties --- CRM/Core/BAO/UFField.php | 1 + CRM/Member/DAO/Membership.php | 8 +++++--- tests/phpunit/CRM/Export/BAO/ExportTest.php | 6 +++--- .../CRM/Member/Import/Parser/MembershipTest.php | 8 ++++---- tests/phpunit/api/v3/MembershipTest.php | 16 ++++++++-------- xml/schema/Member/Membership.xml | 5 +++++ 6 files changed, 26 insertions(+), 18 deletions(-) diff --git a/CRM/Core/BAO/UFField.php b/CRM/Core/BAO/UFField.php index 4549d78d3b0..e651f84c515 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 3fa1ead5391..59580c356fe 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/tests/phpunit/CRM/Export/BAO/ExportTest.php b/tests/phpunit/CRM/Export/BAO/ExportTest.php index 3774933f250..1f1e4690ceb 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 06c2c2c7385..bcf15527852 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 07ea1173469..c2aaadf1766 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 3be81314907..e46f4d634e4 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