Provide precautionary handling for theoretical error scenario. #15748
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Provides protection against fatal errors when adding payments if financial_items have not been created. This may only be a theoretical risk but it buys us more time to ensure it is not a 'thing' without users hitting regressions if it is.
Before
Adding a payment to a contribution with no line item financial items results in a fatal.
It's unclear at this stage if there is any legitimate way to create a contribution with line items & no financial items for those lines but should that be the case it would be handled with this patch.
After
Missing item is created, no fatal.
Technical Details
While testing payments I hit a bug where I tried to add a payment to a contribution with no financial items.
I never managed to replicate it again or determine how the payment came to be in that state but
it's been playing in my mind that people could get fatal errors if the financial_items don't exist
and dealing with those as regression reports will very tough. So my plan is
Comments
@kcristiano this provides at least a band-aid for the non-replicable error I hit that has been playing on my mind