Add new Payment.sendconfirmation api
authoreileen <emcnaughton@wikimedia.org>
Mon, 11 Feb 2019 03:39:55 +0000 (16:39 +1300)
committereileen <emcnaughton@wikimedia.org>
Wed, 13 Feb 2019 23:24:12 +0000 (12:24 +1300)
commita79d2ec285ee3bce8ea8ca91e7b357a3cc2cea47
tree9b68f89ae33c49b4c6ef279ed978aaa38a2c08a7
parent82d7f2e99d9d963b22075bf674b18289a7415955
Add new Payment.sendconfirmation api

This adds a new api Payment.sendconfirmation intended to be an equivalent of
Contribution.sendconfirmation.

The key thing this needs to be able to do is to load up all
related information to assign to the template - this is not all covered in this
PR & until it is functionally equivalent to AdditionalPayment::sendEmail
we can't switch over but since it's new functionality we should be able to
merge & keep working on it.

Note that there is discussion on the PR this relates to (#13330) about what should
happen if 'Payment.create' api accepts 'is_email_receipt'. I think the most logical
outcome is that receipts would go out if it caused the contribution to be completed
(ie. we pass is_email_receipt into completetransaction api).

However, I don't feel like that is 'settled' yet - separating into a second api
(Payment.sendnotification) means we will have 2 generic function which can be called
from multiple places in the code rather than 2 functions tightly tied to the form layer.
I think it's OK if it is 2 not one
CRM/Contribute/BAO/Contribution.php
CRM/Core/BAO/FinancialTrxn.php
CRM/Financial/BAO/Payment.php
api/v3/Payment.php
tests/phpunit/api/v3/PaymentTest.php