use number wiget for weight fields in all forms
[civicrm-core.git] / CRM / Price / Form / Option.php
index b57665a6ace99094a58a9383ddb6f2ceee4e6b99..7970ac0e9e9741f83e5d82f3a36e398c50ba9a9c 100644 (file)
@@ -3,7 +3,7 @@
  +--------------------------------------------------------------------+
  | CiviCRM version 5                                                  |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2018                                |
+ | Copyright CiviCRM LLC (c) 2004-2019                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2018
+ * @copyright CiviCRM LLC (c) 2004-2019
  * $Id$
  *
  */
@@ -52,6 +52,13 @@ class CRM_Price_Form_Option extends CRM_Core_Form {
    */
   protected $_oid;
 
+  /**
+   * Array of Money fields
+   *
+   * @var array
+   */
+  protected $_moneyFields = ['amount', 'non_deductible_amount'];
+
   /**
    * Set variables up before form is built.
    *
@@ -85,7 +92,9 @@ class CRM_Price_Form_Option extends CRM_Core_Form {
       CRM_Price_BAO_PriceFieldValue::retrieve($params, $defaults);
 
       // fix the display of the monetary value, CRM-4038
-      $defaults['value'] = CRM_Utils_Money::format(CRM_Utils_Array::value('value', $defaults), NULL, '%a');
+      foreach ($this->_moneyFields as $field) {
+        $defaults[$field] = CRM_Utils_Money::format(CRM_Utils_Array::value($field, $defaults), NULL, '%a');
+      }
     }
 
     $memberComponentId = CRM_Core_Component::getComponentID('CiviMember');
@@ -223,7 +232,7 @@ class CRM_Price_Form_Option extends CRM_Core_Form {
       $this->add('textarea', 'help_post', ts('Post Option Help'));
 
       // weight
-      $this->add('text', 'weight', ts('Order'), NULL, TRUE);
+      $this->add('number', 'weight', ts('Order'), NULL, TRUE);
       $this->addRule('weight', ts('is a numeric field'), 'numeric');
 
       // is active ?
@@ -339,7 +348,9 @@ class CRM_Price_Form_Option extends CRM_Core_Form {
       $params = $this->controller->exportValues('Option');
       $fieldLabel = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $this->_fid, 'label');
 
-      $params['amount'] = CRM_Utils_Rule::cleanMoney(trim($params['amount']));
+      foreach ($this->_moneyFields as $field) {
+        $params[$field] = CRM_Utils_Rule::cleanMoney(trim($params[$field]));
+      }
       $params['price_field_id'] = $this->_fid;
       $params['is_default'] = CRM_Utils_Array::value('is_default', $params, FALSE);
       $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE);