From 6704d983424b57d5f00ec44705e10c750178f9f6 Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Thu, 22 Dec 2016 19:17:15 +0530 Subject: [PATCH] CRM-19288, added test to check tax amount for multiple participant ---------------------------------------- * CRM-19288: VAT not included for additional participant fee when registering for events https://issues.civicrm.org/jira/browse/CRM-19288 CRM-19288, removed white space ---------------------------------------- * CRM-19288: VAT not included for additional participant fee when registering for events https://issues.civicrm.org/jira/browse/CRM-19288 --- CRM/Event/Form/Registration/Confirm.php | 2 + .../Event/Form/Registration/ConfirmTest.php | 86 +++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/CRM/Event/Form/Registration/Confirm.php b/CRM/Event/Form/Registration/Confirm.php index 77ce52fe96..08f5efad0e 100644 --- a/CRM/Event/Form/Registration/Confirm.php +++ b/CRM/Event/Form/Registration/Confirm.php @@ -1294,9 +1294,11 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration { $_REQUEST['id'] = $form->_eventId = $params['id']; $form->controller = new CRM_Event_Controller_Registration(); $form->_params = $params['params']; + $form->_amount = $form->_totalAmount = CRM_Utils_Array::value('totalAmount', $params); $form->set('params', $params['params']); $form->_values['custom_pre_id'] = array(); $form->_values['custom_post_id'] = array(); + $form->_values['event'] = CRM_Utils_Array::value('event', $params); $form->_contributeMode = $params['contributeMode']; $eventParams = array('id' => $params['id']); CRM_Event_BAO_Event::retrieve($eventParams, $form->_values['event']); diff --git a/tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php b/tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php index 82f9910b8e..1132dde1f6 100644 --- a/tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php +++ b/tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php @@ -78,4 +78,90 @@ class CRM_Event_Form_Registration_ConfirmTest extends CiviUnitTestCase { $this->callAPISuccessGetSingle('Participant', array()); } + /** + * Test for Tax amount for multiple participant. + * + * @throws \Exception + */ + public function testTaxMultipleParticipant() { + $params = array('is_monetary' => 1, 'financial_type_id' => 1); + $event = $this->eventCreate($params); + CRM_Event_Form_Registration_Confirm::testSubmit(array( + 'id' => $event['id'], + 'contributeMode' => 'direct', + 'registerByID' => $this->createLoggedInUser(), + 'totalAmount' => 440, + 'event' => reset($event['values']), + 'params' => array( + array( + 'qfKey' => 'e6eb2903eae63d4c5c6cc70bfdda8741_2801', + 'entryURL' => "http://dmaster.local/civicrm/event/register?reset=1&id={$event['id']}", + 'first_name' => 'Participant1', + 'last_name' => 'LastName', + 'email-Primary' => 'participant1@example.com', + 'scriptFee' => '', + 'scriptArray' => '', + 'additional_participants' => 2, + 'payment_processor_id' => 0, + 'bypass_payment' => '', + 'MAX_FILE_SIZE' => '33554432', + 'is_primary' => 1, + 'is_pay_later' => 1, + 'campaign_id' => NULL, + 'defaultRole' => 1, + 'participant_role_id' => '1', + 'currencyID' => 'USD', + 'amount_level' => 'Tiny-tots (ages 5-8) - 1', + 'amount' => '100.00', + 'tax_amount' => 10, + 'ip_address' => '127.0.0.1', + 'invoiceID' => '57adc34957a29171948e8643ce906332', + 'trxn_id' => '123456789', + 'button' => '_qf_Register_upload', + ), + array( + 'qfKey' => 'e6eb2903eae63d4c5c6cc70bfdda8741_2801', + 'entryURL' => "http://dmaster.local/civicrm/event/register?reset=1&id={$event['id']}", + 'first_name' => 'Participant2', + 'last_name' => 'LastName', + 'email-Primary' => 'participant2@example.com', + 'scriptFee' => '', + 'scriptArray' => '', + 'campaign_id' => NULL, + 'is_pay_later' => 1, + 'participant_role_id' => '1', + 'currencyID' => 'USD', + 'amount_level' => 'Tiny-tots (ages 9-18) - 1', + 'amount' => '200.00', + 'tax_amount' => 20, + ), + array( + 'qfKey' => 'e6eb2903eae63d4c5c6cc70bfdda8741_2801', + 'entryURL' => "http://dmaster.local/civicrm/event/register?reset=1&id={$event['id']}", + 'first_name' => 'Participant3', + 'last_name' => 'LastName', + 'email-Primary' => 'participant3@example.com', + 'scriptFee' => '', + 'scriptArray' => '', + 'campaign_id' => NULL, + 'is_pay_later' => 1, + 'participant_role_id' => '1', + 'currencyID' => 'USD', + 'amount_level' => 'Tiny-tots (ages 5-8) - 1', + 'amount' => '100.00', + 'tax_amount' => 10, + ), + ), + )); + $this->callAPISuccessGetCount('Participant', array(), 3); + $contribution = $this->callAPISuccessGetSingle( + 'Contribution', + array( + 'return' => array('tax_amount', 'total_amount'), + ) + ); + $this->assertEquals($contribution['tax_amount'], 40, 'Invalid Tax amount.'); + $this->assertEquals($contribution['total_amount'], 440, 'Invalid Tax amount.'); + } + } -- 2.25.1