Api test fixes
authormonishdeb <monish.deb@webaccessglobal.com>
Sat, 6 Dec 2014 20:27:18 +0000 (01:57 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Wed, 28 Jan 2015 07:45:31 +0000 (13:15 +0530)
CRM/Contact/BAO/Query.php
CRM/Contribute/BAO/Query.php
CRM/Contribute/Form/Search.php
templates/CRM/Contribute/Form/Search/Common.tpl
tests/phpunit/api/v3/ContributionTest.php
xml/schema/Contribute/Contribution.xml

index 3a6ec31952a33e7e8105339bb8b79efb76b9261a..d7a2f9b39d6d145a120a34ddfcb1c3d3e32a0592 100644 (file)
@@ -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);
     }
index ac9f02240b6ecc33a4ad2e00c727e7b821136992..19df0a5a2e9ac001c3b3a561e08ee0d25683658e 100644 (file)
@@ -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
index fdb7ffafb8819528c4fd04ec3392f999e49aa24d..b8035c8c6bb62659f481d10e4f79f83e1e20f24a 100644 (file)
@@ -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)) {
index 5e1a1208fd49f1f604fe7d54e65e4db6d396743d..09c820a441f022209c7767cb49b63b663b26333f 100644 (file)
@@ -34,8 +34,8 @@
   {$form.contribution_amount_low.html} &nbsp;&nbsp;
   {$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>
index 9f4087a9876715cb4e5965981929fe7438f310f1..67a08de701050e22afc3132a83effc2ebe96f5de 100644 (file)
@@ -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);
index 3844d56f730ffc833da8d918e574bbde21ffb9b3..c6c320652d7e60c2c720f1d7934a5d3b1ada8759 100644 (file)
   <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>