Merge pull request #14579 from civicrm/5.15
[civicrm-core.git] / CRM / Pledge / Form / Payment.php
index 29df48a524044cb94b369aa15e8bf304974f787f..ea24635c075bef52a4e582d69c4069c15ce301ec 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
  */
 
 /**
@@ -43,6 +43,20 @@ class CRM_Pledge_Form_Payment extends CRM_Core_Form {
    */
   public $_id;
 
+  /**
+   * Explicitly declare the entity api name.
+   */
+  public function getDefaultEntity() {
+    return 'PledgePayment';
+  }
+
+  /**
+   * Explicitly declare the form context.
+   */
+  public function getDefaultContext() {
+    return 'create';
+  }
+
   /**
    * Set variables up before form is built.
    */
@@ -62,11 +76,10 @@ class CRM_Pledge_Form_Payment extends CRM_Core_Form {
    * the default values are retrieved from the database.
    */
   public function setDefaultValues() {
-    $defaults = array();
+    $defaults = [];
     if ($this->_id) {
       $params['id'] = $this->_id;
       CRM_Pledge_BAO_PledgePayment::retrieve($params, $defaults);
-      list($defaults['scheduled_date']) = CRM_Utils_Date::setDateDefaults($defaults['scheduled_date']);
       if (isset($defaults['contribution_id'])) {
         $this->assign('pledgePayment', TRUE);
       }
@@ -82,69 +95,63 @@ class CRM_Pledge_Form_Payment extends CRM_Core_Form {
    */
   public function buildQuickForm() {
     // add various dates
-    $this->addDate('scheduled_date', ts('Scheduled Date'), TRUE);
+    $this->addField('scheduled_date', [], TRUE, FALSE);
 
     $this->addMoney('scheduled_amount',
       ts('Scheduled Amount'), TRUE,
-      array('readonly' => TRUE),
+      ['readonly' => TRUE],
       TRUE,
       'currency',
       NULL,
       TRUE
     );
 
-    $optionTypes = array(
+    $optionTypes = [
       '1' => ts('Adjust Pledge Payment Schedule?'),
       '2' => ts('Adjust Total Pledge Amount?'),
-    );
+    ];
     $element = $this->addRadio('option_type',
       NULL,
       $optionTypes,
-      array(), '<br/>'
+      [], '<br/>'
     );
 
-    $this->addButtons(array(
-        array(
+    $this->addButtons([
+        [
           'type' => 'next',
           'name' => ts('Save'),
           'spacing' => '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
           'isDefault' => TRUE,
-        ),
-        array(
+        ],
+        [
           'type' => 'cancel',
           'name' => ts('Cancel'),
-        ),
-      )
-    );
+        ],
+    ]);
   }
 
   /**
    * Process the form submission.
    */
   public function postProcess() {
-    // get the submitted form values.
     $formValues = $this->controller->exportValues($this->_name);
-    $params = array();
-    $formValues['scheduled_date'] = CRM_Utils_Date::processDate($formValues['scheduled_date']);
-    $params['scheduled_date'] = CRM_Utils_Date::format($formValues['scheduled_date']);
-    $params['currency'] = CRM_Utils_Array::value('currency', $formValues);
-    $now = date('Ymd');
+    $params = [
+      'id' => $this->_id,
+      'scheduled_date' => $formValues['scheduled_date'],
+      'currency' => $formValues['currency'],
+    ];
 
-    if (CRM_Utils_Date::overdue(CRM_Utils_Date::customFormat($params['scheduled_date'], '%Y%m%d'), $now)) {
+    if (CRM_Utils_Date::overdue($params['scheduled_date'])) {
       $params['status_id'] = CRM_Core_PseudoConstant::getKey('CRM_Pledge_BAO_Pledge', 'status_id', 'Overdue');
     }
     else {
       $params['status_id'] = CRM_Core_PseudoConstant::getKey('CRM_Pledge_BAO_Pledge', 'status_id', 'Pending');
     }
 
-    $params['id'] = $this->_id;
     $pledgeId = CRM_Core_DAO::getFieldValue('CRM_Pledge_DAO_PledgePayment', $params['id'], 'pledge_id');
 
     CRM_Pledge_BAO_PledgePayment::add($params);
-    $adjustTotalAmount = FALSE;
-    if (CRM_Utils_Array::value('option_type', $formValues) == 2) {
-      $adjustTotalAmount = TRUE;
-    }
+    $adjustTotalAmount = (CRM_Utils_Array::value('option_type', $formValues) == 2);
 
     $pledgeScheduledAmount = CRM_Core_DAO::getFieldValue('CRM_Pledge_DAO_PledgePayment',
       $params['id'],
@@ -161,7 +168,7 @@ class CRM_Pledge_Form_Payment extends CRM_Core_Form {
     }
     // update pledge status
     CRM_Pledge_BAO_PledgePayment::updatePledgePaymentStatus($pledgeId,
-      array($params['id']),
+      [$params['id']],
       $params['status_id'],
       NULL,
       $formValues['scheduled_amount'],