-
-
Notifications
You must be signed in to change notification settings - Fork 827
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix calculation and assignment of taxAmount on contribution page confirmation #23346
Conversation
(Standard links)
|
test this please |
If this passes r-run then I think it's all good - I took a look at the code & I think it makes sense |
I tried running this but I'm not sure I'm setting it up correctly. It does get rid of a deprecation warning ( My setup:
On the contribution page first page, it looks fine. On the review page, it shows this, without tax:
When I confirm, it also displays without the tax on the thankyou page, and it has The receipt does not include tax. The contributions appear to have the tax recorded, but show that only the principal is paid, so show a balance still owing. |
// calculated it rather than coming from 'params' | ||
$this->assign('totalTaxAmount', $params['tax_amount']); | ||
$taxAmount = 0; | ||
foreach ($tplLineItems ?? [] as $lineItems) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this is cos we have line items 'handy' - but I'd rather grab it from the db contribution than rely on whatever got through the form wrangling to this point - ie cleanest is ALWAYs assign tax_amount & grab the value from the DB - it will be zero if not a tax situation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there are a number of issues with "Separate membership payment" and this PR only scratches the surface.
If you look in confirm.tpl and thankyou.tpl you'll see there is special handling for $is_separate_payment
which does not include displaying tax. But the tax is also not assigned properly to the form. In my view we should be getting rid of all that special handling and relying on the "lineitems" display in all cases (as we've already done with contributions in the backend).
@demeritcowboy The problems that you found, are they caused by this PR or pre-existing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok it looks pre-existing, so I see now this is just about replacing the $params part.
I don't have an opinion on where it should come from - maybe just if there's any hooks that would make a difference and one would handle that better.
Merging as there are more pre-existing issues to resolve in future PRs and this helps us towards that goal |
Overview
When using a contribution page with "Separate Membership Payment" we get an error if both membership and contribution amount have a tax component. It was trying to use
$params['tax_amount']
for each contribution which was incorrect and came from the form submission and was the sum of both.Before
Incorrect usage of tax_amount
After
Calculated tax_amount
Technical Details
Comments
Tested using a contribution page with
Separate Membership Payment
enabled, recurring set to every 1 day and installments=10. Using "quick config" so amounts configured directly on contribution page configuration and not via pricesets.