CRM-19288, added test to check tax amount for multiple participant
authorPradeep Nayak <pradpnayak@gmail.com>
Thu, 22 Dec 2016 13:47:15 +0000 (19:17 +0530)
committerPradeep Nayak <pradpnayak@gmail.com>
Fri, 23 Dec 2016 14:21:00 +0000 (19:51 +0530)
----------------------------------------
* 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
tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php

index 77ce52fe963ed49119489ea6f17ae0a849f515e2..08f5efad0e69cb873ddfd1afe6bd0aa0c34f901d 100644 (file)
@@ -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']);
index 82f9910b8e3fb8836075424c78794a6cfc9f65f0..1132dde1f6dca988f65896992e222bf85a0a445c 100644 (file)
@@ -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&amp;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' => '\ 1Tiny-tots (ages 5-8) - 1\ 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&amp;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' => '\ 1Tiny-tots (ages 9-18) - 1\ 1',
+          'amount' => '200.00',
+          'tax_amount' => 20,
+        ),
+        array(
+          'qfKey' => 'e6eb2903eae63d4c5c6cc70bfdda8741_2801',
+          'entryURL' => "http://dmaster.local/civicrm/event/register?reset=1&amp;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' => '\ 1Tiny-tots (ages 5-8) - 1\ 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.');
+  }
+
 }