From: monishdeb <monish.deb@webaccessglobal.com> Date: Sat, 6 Dec 2014 20:27:18 +0000 (+0530) Subject: Api test fixes X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=243a6bce070e61c9a06abc31b9061529cf50f9e7;p=civicrm-core.git Api test fixes --- diff --git a/CRM/Contact/BAO/Query.php b/CRM/Contact/BAO/Query.php index 3a6ec31952..d7a2f9b39d 100644 --- a/CRM/Contact/BAO/Query.php +++ b/CRM/Contact/BAO/Query.php @@ -5649,6 +5649,9 @@ AND displayRelType.is_active = 1 if (is_array($fieldValue)) { $op = key($fieldValue); $fieldValue = $fieldValue[$op]; + if (is_array($fieldValue)) { + $fieldValue = implode(', ', $fieldValue); + } } return array($op, $fieldValue); } diff --git a/CRM/Contribute/BAO/Query.php b/CRM/Contribute/BAO/Query.php index ac9f02240b..19df0a5a2e 100644 --- a/CRM/Contribute/BAO/Query.php +++ b/CRM/Contribute/BAO/Query.php @@ -124,10 +124,18 @@ class CRM_Contribute_BAO_Query { $query->_tables['contribution_status'] = 1; } - // get payment instruments - if (!empty($query->_returnProperties['payment_instrument'])) { - $query->_select['contribution_payment_instrument'] = "payment_instrument.name as contribution_payment_instrument"; - $query->_element['contribution_payment_instrument'] = 1; + // get payment instrument + if (!empty($query->_returnProperties['contribution_payment_instrument'])) { + $query->_select['payment_instrument'] = "contribution_payment_instrument.label as payment_instrument"; + $query->_element['payment_instrument'] = 1; + $query->_tables['civicrm_contribution'] = 1; + $query->_tables['contribution_payment_instrument'] = 1; + } + + // get payment instrument id + if (!empty($query->_returnProperties['payment_instrument_id'])) { + $query->_select['payment_instrument_id'] = "contribution_payment_instrument.value as payment_instrument_id"; + $query->_element['payment_instrument_id'] = 1; $query->_tables['civicrm_contribution'] = 1; $query->_tables['contribution_payment_instrument'] = 1; } @@ -310,14 +318,12 @@ class CRM_Contribute_BAO_Query { case 'financial_type_id': case 'financial_type': case 'contribution_page_id': - case 'contribution_status': case 'contribution_status_id': case 'contribution_id': case 'contribution_currency_type': case 'contribution_currency': case 'contribution_source': case 'contribution_payment_instrument_id': - case 'contribution_payment_instrument': case 'contribution_trxn_id': case (strpos($name, '_amount') !== FALSE): case (strpos($name, '_date') !== FALSE): @@ -326,7 +332,7 @@ class CRM_Contribute_BAO_Query { } $qillName = $name; $pseudoExtraParam = NULL; - if (in_array($name, array('financial_type', 'contribution_status', 'contribution_payment_instrument'))) { + if (in_array($name, array('financial_type'))) { $name = $name . "_id"; } if (in_array($name, array('financial_type_id', 'contribution_payment_instrument_id'))) { @@ -336,16 +342,15 @@ class CRM_Contribute_BAO_Query { array( 'contribution_id', 'contribution_currency', - 'contribution_payment_instrument_id', - 'contribution_payment_instrument', 'contribution_source', 'contribution_trxn_id', - 'contribution_check_number' + 'contribution_check_number', + 'contribution_payment_instrument_id' ) ) ) { $name = str_replace('contribution_', '', $name); - if ($name != 'source') { + if (!in_array($name, array('source', 'id'))) { $qillName = str_replace('contribution_', '', $qillName); } } @@ -370,6 +375,20 @@ class CRM_Contribute_BAO_Query { $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1; return; + case 'contribution_status': + case 'contribution_payment_instrument': + if (!$value) { + break; + } + $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("$name.label", $op, $value, 'String'); + list($op, $value) = CRM_Contact_BAO_Query::buildQillForFieldValue('CRM_Contribute_DAO_Contribution', $name, $value, $op); + if ($name == 'contribution_payment_instrument') { + $name = 'payment_instrument'; + } + $query->_qill[$grouping][] = ts('%1 %2 %3', array(1 => $fields[$name]['title'], 2 => $op, 3 => $value)); + $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1; + break; + case 'contribution_pcp_made_through_id': case 'contribution_soft_credit_type_id': if (!$value) { @@ -609,8 +628,8 @@ class CRM_Contribute_BAO_Query { case 'contribution_payment_instrument': $from = " $side JOIN civicrm_option_group option_group_payment_instrument ON ( option_group_payment_instrument.name = 'payment_instrument')"; - $from .= " $side JOIN civicrm_option_value payment_instrument ON (civicrm_contribution.payment_instrument_id = payment_instrument.value - AND option_group_payment_instrument.id = payment_instrument.option_group_id ) "; + $from .= " $side JOIN civicrm_option_value contribution_payment_instrument ON (civicrm_contribution.payment_instrument_id = contribution_payment_instrument.value + AND option_group_payment_instrument.id = contribution_payment_instrument.option_group_id ) "; break; case 'contribution_status': @@ -773,7 +792,8 @@ class CRM_Contribute_BAO_Query { 'cancel_date' => 1, 'total_amount' => 1, 'accounting_code' => 1, - 'payment_instrument' => 1, + 'contribution_payment_instrument' => 1, + 'payment_instrument_id' => 1, 'check_number' => 1, 'non_deductible_amount' => 1, 'fee_amount' => 1, @@ -886,8 +906,8 @@ class CRM_Contribute_BAO_Query { // Remove status values that are only used for recurring contributions or pledges (In Progress, Overdue). unset($statusValues['5'], $statusValues['6']); - $form->addSelect('contribution_status', - array('entity' => 'contribution', 'multiple' => 'multiple', 'option_url' => NULL, 'placeholder' => ts('- any -')) + $form->addSelect('contribution_status_id', + array('entity' => 'contribution', 'multiple' => 'multiple', 'label' => ts('Contribution Status(s)'), 'option_url' => NULL, 'placeholder' => ts('- any -')) ); // Add fields for thank you and receipt diff --git a/CRM/Contribute/Form/Search.php b/CRM/Contribute/Form/Search.php index fdb7ffafb8..b8035c8c6b 100644 --- a/CRM/Contribute/Form/Search.php +++ b/CRM/Contribute/Form/Search.php @@ -269,7 +269,7 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search { $config = CRM_Core_Config::singleton(); if (!empty($_POST)) { - foreach (array('financial_type_id', 'contribution_soft_credit_type_id', 'contribution_status', 'contribution_source', 'contribution_trxn_id') as $element) { + foreach (array('financial_type_id', 'contribution_soft_credit_type_id', 'contribution_status_id', 'contribution_source', 'contribution_trxn_id') as $element) { $value = CRM_Utils_Array::value($element, $this->_formValues); if ($value) { if (is_array($value)) { diff --git a/templates/CRM/Contribute/Form/Search/Common.tpl b/templates/CRM/Contribute/Form/Search/Common.tpl index 5e1a1208fd..09c820a441 100644 --- a/templates/CRM/Contribute/Form/Search/Common.tpl +++ b/templates/CRM/Contribute/Form/Search/Common.tpl @@ -34,8 +34,8 @@ {$form.contribution_amount_low.html} {$form.contribution_amount_high.label} {$form.contribution_amount_high.html} </td> - <td><label>{ts}Contribution Status{/ts}</label> <br /> - {$form.contribution_status.html} </td> + <td><label>{$form.contribution_status_id.label}</label> <br /> + {$form.contribution_status_id.html} </td> </tr> <tr> <td> diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index 9f4087a987..67a08de701 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -463,14 +463,11 @@ class api_v3_ContributionTest extends CiviUnitTestCase { 'contribution_payment_instrument_id' => 'Cash', )); $this->assertArrayHasKey('payment_instrument', $contribution['values'][0]); - $this->assertEquals('Cash', $contribution['values'][0]['payment_instrument']); - $this->assertEquals(1, $contribution['count']); - $contribution = $this->callAPISuccess('contribution', 'get', array( - 'sequential' => 1, - 'payment_instrument_id' => 'EFT', - )); + $this->assertEquals('Cash',$contribution['values'][0]['payment_instrument']); + $this->assertEquals(1,$contribution['count']); + $contribution = $this->callAPISuccess('contribution','get',array('sequential' => 1, 'payment_instrument' => 'Cash')); $this->assertArrayHasKey('payment_instrument', $contribution['values'][0]); - $this->assertEquals('EFT', $contribution['values'][0]['payment_instrument']); + $this->assertEquals('Cash',$contribution['values'][0]['payment_instrument']); $this->assertEquals(1, $contribution['count']); $contribution = $this->callAPISuccess('contribution', 'get', array( 'sequential' => 1, @@ -1122,7 +1119,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase { //This should not be required on update: $old_contact_id = $original['values'][$contributionID]['contact_id']; - $old_payment_instrument = $original['values'][$contributionID]['instrument_id']; + $old_payment_instrument = $original['values'][$contributionID]['payment_instrument_id']; $old_fee_amount = $original['values'][$contributionID]['fee_amount']; $old_source = $original['values'][$contributionID]['contribution_source']; @@ -1157,8 +1154,8 @@ class api_v3_ContributionTest extends CiviUnitTestCase { $this->assertEquals($contribution['values'][$contributionID]['contact_id'], $this->_individualId); $this->assertEquals($contribution['values'][$contributionID]['total_amount'], 110.00); - $this->assertEquals($contribution['values'][$contributionID]['financial_type_id'], $this->_financialTypeId); - $this->assertEquals($contribution['values'][$contributionID]['instrument_id'], $old_payment_instrument); + $this->assertEquals($contribution['values'][$contributionID]['financial_type_id'],$this->_financialTypeId ); + $this->assertEquals($contribution['values'][$contributionID]['payment_instrument_id'], $old_payment_instrument); $this->assertEquals($contribution['values'][$contributionID]['non_deductible_amount'], 10.00); $this->assertEquals($contribution['values'][$contributionID]['fee_amount'], $old_fee_amount); $this->assertEquals($contribution['values'][$contributionID]['net_amount'], 100.00); diff --git a/xml/schema/Contribute/Contribution.xml b/xml/schema/Contribute/Contribution.xml index 3844d56f73..c6c320652d 100644 --- a/xml/schema/Contribute/Contribution.xml +++ b/xml/schema/Contribute/Contribution.xml @@ -122,7 +122,7 @@ <field> <name>payment_instrument_id</name> <uniqueName>contribution_payment_instrument_id</uniqueName> - <title>Payment Instrument</title> + <title>Payment Instrument ID</title> <type>int unsigned</type> <comment>FK to Payment Instrument</comment> <pseudoconstant>