CRM-18471: format money custom field
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Tue, 26 Apr 2016 13:13:01 +0000 (18:43 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Wed, 27 Apr 2016 07:43:40 +0000 (13:13 +0530)
additional fixes

minor fixes

minor fix

CRM/Core/BAO/CustomField.php
tests/phpunit/CRM/Core/BAO/CustomQueryTest.php

index 13d0568151bc704a8bc7f6374fc969b44fbd3b84..f91e8cc9e2278e19aa14b6f5e701d08329fa8198 100644 (file)
@@ -1250,6 +1250,16 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
       case 'TextArea':
         $display = nl2br($display);
         break;
+
+      case 'Text':
+        if ($field['data_type'] == 'Money' && isset($value)) {
+          //$value can also be an array(while using IN operator from search builder or api).
+          foreach ((array) $value as $val) {
+            $disp[] = CRM_Utils_Money::format($val);
+          }
+          $display = implode(', ', $disp);
+        }
+        break;
     }
     return $display;
   }
index 26629efcaf26fcfa67326cd75e733888072f2da2..b738467ac3267f85d2019037463f8aa93adb60ad 100644 (file)
@@ -121,6 +121,11 @@ class CRM_Core_BAO_CustomQueryTest extends CiviUnitTestCase {
         "civicrm_value_testsearchcus_1." . strtolower($type) . "_field_{$customField['id']} BETWEEN \"$from\" AND \"$to\"",
         $queryObj->_where[0][0]
       );
+      //CRM-18471 - display qill as '$ amount' for money
+      if ($type == 'Money') {
+        $from = "$ $from";
+        $to = "$ $to";
+      }
       $this->assertEquals($queryObj->_qill[0][0], "$type field BETWEEN $from, $to");
     }
   }
@@ -150,7 +155,7 @@ class CRM_Core_BAO_CustomQueryTest extends CiviUnitTestCase {
       $customFieldName = 'custom_' . $customField['id'];
 
       $expectedValue = ($isDate) ? '"20150606235959"' : (($type == 'Money') ? $data : "\"$data\"");
-      $expectedQillValue = ($isDate) ? "'June 6th, 2015 11:59 PM'" : $data;
+      $expectedQillValue = ($isDate) ? "'June 6th, 2015 11:59 PM'" : (($type == 'Money') ? "$ $data" : $data);
 
       // Assigning the relevant form value to be within a custom key is normally done in
       // build field params. It would be better if it were all done in convertFormValues