Using a test version of InvoicePlane I am currently playing around with all the functionality before using it with real data.
I have noticed some strange things regarding payments. For example:
I create an invoice for £1100 and send email to the client. For whatever reason the client only pays £500!! So I enter a payment of £500. Now when I go back to the dashboard InvoicePlane has marked the invoice as “PAID”. But it has not been paid! The client still owes £600.
This is a big problem as now when I look at the dashboard I think that there are no overdue payments and logout.
What I expect to happen:
When entering a payment for an invoice, if the full amount has not been paid, then the invoice remains red and overdue until full payment is made (balance = 0.00).
My questions:
Is this a bug / error or is IP designed to do this?
How does everybody else deal with this issue? The issue being if the client pays less than they are supposed to?
For anyone else reading this I found a workaround until a fix is made. It’s not ideal but it works.
If a client pays less than what they are supposed to you can follow these steps:
Go to “Payments” --> “Enter Payment” using the top menu (DO NOT CHANGE THE STATUS OF AN INVOICE!!)
Choose the invoice the payment is for and enter the amount the client actually paid
Now go to the invoice and change the status from “Paid” to “Sent” (it still lets you edit the invoice this way)
Now on you dashboard it will still show as overdue, but the balance will be less the amount the client already paid
If you find the invoice is read only and you can’t change the status using the above instructions, then go to InvoicePlane’s “System Settings” and under the “Invoice” tab make sure the option for “Set the Invoice to read-only on” is “Paid”.
If however you already or accidentally manually changed the status of an invoice to Paid, then you will need to edit config file as per the wiki:
Go to /application/config/config.php and replace
$config['disable_read_only'] = FALSE;
with
$config['disable_read_only'] = TRUE;
Then go to the invoice and change the status from “Paid” to “Sent”. I would then recommend that you change this setting back as it is very dangerous to leave it like this as you could end up changing an invoice after it has already been paid.
Hope this helps someone.
Also if anybody knows a better solution please let me know in the comments below…