Skip to content

Commit

Permalink
Merge pull request #11572 from civicrm/4.7.30-rc
Browse files Browse the repository at this point in the history
4.7.30 rc to master
  • Loading branch information
eileenmcnaughton authored Jan 22, 2018
2 parents 0ade53d + d25fed1 commit 940762f
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 14 deletions.
14 changes: 14 additions & 0 deletions CRM/Contribute/Form/AbstractEditPayment.php
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,15 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task {
*/
public $billingFieldSets = array();

/**
* Monetary fields that may be submitted.
*
* These should get a standardised format in the beginPostProcess function.
*
* These fields are common to many forms. Some may override this.
*/
protected $submittableMoneyFields = ['total_amount', 'net_amount', 'non_deductible_amount', 'fee_amount'];

/**
* Pre process function with common actions.
*/
Expand Down Expand Up @@ -567,6 +576,11 @@ protected function beginPostProcess() {
$this->_params['ip_address'] = CRM_Utils_System::ipAddress();

self::formatCreditCardDetails($this->_params);
foreach ($this->submittableMoneyFields as $moneyField) {
if (isset($this->_params[$moneyField])) {
$this->_params[$moneyField] = CRM_Utils_Rule::cleanMoney($this->_params[$moneyField]);
}
}
}

/**
Expand Down
1 change: 1 addition & 0 deletions CRM/Contribute/Form/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -1396,6 +1396,7 @@ protected function submit($submittedValues, $action, $pledgePaymentID) {
// would cause breakage for negative values in some cases.
$submittedValues['total_amount'] = CRM_Utils_Array::value('amount', $submittedValues);
}

if ($this->_id) {
if ($this->_compId) {
if ($this->_context == 'participant') {
Expand Down
1 change: 1 addition & 0 deletions CRM/Member/BAO/Membership.php
Original file line number Diff line number Diff line change
Expand Up @@ -2404,6 +2404,7 @@ public static function recordMembershipContribution(&$params, $ids = array()) {
$contributionParams['receipt_date'] = (CRM_Utils_Array::value('receipt_date', $params)) ? $params['receipt_date'] : 'null';
$contributionParams['source'] = CRM_Utils_Array::value('contribution_source', $params);
$contributionParams['non_deductible_amount'] = 'null';
$contributionParams['skipCleanMoney'] = TRUE;
$contributionParams['payment_processor'] = CRM_Utils_Array::value('payment_processor_id', $params);
$contributionSoftParams = CRM_Utils_Array::value('soft_credit', $params);
$recordContribution = array(
Expand Down
11 changes: 9 additions & 2 deletions tests/phpunit/CRM/Contribute/Form/ContributionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,16 @@ public function tearDown() {

/**
* Test the submit function on the contribution page.
*
* @param string $thousandSeparator
*
* @dataProvider getThousandSeparators
*/
public function testSubmit() {
public function testSubmit($thousandSeparator) {
$this->setCurrencySeparators($thousandSeparator);
$form = new CRM_Contribute_Form_Contribution();
$form->testSubmit(array(
'total_amount' => 50,
'total_amount' => $this->formatMoneyInput(1234),
'financial_type_id' => 1,
'contact_id' => $this->_individualId,
'payment_instrument_id' => array_search('Check', $this->paymentInstruments),
Expand All @@ -156,6 +161,8 @@ public function testSubmit() {
CRM_Core_Action::ADD);
$contribution = $this->callAPISuccessGetSingle('Contribution', array('contact_id' => $this->_individualId));
$this->assertEmpty($contribution['amount_level']);
$this->assertEquals(1234, $contribution['total_amount']);
$this->assertEquals(1234, $contribution['net_amount']);
}

/**
Expand Down
27 changes: 19 additions & 8 deletions tests/phpunit/CRM/Event/Form/ParticipantTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,14 @@ public function testSubmitUpaidPriceChangeWhileStillPending() {
/**
* Initial test of submit function.
*
* @param string $thousandSeparator
*
* @dataProvider getThousandSeparators
*
* @throws \Exception
*/
public function testSubmitWithPayment() {
public function testSubmitWithPayment($thousandSeparator) {
$this->setCurrencySeparators($thousandSeparator);
$form = $this->getForm(array('is_monetary' => 1, 'financial_type_id' => 1));
$form->_mode = 'Live';
$form->_quickConfig = TRUE;
Expand Down Expand Up @@ -156,23 +161,28 @@ public function testSubmitWithPayment() {
13 => 1,
),
'amount_level' => 'Too much',
'fee_amount' => 55,
'total_amount' => 55,
'fee_amount' => $this->formatMoneyInput(1550.55),
'total_amount' => $this->formatMoneyInput(1550.55),
'from_email_address' => 'abc@gmail.com',
'send_receipt' => 1,
'receipt_text' => '',
));
$participants = $this->callAPISuccess('Participant', 'get', array());
$this->assertEquals(1, $participants['count']);
$contribution = $this->callAPISuccessGetSingle('Contribution', array());
$this->assertEquals(55, $contribution['total_amount']);
$this->assertEquals(1550.55, $contribution['total_amount']);
$this->assertEquals('Debit Card', $contribution['payment_instrument']);
}

/**
* Test offline participant mail.
*
* @param string $thousandSeparator
*
* @dataProvider getThousandSeparators
*/
public function testParticipantOfflineReceipt() {
public function testParticipantOfflineReceipt($thousandSeparator) {
$this->setCurrencySeparators($thousandSeparator);
$mut = new CiviMailUtils($this, TRUE);

//Get workflow id of event_offline receipt.
Expand All @@ -197,11 +207,12 @@ public function testParticipantOfflineReceipt() {
'msg_html' => $newMsg,
));

$this->testSubmitWithPayment();
$this->testSubmitWithPayment($thousandSeparator);
//Check if type is correctly populated in mails.
$mail = $mut->checkMailLog(array(
$mail = $mut->checkMailLog([
'<p>Test event type - 1</p>',
)
$this->formatMoneyInput(1550.55),
]
);
}

Expand Down
13 changes: 9 additions & 4 deletions tests/phpunit/CRM/Member/Form/MembershipTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -430,8 +430,13 @@ public function testFormRuleFixedJoin6MonthsAgo() {

/**
* Test the submit function of the membership form.
*
* @param string $thousandSeparator
*
* @dataProvider getThousandSeparators
*/
public function testSubmit() {
public function testSubmit($thousandSeparator) {
$this->setCurrencySeparators($thousandSeparator);
$form = $this->getForm();
$form->preProcess();
$this->mut = new CiviMailUtils($this, TRUE);
Expand All @@ -448,7 +453,7 @@ public function testSubmit() {
'max_related' => '',
'num_terms' => '1',
'source' => '',
'total_amount' => '50.00',
'total_amount' => $this->formatMoneyInput(1234.56),
'financial_type_id' => '2', //Member dues, see data.xml
'soft_credit_type_id' => '',
'soft_credit_contact_id' => '',
Expand Down Expand Up @@ -500,15 +505,15 @@ public function testSubmit() {

$this->_checkFinancialRecords(array(
'id' => $contribution['id'],
'total_amount' => 50,
'total_amount' => 1234.56,
'financial_account_id' => 2,
'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array(
'id' => $this->_paymentProcessorID,
'return' => 'payment_instrument_id',
)),
), 'online');
$this->mut->checkMailLog(array(
'50',
CRM_Utils_Money::format('1234.56'),
'Receipt text',
));
$this->mut->stop();
Expand Down

0 comments on commit 940762f

Please sign in to comment.