From 6ba1830e60ad8eabfa89c2dda28e235c9d7f9120 Mon Sep 17 00:00:00 2001 From: "Matthew Wire (MJW Consulting)" Date: Fri, 19 Oct 2018 19:11:08 +0100 Subject: [PATCH] Convert register_date to datepicker --- CRM/Event/Form/Participant.php | 52 +++++++------------ templates/CRM/Event/Form/Participant.tpl | 8 +-- .../CRM/Event/Form/ParticipantTest.php | 11 ++-- 3 files changed, 23 insertions(+), 48 deletions(-) diff --git a/CRM/Event/Form/Participant.php b/CRM/Event/Form/Participant.php index ec7863ccac2a..3d4e75ddb70f 100644 --- a/CRM/Event/Form/Participant.php +++ b/CRM/Event/Form/Participant.php @@ -213,6 +213,7 @@ public function getDefaultContext() { * Set variables up before form is built. * * @return void + * @throws \CRM_Core_Exception */ public function preProcess() { parent::preProcess(); @@ -420,8 +421,8 @@ public function preProcess() { * This function sets the default values for the form in edit/view mode * the default values are retrieved from the database * - * - * @return void + * @return array + * @throws \CRM_Core_Exception */ public function setDefaultValues() { if ($this->_showFeeBlock) { @@ -467,15 +468,6 @@ public function setDefaultValues() { } } - if ($this->_action & (CRM_Core_Action::VIEW | CRM_Core_Action::BROWSE)) { - $inactiveNeeded = TRUE; - $viewMode = TRUE; - } - else { - $viewMode = FALSE; - $inactiveNeeded = FALSE; - } - //setting default register date if ($this->_action == CRM_Core_Action::ADD) { $statuses = array_flip(CRM_Event_PseudoConstant::participantStatus()); @@ -513,6 +505,7 @@ public function setDefaultValues() { if (!empty($submittedEvent[0])) { $eventID = $submittedEvent[0]; } + $defaults[$this->_id]['register_date'] = date('Y-m-d H:i:s'); } else { $defaults[$this->_id]['record_contribution'] = 0; @@ -532,9 +525,6 @@ public function setDefaultValues() { } } - list($defaults[$this->_id]['register_date'], $defaults[$this->_id]['register_date_time']) - = CRM_Utils_Date::setDateDefaults(CRM_Utils_Array::value('register_date', $defaults[$this->_id]), 'activityDateTime'); - //assign event and role id, this is needed for Custom data building $sep = CRM_Core_DAO::VALUE_SEPARATOR; if (!empty($defaults[$this->_id]['participant_role_id'])) { @@ -586,6 +576,8 @@ public function setDefaultValues() { * Build the form object. * * @return void + * @throws \CRM_Core_Exception + * @throws \CiviCRM_API3_Exception */ public function buildQuickForm() { $participantStatuses = CRM_Event_PseudoConstant::participantStatus(); @@ -680,8 +672,7 @@ public function buildQuickForm() { } } CRM_Campaign_BAO_Campaign::addCampaign($this, $campaignId); - - $this->addDateTime('register_date', ts('Registration Date'), TRUE, array('formatType' => 'activityDateTime')); + $this->add('datepicker', 'register_date', ts('Registration Date'), [], TRUE, array('time' => TRUE)); if ($this->_id) { $this->assign('entityID', $this->_id); @@ -780,7 +771,6 @@ public function buildQuickForm() { /** * Add local and global form rules. * - * * @return void */ public function addRules() { @@ -972,7 +962,9 @@ public function postProcess() { * * @param array $params * - * @return array + * @return string + * @throws \CRM_Core_Exception + * @throws \CiviCRM_API3_Exception */ public function submit($params) { $participantStatus = CRM_Event_PseudoConstant::participantStatus(); @@ -1027,12 +1019,9 @@ public function submit($params) { } else { - //check if discount is selected - if (!empty($params['discount_id'])) { - $discountId = $params['discount_id']; - } - else { - $discountId = $params['discount_id'] = 'null'; + // check that discount_id is set + if (empty($params['discount_id'])) { + $params['discount_id'] = 'null'; } //lets carry currency, CRM-4453 @@ -1100,8 +1089,6 @@ public function submit($params) { $amountOwed = $params['amount']; unset($params['amount']); } - $params['register_date'] = CRM_Utils_Date::processDate($params['register_date'], $params['register_date_time']); - $params['receive_date'] = CRM_Utils_Date::processDate(CRM_Utils_Array::value('receive_date', $params), CRM_Utils_Array::value('receive_date_time', $params)); $params['contact_id'] = $this->_contactId; // overwrite actual payment amount if entered @@ -1123,6 +1110,8 @@ public function submit($params) { $this->_params['participant_register_date'] = $params['register_date']; $roleIdWithSeparator = implode(CRM_Core_DAO::VALUE_SEPARATOR, $this->_params['participant_role_id']); + $now = date('YmdHis'); + if ($this->_mode) { if (!$this->_isPaidEvent) { CRM_Core_Error::fatal(ts('Selected Event is not Paid Event ')); @@ -1150,7 +1139,6 @@ public function submit($params) { $this->_paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getPayment($this->_params['payment_processor_id'], $this->_mode ); - $now = date('YmdHis'); $fields = array(); // set email for primary location. @@ -1273,9 +1261,7 @@ public function submit($params) { $this->set('params', $this->_params); $this->assign('trxn_id', $result['trxn_id']); - $this->assign('receive_date', - CRM_Utils_Date::processDate($this->_params['receive_date']) - ); + $this->assign('receive_date', $this->_params['receive_date']); //add contribution record $this->_params['financial_type_id'] @@ -1387,8 +1373,7 @@ public function submit($params) { $contributionParams['non_deductible_amount'] = 'null'; $contributionParams['receipt_date'] = !empty($params['send_receipt']) ? CRM_Utils_Array::value('receive_date', $params) : 'null'; $contributionParams['contact_id'] = $this->_contactID; - // @todo change receive_date to datepicker field. Strip out all wrangling. - $contributionParams['receive_date'] = $params['receive_date']; + $contributionParams['receive_date'] = CRM_Utils_Array::value('receive_date', $params, 'null'); $recordContribution = array( 'financial_type_id', @@ -1623,7 +1608,7 @@ public function submit($params) { } $this->assign('register_date', $params['register_date']); - if ($params['receive_date']) { + if (isset($params['receive_date'])) { $this->assign('receive_date', $params['receive_date']); } @@ -1633,7 +1618,6 @@ public function submit($params) { $participant[] = array('participant_test', '=', 1, 0, 0); } - $template = CRM_Core_Smarty::singleton(); $customGroup = array(); //format submitted data foreach ($params['custom'] as $fieldID => $values) { diff --git a/templates/CRM/Event/Form/Participant.tpl b/templates/CRM/Event/Form/Participant.tpl index 3fb2212b7b32..df55a17d2f94 100644 --- a/templates/CRM/Event/Form/Participant.tpl +++ b/templates/CRM/Event/Form/Participant.tpl @@ -268,13 +268,7 @@ {$form.register_date.label} - - {if $hideCalendar neq true} - {include file="CRM/common/jcalendar.tpl" elementName=register_date} - {else} - {$form.register_date.value|crmDate} - {/if} - + {$form.register_date.html} {$form.status_id.label} diff --git a/tests/phpunit/CRM/Event/Form/ParticipantTest.php b/tests/phpunit/CRM/Event/Form/ParticipantTest.php index 90fc34bbffbf..4ed8844c0f5c 100644 --- a/tests/phpunit/CRM/Event/Form/ParticipantTest.php +++ b/tests/phpunit/CRM/Event/Form/ParticipantTest.php @@ -21,8 +21,7 @@ public function setUp() { public function testSubmit() { $form = $this->getForm(); $form->submit(array( - 'register_date' => 'now', - 'register_date_time' => '00:00:00', + 'register_date' => date('Ymd'), 'status_id' => 1, 'role_id' => 1, 'event_id' => $form->_eventId, @@ -36,7 +35,7 @@ public function testSubmit() { * * @throws \Exception */ - public function testSubmitUpaidPriceChangeWhileStillPending() { + public function testSubmitUnpaidPriceChangeWhileStillPending() { $form = $this->getForm(array('is_monetary' => 1, 'financial_type_id' => 1)); $form->_quickConfig = TRUE; @@ -66,8 +65,7 @@ public function testSubmitUpaidPriceChangeWhileStillPending() { $form->setAction(CRM_Core_Action::ADD); $form->_priceSetId = $this->_ids['price_set']; $form->submit(array( - 'register_date' => 'now', - 'register_date_time' => '00:00:00', + 'register_date' => date('Ymd'), 'status_id' => 5, 'role_id' => 1, 'event_id' => $form->_eventId, @@ -135,8 +133,7 @@ public function testSubmitWithPayment($thousandSeparator) { 'from_email_id' => array('abc@gmail.com' => 1), ); $form->submit(array( - 'register_date' => 'now', - 'register_date_time' => '00:00:00', + 'register_date' => date('Ymd'), 'status_id' => 1, 'role_id' => 1, 'event_id' => $form->_eventId,