"Partially Paid" status problem with financial transactions
How it currently works
A. If a partial amount has been paid to a "Pending" contribution, a new payment financial transaction with the partial amount will be created and the contribution is updated to "Partially Paid". Then if the contribution's status is edited to "Completed", no new financial transaction will be created.
B. When editing the status of a "Pending" contribution to "Partially Paid", no new financial transaction will be created. Then if the contribution's status is edited to "Completed", again, no new financial transaction will be created.
How it should work
A. If a partial amount has been paid to a "Pending" contribution, a new payment financial transaction with the partial amount will be created and the contribution is updated to "Partially Paid". Then if the contribution's status is edited to "Completed", a new payment financial transaction with the remaining amount should be created.
B. A "Pending" contribution's status probably should not be allowed to be directly edited to "Partially Paid". If there is a reason that it has to be available, when the "Partially Paid" contribution is edited to "Completed" status, a payment financial transaction with full amount should be created.
Solution
-
When a "Partially Paid" contribution is being edited to "Completed" status (not via recording payment), CiviCRM should automatically generate a payment financial transaction with the remaining amount with correct credit and debit accounts.
-
Remove "Partially Paid" option from contribution status dropdown.
Even if we decide to not do anything about point 2, the fix for point 1 should generate a full amount payment financial transaction in scenario B which is more correct than it is at the moment.
Further discussion
I started an email thread 2 month back about various of issues around contribution status transition and financial transactions. This is for addressing one of the issues. Maybe for longer term, we can start to consider downgrading "Contribution Status" field from a physical field to a soft field which displays invoice fulfilment information based on order amount and amount paid calculation. We might not be able to avoid an "Is cancelled/ refunded" field under the current structure in order to indicate the intention to cancel a posted contribution.
Just to mention this here since it's related. I will start new ticket/ thread if there is enough interest in discussing this further.