From 9eb6085dfe35821a3caeab02738d65edca183a87 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Thu, 4 Apr 2019 11:07:29 +1100 Subject: [PATCH] Convert recieve_date and renewal_date on membership forms to use datepicker rather than jcalendar --- CRM/Member/Form/Membership.php | 27 +++-------------- CRM/Member/Form/MembershipRenewal.php | 30 +++++-------------- .../CRM/Member/Form/MembershipCommon.tpl | 2 +- .../CRM/Member/Form/MembershipRenewal.tpl | 2 +- 4 files changed, 14 insertions(+), 47 deletions(-) diff --git a/CRM/Member/Form/Membership.php b/CRM/Member/Form/Membership.php index b246aedb85..0f6555a26a 100644 --- a/CRM/Member/Form/Membership.php +++ b/CRM/Member/Form/Membership.php @@ -101,16 +101,6 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { */ protected $_membershipIDs = array(); - /** - * An array to hold a list of date fields on the form - * so that they can be converted to ISO in a consistent manner - * - * @var array - */ - protected $_dateFields = array( - 'receive_date' => array('default' => 'now'), - ); - /** * Set entity fields to be assigned to the form. */ @@ -323,10 +313,8 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { $defaults = parent::setDefaultValues(); //setting default join date and receive date - list($now, $currentTime) = CRM_Utils_Date::setDateDefaults(); if ($this->_action == CRM_Core_Action::ADD) { - $defaults['receive_date'] = $now; - $defaults['receive_date_time'] = $currentTime; + $defaults['receive_date'] = date('Y-m-d H:i:s'); } $defaults['num_terms'] = 1; @@ -365,10 +353,6 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { //get back original object campaign id. $defaults['campaign_id'] = $memberCampaignId; - if (!empty($defaults['receive_date'])) { - list($defaults['receive_date']) = CRM_Utils_Date::setDateDefaults($defaults['receive_date']); - } - // Contribution::getValues() over-writes the membership record's source field value - so we need to restore it. if (!empty($defaults['membership_source'])) { $defaults['source'] = $defaults['membership_source']; @@ -633,7 +617,7 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { $this->add('text', 'total_amount', ts('Amount')); $this->addRule('total_amount', ts('Please enter a valid amount.'), 'money'); - $this->addDate('receive_date', ts('Received'), FALSE, array('formatType' => 'activityDateTime')); + $this->add('datepicker', 'receive_date', ts('Received'), [], FALSE, ['time' => TRUE]); $this->add('select', 'payment_instrument_id', ts('Payment Method'), @@ -1043,7 +1027,7 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { else { $form->assign('receiptType', 'membership signup'); } - $form->assign('receive_date', CRM_Utils_Date::processDate(CRM_Utils_Array::value('receive_date', $formValues))); + $form->assign('receive_date', CRM_Utils_Array::value('receive_date', $formValues)); $form->assign('formValues', $formValues); if (empty($lineItem)) { @@ -1139,9 +1123,6 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { $config = CRM_Core_Config::singleton(); - // @todo this is no longer required if we convert some date fields. - $this->convertDateFieldsToMySQL($formValues); - $membershipTypeValues = array(); foreach ($this->_memTypeSelected as $memType) { $membershipTypeValues[$memType]['membership_type_id'] = $memType; @@ -1486,7 +1467,7 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { } } $now = date('YmdHis'); - $params['receive_date'] = date('YmdHis'); + $params['receive_date'] = $now; $params['invoice_id'] = $formValues['invoiceID']; $params['contribution_source'] = ts('%1 Membership Signup: Credit card or direct debit (by %2)', array(1 => $membershipType, 2 => $userName) diff --git a/CRM/Member/Form/MembershipRenewal.php b/CRM/Member/Form/MembershipRenewal.php index 7d711b134d..d90ea044e7 100644 --- a/CRM/Member/Form/MembershipRenewal.php +++ b/CRM/Member/Form/MembershipRenewal.php @@ -109,16 +109,6 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { */ protected $membershipTypeName = ''; - /** - * An array to hold a list of datefields on the form - * so that they can be converted to ISO in a consistent manner - * - * @var array - */ - protected $_dateFields = array( - 'receive_date' => array('default' => 'now'), - ); - /** * Set entity fields to be assigned to the form. */ @@ -190,10 +180,9 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { $defaults = parent::setDefaultValues(); // set renewal_date and receive_date to today in correct input format (setDateDefaults uses today if no value passed) - list($now, $currentTime) = CRM_Utils_Date::setDateDefaults(); + $now = date('Y-m-d'); $defaults['renewal_date'] = $now; - $defaults['receive_date'] = $now; - $defaults['receive_date_time'] = $currentTime; + $defaults['receive_date'] = $now . ' ' . date('H:i:s'); if ($defaults['id']) { $defaults['record_contribution'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipPayment', @@ -223,9 +212,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { $scTypes = CRM_Core_OptionGroup::values("soft_credit_type"); $defaults['soft_credit_type_id'] = CRM_Utils_Array::value(ts('Gift'), array_flip($scTypes)); - $renewalDate = CRM_Utils_Date::processDate(CRM_Utils_Array::value('renewal_date', $defaults), - NULL, NULL, 'Y-m-d' - ); + $renewalDate = CRM_Utils_Array::value('renewal_date', $defaults); $this->assign('renewalDate', $renewalDate); $this->assign('member_is_test', CRM_Utils_Array::value('member_is_test', $defaults)); @@ -339,7 +326,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { $this->applyFilter('__ALL__', 'trim'); - $this->addDate('renewal_date', ts('Date Renewal Entered'), FALSE, array('formatType' => 'activityDate')); + $this->add('datepicker', 'renewal_date', ts('Date Renewal Entered'), [], FALSE, ['time' => FALSE]); $this->add('select', 'financial_type_id', ts('Financial Type'), array('' => ts('- select -')) + CRM_Contribute_PseudoConstant::financialType() @@ -354,7 +341,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { $this->add('text', 'total_amount', ts('Amount')); $this->addRule('total_amount', ts('Please enter a valid amount.'), 'money'); - $this->addDate('receive_date', ts('Received'), FALSE, array('formatType' => 'activityDateTime')); + $this->add('datepicker', 'receive_date', ts('Received'), [], FALSE, ['time' => TRUE]); $this->add('select', 'payment_instrument_id', ts('Payment Method'), array('' => ts('- select -')) + CRM_Contribute_PseudoConstant::paymentInstrument(), @@ -436,7 +423,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { // The fields in Renewal form come into this routine in $params array. 'renewal_date' is in the form // We process both the dates before comparison using CRM utils so that they are in same date format if (isset($params['renewal_date'])) { - if (CRM_Utils_Date::processDate($params['renewal_date']) < CRM_Utils_Date::processDate($joinDate)) { + if ($params['renewal_date'] < $joinDate) { $errors['renewal_date'] = ts('Renewal date must be the same or later than Member since (Join Date).'); } } @@ -502,8 +489,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { $this->storeContactFields($this->_params); $this->beginPostProcess(); $now = CRM_Utils_Date::getToday(NULL, 'YmdHis'); - $this->convertDateFieldsToMySQL($this->_params); - $this->assign('receive_date', $this->_params['receive_date']); + $this->assign('receive_date', CRM_Utils_Array::value('receive_date', $this->_params, date('Y-m-d H:i:s'))); $this->processBillingAddress(); list($userName) = CRM_Contact_BAO_Contact_Location::getEmailDetails(CRM_Core_Session::singleton()->get('userID')); $this->_params['total_amount'] = CRM_Utils_Array::value('total_amount', $this->_params, @@ -570,7 +556,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form { $this->assign('trxn_id', $result['trxn_id']); } - $renewalDate = !empty($this->_params['renewal_date']) ? $renewalDate = CRM_Utils_Date::processDate($this->_params['renewal_date']) : NULL; + $renewalDate = !empty($this->_params['renewal_date']) ? $renewalDate = $this->_params['renewal_date'] : NULL; // check for test membership. $isTestMembership = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $this->_membershipId, 'is_test'); diff --git a/templates/CRM/Member/Form/MembershipCommon.tpl b/templates/CRM/Member/Form/MembershipCommon.tpl index bb4bd07021..d47aa3f590 100644 --- a/templates/CRM/Member/Form/MembershipCommon.tpl +++ b/templates/CRM/Member/Form/MembershipCommon.tpl @@ -28,7 +28,7 @@ {$form.receive_date.label} - {include file="CRM/common/jcalendar.tpl" elementName=receive_date} + {$form.receive_date.html} {$form.financial_type_id.label} diff --git a/templates/CRM/Member/Form/MembershipRenewal.tpl b/templates/CRM/Member/Form/MembershipRenewal.tpl index 81013ec444..02f7b0d2e6 100644 --- a/templates/CRM/Member/Form/MembershipRenewal.tpl +++ b/templates/CRM/Member/Form/MembershipRenewal.tpl @@ -84,7 +84,7 @@ {$form.renewal_date.label} - {include file="CRM/common/jcalendar.tpl" elementName=renewal_date} + {$form.renewal_date.html} -- 2.25.1