-- removed hardcoded values and handled reopened status. CRM-14191
authorPradeep Nayak <pradeep.nayak@webaccess.co.in>
Tue, 15 Apr 2014 21:25:34 +0000 (02:55 +0530)
committerPradeep Nayak <pradeep.nayak@webaccess.co.in>
Tue, 15 Apr 2014 21:25:34 +0000 (02:55 +0530)
----------------------------------------
* CRM-14191:
  https://issues.civicrm.org/jira/browse/CRM-14191

CRM/Batch/BAO/Batch.php
CRM/Batch/Form/Batch.php
CRM/Batch/Form/Entry.php
CRM/Batch/Page/AJAX.php
CRM/Financial/Page/AJAX.php

index f41fbc35188f0b3d3e2911420b81cf460613e38c..5ef02fed175fd722b2557a4773c146152238c59e 100644 (file)
@@ -191,9 +191,14 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
 
     // get batch totals for open batches
     $fetchTotals = array();
+    $batchStatus =  CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id', array('labelColumn' => 'name'));
+    $batchStatus = array(
+      array_search('Open', $batchStatus),
+      array_search('Reopened', $batchStatus),
+    );
     if ($params['context'] == 'financialBatch') {
       foreach ($batches as $id => $batch) {
-        if ($batch['status_id'] == 1) {
+        if (in_array($batch['status_id'], $batchStatus)) {
           $fetchTotals[] = $id;
         }
       }
@@ -270,6 +275,7 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
 
     $batchTypes = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'type_id');
     $batchStatus = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id');
+    $batchStatusByName = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id', array('labelColumn' => 'name'));
     $paymentInstrument = CRM_Contribute_PseudoConstant::paymentInstrument();
 
     $results = array();
@@ -279,7 +285,7 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
       CRM_Core_DAO::storeValues($object, $values);
       $action = array_sum(array_keys($newLinks));
 
-      if ($values['status_id'] == 2 && $params['context'] != 'financialBatch') {
+      if ($values['status_id'] == array_search('Closed', $batchStatusByName) && $params['context'] != 'financialBatch') {
         $newLinks = array();
       }
       elseif ($params['context'] == 'financialBatch') {
@@ -291,14 +297,14 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
           "' value='1'  data-status_id='" .
           $values['status_id']."' class='select-row'></input>";
 
-        switch ($values['status_id']) {
-          case '1':
+        switch ($batchStatusByName[$values['status_id']]) {
+          case 'Open':
             CRM_Utils_Array::remove($newLinks, 'reopen', 'download');
             break;
-          case '2':
+          case 'Closed':
             CRM_Utils_Array::remove($newLinks, 'close', 'edit', 'download');
             break;
-          case '5':
+          case 'Exported':
             CRM_Utils_Array::remove($newLinks, 'close', 'edit', 'reopen', 'export');
         }
       }
@@ -312,7 +318,7 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
         $values['payment_instrument'] = $paymentInstrument[$object->payment_instrument_id];
       }
       $tokens = array('id' => $object->id, 'status' => $values['status_id']);
-      if ($values['status_id'] == CRM_Core_OptionGroup::getValue('batch_status', 'Exported')) {
+      if ($values['status_id'] == array_search('Exported', $batchStatusByName)) {
         $aid = CRM_Core_OptionGroup::getValue('activity_type','Export Accounting Batch');
         $activityParams = array('source_record_id' => $object->id, 'activity_type_id' => $aid);
         $exportActivity = CRM_Activity_BAO_Activity::retrieve($activityParams, $val);
@@ -354,8 +360,9 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
   public static function whereClause($params) {
     $clauses = array();
     // Exclude data-entry batches
+    $batchStatus = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id', array('labelColumn' => 'name'));
     if (empty($params['status_id'])) {
-      $clauses[] = 'batch.status_id <> 3';
+      $clauses[] = 'batch.status_id <> ' . array_search('Data Entry', $batchStatus);
     }
 
     $fields = array(
@@ -378,7 +385,12 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
           $clauses[] = "$table.$field = '$value'";
         }
         elseif ($value) {
-          $clauses[] = "$table.$field = $value";
+          if ($field == 'status_id' && $value == array_search('Open', $batchStatus)) {
+            $clauses[] = "$table.$field IN ($value," . array_search('Reopened', $batchStatus) . ')';
+          }
+          else {
+            $clauses[] = "$table.$field = $value";
+          }
         }
       }
     }
@@ -470,7 +482,7 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
    * excluding batches with data entry in progress
    */
   static function getBatches() {
-    $dataEntryStatusId = CRM_Core_OptionGroup::getValue('batch_status','Data Entry');
+    $dataEntryStatusId = CRM_Core_OptionGroup::getValue('batch_status','Data Entry', 'name');
     $query = "SELECT id, title
       FROM civicrm_batch
       WHERE item_count >= 1
index 7f9aed5b48c4e9c5e78a22afa17cd7ee24637179..6af38ca1d2395f80a1da565a5375da454a1de069 100644 (file)
@@ -124,7 +124,7 @@ class CRM_Batch_Form_Batch extends CRM_Admin_Form {
     }
 
     // always create with data entry status
-    $params['status_id'] = CRM_Core_OptionGroup::getValue('batch_status','Data Entry');;
+    $params['status_id'] = CRM_Core_OptionGroup::getValue('batch_status','Data Entry', 'name');
     $batch = CRM_Batch_BAO_Batch::create($params);
 
     // redirect to batch entry page.
index c2c7fd91487f7ae19318381fe7ea988f7292f644..eb44b8d9d4f0a837b5a3d0e619307a589a1eb575 100644 (file)
@@ -370,7 +370,7 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
     $paramValues = array(
       'id' => $this->_batchId,
       // close status
-      'status_id' => CRM_Core_OptionGroup::getValue('batch_status','Closed'),
+      'status_id' => CRM_Core_OptionGroup::getValue('batch_status', 'Closed', 'name'),
       'total' => $params['actualBatchTotal'],
     );
 
index 5c38d70dea1b5b3291eb0179f40a83244abcd835..b932d0bf37d7a432b41970bfa88605b31eb209f8 100644 (file)
@@ -88,7 +88,7 @@ class CRM_Batch_Page_AJAX {
 
     if ($context != 'financialBatch') {
       // data entry status batches
-      $params['status_id'] = CRM_Core_OptionGroup::getValue('batch_status','Data Entry');
+      $params['status_id'] = CRM_Core_OptionGroup::getValue('batch_status','Data Entry', 'name');
     }
 
     $params['context'] = $context;
index 73b0f0e40936c7b1caed7719b76b7b4da249e035..3138aa2c7bb46247d6766eb038074f0d1d74f1fa 100644 (file)
@@ -214,9 +214,9 @@ class CRM_Financial_Page_AJAX {
             // Update totals when closing a batch
             $params = $totals[$recordID];
           case 'reopen':
-            $status = $op == 'close' ? 'Closed' : 'Open';
+            $status = $op == 'close' ? 'Closed' : 'Reopened';
             $ids['batchID'] = $recordID;
-            $batchStatus = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id');
+            $batchStatus = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id', array('labelColumn' => 'name'));
             $params['status_id'] = CRM_Utils_Array::key($status, $batchStatus);
             $session = CRM_Core_Session::singleton();
             $params['modified_date'] = date('YmdHis');