Merge pull request #3984 from yashodha/CRM-15171
[civicrm-core.git] / CRM / Financial / Form / FinancialType.php
index ddd78a913e4a789299e82d6d75d346b8db220d9f..7edafe387cfe1c720422258aaf20e6a7ddf153e0 100644 (file)
@@ -48,11 +48,11 @@ class CRM_Financial_Form_FinancialType extends CRM_Contribute_Form {
    */
   public function buildQuickForm() {
     parent::buildQuickForm();
+    $this->setPageTitle(ts('Financial Type'));
 
     $this->_id = CRM_Utils_Request::retrieve('id' , 'Positive', $this);
     if ($this->_id) {
       $this->_title = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialType', $this->_id, 'name');
-      CRM_Utils_System::setTitle($this->_title . ' - ' . ts( 'Financial Type'));
     }
     if ($this->_action & CRM_Core_Action::DELETE) {
       return;
@@ -71,8 +71,10 @@ class CRM_Financial_Form_FinancialType extends CRM_Contribute_Form {
     if ($this->_action == CRM_Core_Action::UPDATE && CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialType', $this->_id, 'is_reserved','vid')) {
       $this->freeze(array('is_active'));
     }
-
-    //$this->addFormRule( array( 'CRM_Financial_Form_FinancialType', 'formRule'), $this );
+    
+    $this->addRule('name', ts('A financial type with this name already exists. Please select another name.'),'objectExists',
+      array('CRM_Financial_DAO_FinancialType', $this->_id)
+    );
   }
 
   /**
@@ -85,11 +87,9 @@ class CRM_Financial_Form_FinancialType extends CRM_Contribute_Form {
     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_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.'));
+      CRM_Core_Session::setStatus(ts('Selected financial type has been deleted.'), ts('Record Deleted'), 'success');
     }
     else {
       $params = $ids = array( );
@@ -103,22 +103,29 @@ class CRM_Financial_Form_FinancialType extends CRM_Contribute_Form {
       $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)));
+        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 => $financialType->titles[0],
-          4 => $financialType->titles[1],
-          5 => $financialType->titles[2],
+          3 => CRM_Utils_Array::value(0, $financialType->titles),
+          4 => CRM_Utils_Array::value(1, $financialType->titles),
+          5 => CRM_Utils_Array::value(2, $financialType->titles),
         );
-        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));
+        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);
     }
   }
+
 }