/** * Process the form submission. * * @return void */ public function postProcess() { if ($this->_action & CRM_Core_Action::DELETE) { $errors = CRM_Financial_BAO_FinancialType::del($this->_id); if (!empty($errors)) { CRM_Core_Error::statusBounce($errors['error_message'], CRM_Utils_System::url('civicrm/admin/financial/financialType', "reset=1&action=browse"), ts('Cannot Delete')); } CRM_Core_Session::setStatus(ts('Selected financial type has been deleted.'), ts('Record Deleted'), 'success'); } else { $params = $ids = array(); // store the submitted values in an array $params = $this->exportValues(); if ($this->_action & CRM_Core_Action::UPDATE) { $ids['financialType'] = $this->_id; } $financialType = CRM_Financial_BAO_FinancialType::add($params, $ids); if ($this->_action & CRM_Core_Action::UPDATE) { $url = CRM_Utils_System::url('civicrm/admin/financial/financialType', 'reset=1&action=browse'); CRM_Core_Session::setStatus(ts('The financial type "%1" has been updated.', array(1 => $financialType->name)), ts('Saved'), 'success'); } else { $url = CRM_Utils_System::url('civicrm/admin/financial/financialType/accounts', 'reset=1&action=browse&aid=' . $financialType->id); $statusArray = array(1 => $financialType->name, 2 => $financialType->name, 3 => CRM_Utils_Array::value(0, $financialType->titles), 4 => CRM_Utils_Array::value(1, $financialType->titles), 5 => CRM_Utils_Array::value(2, $financialType->titles)); if (empty($financialType->titles)) { $text = ts('Your Financial "%1" Type has been created and assigned to an existing financial account with the same title. You should review the assigned account and determine whether additional account relationships are needed.', $statusArray); } else { $text = ts('Your Financial "%1" Type has been created, along with a corresponding income account "%2". That income account, along with standard financial accounts "%3", "%4" and "%5" have been linked to the financial type. You may edit or replace those relationships here.', $statusArray); } CRM_Core_Session::setStatus($text, ts('Saved'), 'success', array('expires' => 0)); } $session = CRM_Core_Session::singleton(); $session->replaceUserContext($url); } }
/** * Function to process the form * * @access public * @return void */ public function postProcess() { if ($this->_action & CRM_Core_Action::DELETE) { $errors = CRM_Financial_BAO_FinancialType::del($this->_id); if (!empty($errors)) { $message = ts('This item cannot be deleted.') . $errors['error_message']; CRM_Core_Session::setStatus($message); return CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/financial/financialType', "reset=1&action=browse")); } CRM_Core_Session::setStatus(ts('Selected financial type has been deleted.')); } else { $params = $ids = array(); // store the submitted values in an array $params = $this->exportValues(); if ($this->_action & CRM_Core_Action::UPDATE) { $ids['financialType'] = $this->_id; } $financialType = CRM_Financial_BAO_FinancialType::add($params, $ids); if ($this->_action & CRM_Core_Action::UPDATE) { $url = CRM_Utils_System::url('civicrm/admin/financial/financialType', 'reset=1&action=browse'); CRM_Core_Session::setStatus(ts('The financial type \'%1\' has been saved.', array(1 => $financialType->name))); } else { $url = CRM_Utils_System::url('civicrm/admin/financial/financialType/accounts', 'reset=1&action=browse&aid=' . $financialType->id); $statusArray = array(1 => $financialType->name, 2 => $financialType->name, 3 => $financialType->titles[0], 4 => $financialType->titles[1], 5 => $financialType->titles[2]); CRM_Core_Session::setStatus(ts('Your Financial \'%1\' Type has been created, along with a corresponding income account \'%2\'. That income account, along with standard financial accounts \'%3\', \'%4\' and \'%5\' have been linked to the financial type. You may edit or replace those relationships here.', $statusArray)); } $session = CRM_Core_Session::singleton(); $session->replaceUserContext($url); } }
/** * Check method del() */ public function testDel() { $params = array('name' => 'Donations', 'is_deductible' => 0, 'is_active' => 1); $ids = array(); $financialType = CRM_Financial_BAO_FinancialType::add($params, $ids); CRM_Financial_BAO_FinancialType::del($financialType->id); $params = array('id' => $financialType->id); $result = CRM_Financial_BAO_FinancialType::retrieve($params, $defaults); $this->assertEquals(empty($result), TRUE, 'Verify financial types record deletion.'); }