From 81ec618031ac4653ae948a5d6ea5c91830b945cb Mon Sep 17 00:00:00 2001 From: Deepak Srivastava Date: Wed, 26 Feb 2014 19:34:18 +0530 Subject: [PATCH] CRM-12467 export contributions - expose soft credit fields / columns ---------------------------------------- * CRM-12467: Include Soft Credits in contribution search http://issues.civicrm.org/jira/browse/CRM-12467 --- CRM/Contribute/BAO/Contribution.php | 45 +++++++++++++++++++++++------ CRM/Contribute/BAO/Query.php | 24 ++++++++++----- CRM/Export/BAO/Export.php | 7 +++++ 3 files changed, 59 insertions(+), 17 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index fb81df984f..b51a288e40 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -592,8 +592,35 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution { ) ); + $softCreditFields = array( + 'contribution_soft_credit_name' => array( + 'name' => 'contribution_soft_credit_name', + 'title' => 'Soft Credit For', + 'where' => 'civicrm_contact_d.display_name', + 'data_type' => CRM_Utils_Type::T_STRING + ), + 'contribution_soft_credit_amount' => array( + 'name' => 'contribution_soft_credit_amount', + 'title' => 'Soft Credit Amount', + 'where' => 'civicrm_contribution_soft.amount', + 'data_type' => CRM_Utils_Type::T_MONEY + ), + 'contribution_soft_credit_type' => array( + 'name' => 'contribution_soft_credit_type', + 'title' => 'Soft Credit Type', + 'where' => 'contribution_softcredit_type.label', + 'data_type' => CRM_Utils_Type::T_STRING + ), + 'contribution_soft_credit_contribution_id' => array( + 'name' => 'contribution_soft_credit_contribution_id', + 'title' => 'Soft Credit For Contribution ID', + 'where' => 'civicrm_contribution_soft.contribution_id', + 'data_type' => CRM_Utils_Type::T_INT + ), + ); + $fields = array_merge($impFields, $typeField, $contributionStatus, $optionField, $expFieldProduct, - $expFieldsContrib, $contributionNote, $contributionRecurId, $extraFields, $financialAccount, + $expFieldsContrib, $contributionNote, $contributionRecurId, $extraFields, $softCreditFields, $financialAccount, CRM_Core_BAO_CustomField::getFieldsForImport('Contribution') ); @@ -857,26 +884,26 @@ INNER JOIN civicrm_contact contact ON ( contact.id = civicrm_contribution.conta 'headerPattern' => '/^honor_type_label$/i', 'where' => 'honor_type.label', ), - 'soft_credit_name' => array( - 'name' => 'soft_credit_name', + 'contribution_soft_credit_name' => array( + 'name' => 'contribution_soft_credit_name', 'title' => 'Soft Credit Name', 'headerPattern' => '/^soft_credit_name$/i', 'where' => 'civicrm_contact_d.display_name', ), - 'soft_credit_email' => array( - 'name' => 'soft_credit_email', + 'contribution_soft_credit_email' => array( + 'name' => 'contribution_soft_credit_email', 'title' => 'Soft Credit Email', 'headerPattern' => '/^soft_credit_email$/i', 'where' => 'soft_email.email', ), - 'soft_credit_phone' => array( - 'name' => 'soft_credit_phone', + 'contribution_soft_credit_phone' => array( + 'name' => 'contribution_soft_credit_phone', 'title' => 'Soft Credit Phone', 'headerPattern' => '/^soft_credit_phone$/i', 'where' => 'soft_phone.phone', ), - 'soft_credit_contact_id' => array( - 'name' => 'soft_credit_contact_id', + 'contribution_soft_credit_contact_id' => array( + 'name' => 'contribution_soft_credit_contact_id', 'title' => 'Soft Credit Contact ID', 'headerPattern' => '/^soft_credit_contact_id$/i', 'where' => 'civicrm_contribution_soft.contact_id', diff --git a/CRM/Contribute/BAO/Query.php b/CRM/Contribute/BAO/Query.php index da9c4ad1fd..da3ed8e8b5 100644 --- a/CRM/Contribute/BAO/Query.php +++ b/CRM/Contribute/BAO/Query.php @@ -140,7 +140,7 @@ class CRM_Contribute_BAO_Query { } // LCD 716 - if (!empty($query->_returnProperties['soft_credit_name'])) { + if (!empty($query->_returnProperties['contribution_soft_credit_name'])) { $query->_select['contribution_soft_credit_name'] = "civicrm_contact_d.display_name as contribution_soft_credit_name"; $query->_element['contribution_soft_credit_name'] = 1; $query->_tables['civicrm_contribution'] = 1; @@ -148,21 +148,28 @@ class CRM_Contribute_BAO_Query { $query->_tables['civicrm_contribution_soft_contact'] = 1; } - if (!empty($query->_returnProperties['soft_credit_amount'])) { + if (!empty($query->_returnProperties['contribution_soft_credit_amount'])) { $query->_select['contribution_soft_credit_amount'] = "civicrm_contribution_soft.amount as contribution_soft_credit_amount"; $query->_element['contribution_soft_credit_amount'] = 1; $query->_tables['civicrm_contribution'] = 1; $query->_tables['civicrm_contribution_soft'] = 1; } - if (!empty($query->_returnProperties['soft_credit_type'])) { + if (!empty($query->_returnProperties['contribution_soft_credit_type'])) { $query->_select['contribution_soft_credit_type'] = "contribution_softcredit_type.label as contribution_soft_credit_type"; $query->_element['contribution_soft_credit_type'] = 1; $query->_tables['civicrm_contribution'] = 1; $query->_tables['contribution_softcredit_type'] = 1; } - if (!empty($query->_returnProperties['soft_credit_email'])) { + if (!empty($query->_returnProperties['contribution_soft_credit_contribution_id'])) { + $query->_select['contribution_soft_credit_contribution_id'] = "civicrm_contribution_soft.contribution_id as contribution_soft_credit_contribution_id"; + $query->_element['contribution_soft_credit_contribution_id'] = 1; + $query->_tables['civicrm_contribution'] = 1; + $query->_tables['civicrm_contribution_soft'] = 1; + } + + if (!empty($query->_returnProperties['contribution_soft_credit_email'])) { $query->_select['contribution_soft_credit_email'] = "soft_email.email as contribution_soft_credit_email"; $query->_element['contribution_soft_credit_email'] = 1; $query->_tables['civicrm_contribution'] = 1; @@ -171,7 +178,7 @@ class CRM_Contribute_BAO_Query { $query->_tables['civicrm_contribution_soft_email'] = 1; } - if (!empty($query->_returnProperties['soft_credit_phone'])) { + if (!empty($query->_returnProperties['contribution_soft_credit_phone'])) { $query->_select['contribution_soft_credit_email'] = "soft_phone.phone as contribution_soft_credit_phone"; $query->_element['contribution_soft_credit_phone'] = 1; $query->_tables['civicrm_contribution'] = 1; @@ -796,9 +803,10 @@ class CRM_Contribute_BAO_Query { if ($includeSoftCredits) { $properties = array_merge( $properties, array( - 'soft_credit_name' => 1, - 'soft_credit_amount' => 1, - 'soft_credit_type' => 1, + 'contribution_soft_credit_name' => 1, + 'contribution_soft_credit_amount' => 1, + 'contribution_soft_credit_type' => 1, + 'contribution_soft_credit_contribution_id' => 1, ) ); } diff --git a/CRM/Export/BAO/Export.php b/CRM/Export/BAO/Export.php index 442aa6c3f0..246e090399 100644 --- a/CRM/Export/BAO/Export.php +++ b/CRM/Export/BAO/Export.php @@ -308,6 +308,13 @@ class CRM_Export_BAO_Export { if ($queryMode != CRM_Contact_BAO_Query::MODE_CONTACTS) { $componentReturnProperties = CRM_Contact_BAO_Query::defaultReturnProperties($queryMode); + if ($queryMode == CRM_Contact_BAO_Query::MODE_CONTRIBUTE) { + // Following is not automatically populated because contribution search doesn't require them by default + $componentReturnProperties['contribution_soft_credit_name'] = 1; + $componentReturnProperties['contribution_soft_credit_amount'] = 1; + $componentReturnProperties['contribution_soft_credit_type'] = 1; + $componentReturnProperties['contribution_soft_credit_contribution_id'] = 1; + } $returnProperties = array_merge($returnProperties, $componentReturnProperties); if (!empty($extraReturnProperties)) { -- 2.25.1