/** * Build all the data structures needed to build the form. */ public function preProcess() { $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this); // this mean it's a batch action if (!$this->_id) { if (!empty($_GET['batch_id'])) { // validate batch ids $batchIds = explode(',', $_GET['batch_id']); foreach ($batchIds as $batchId) { CRM_Utils_Type::validate($batchId, 'Positive'); } $this->_batchIds = $_GET['batch_id']; $this->set('batchIds', $this->_batchIds); } else { $this->_batchIds = $this->get('batchIds'); } if (!empty($_GET['export_format']) && in_array($_GET['export_format'], array('IIF', 'CSV'))) { $this->_exportFormat = $_GET['export_format']; } } else { $this->_batchIds = $this->_id; } $allBatchStatus = CRM_Core_PseudoConstant::get('CRM_Batch_DAO_Batch', 'status_id'); $this->_exportStatusId = CRM_Utils_Array::key('Exported', $allBatchStatus); // check if batch status is valid, do not allow exported batches to export again $batchStatus = CRM_Batch_BAO_Batch::getBatchStatuses($this->_batchIds); foreach ($batchStatus as $batchStatusId) { if ($batchStatusId == $this->_exportStatusId) { CRM_Core_Error::fatal(ts('You cannot exported the batches which were exported earlier.')); } } $session = CRM_Core_Session::singleton(); $session->replaceUserContext(CRM_Utils_System::url('civicrm/financial/financialbatches', "reset=1&batchStatus={$this->_exportStatusId}")); }