1 (edited by Dynamic 06/12/2017 05:47:38 am)

Topic: Prepayment Allocation Issue

I am loving the prepayment feature in FA 2.4 as 90% of my servicers and purchases are prepaid. There is an issue though that will lead to problems down the road. Let me describe it as best as I can.

When you make a prepaid order and key in all the items, you can set the pre-payment amount in the "Pre-Payment Required" field. Then you can go ahead and accept a payment against this sales order for that amount. When you query either the payment or the order, you see that are associated together - the payment is allocated to the order.

All working good so far.

The problem comes in the final processing of the order. When you deliver the items and make the final prepayment invoice, the payment is dissociated from the order and just remains there in the account pointing to nothing. In essence, it is still allocated because it does not appear in the unallocated transactions, but when you query the payment it points to nothing. Querry the order or the invoice and you find that they are associated together but have no associated payments.

Now, this may not be a problem right away, but as we all know in accounts every entry must be associated with something. If a customer ever raises a query you will not be able to trace where these naked payments point to, not to mention the issues auditors will have with seemingly unallocated payments.

Can this be fixed so that at least the payment remains associated with the original order?

By the way, the same thing happens to prepaid purchase orders as well. Prepayments become dissociated when the final invoice is entered.

Re: Prepayment Allocation Issue

If a dissociation is attempted when the final payment is made, can it then be re-allocated and satisfy the issue?

3 (edited by Dynamic 06/12/2017 04:01:27 pm)

Re: Prepayment Allocation Issue

Let me try that and report in a few...

Re: Prepayment Allocation Issue

If you dissociate the payment from the sales order, you cannot make delivery on it.

Re: Prepayment Allocation Issue

it seems the problem happens after Invoicing Prepayment Order, the payment made after this step wouldnt appear in the customer balance.. so the outstanding would be wrong.

Re: Prepayment Allocation Issue

if you check the following image https://ibb.co/cq9GyQ

it shows the customer balance report for a customer, who bought one item for 1250, using the prepayment method mentioned in this wiki article

Here is how to produce the bug ..
1- Create a new sales order entry and select  Prepayment payment "in my case the sales order total was 1250$".
2- Using the customer payment, we added the amount of 250$ "the prepaid value"
3- Convert sales order to delivery.
4- prepayment entry --> Final Invoice Entry

Now the payment you make after this wouldn't be subtracted from the outstanding , instead it would show as negative value in allocated.

Post's attachments

Customer_Balance.png 25.8 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

Re: Prepayment Allocation Issue

Yes, I noted this on a prepayment that was partial. It leaves the danger of being able to allocate this payment to a future invoice. This makes this bug more serious than I thought it out to be.

Re: Prepayment Allocation Issue

@joe: any way forward?

Re: Prepayment Allocation Issue

I guess we will let Janusz look into this.


Re: Prepayment Allocation Issue

Meanwhile, I strongly suggest that people refrain using this feature for now, it is doing strange things after the invoice is made.

11 (edited by Dynamic 06/14/2017 10:49:58 am)

Re: Prepayment Allocation Issue

The other bug it has is this: If you select "Invoice Prepaid Orders", you can invoice the sales order directly without first making a delivery. HOWEVER, if you do this, the original sales order remains in the unprocessed state, and then there is no auto delivery note created, so inventory items remain unchanged. If you cancel / delete the sales order, the system registers an error on the created invoice.

In my example, I deleted a sales order #1436 after I realized it has not been processed after I directly invoiced the prepaid order without delivery, now the invoice shows - "You have missing or invalid sales document in the database (type:30, number:1436)."

Re: Prepayment Allocation Issue

Those issues just has been fixed in stable branch:

Regarding issue reported in post #11, once prepayment order is partially invoiced, it can no longer be edited. This is because for orders maintained in prepayment mode in fact partial payment is invoiced, not delivery. This is necessary to keep the invoice amount intact during whole payment process till final invoice.
Thank you for reporting the bugs.

13 (edited by Alaa 06/15/2017 12:45:07 am)

Re: Prepayment Allocation Issue


Thanks for the fast action,
i just replaced the folders that have been updated with the old ones in my installation...
which means that includes, purchase, sales and lang folders have been updated with the fix..

following the same steps mentioned in post #6, i can confirm that the customer payments made after the final invoice has been issued is appearing in the allocated as it should...

But we got a little problem left..
The total and grand total still show the amount that has been paid by the customer after the final invoice has been issued ..
in short.. the customer payment amount appears under the allocated field but its not calculated in the total and grand total..

please check attached image.

Post's attachments

Customer_Balance_Error.png 51.8 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

14 (edited by Dynamic 06/15/2017 04:57:24 am)

Re: Prepayment Allocation Issue


That's some good work you've done there, your efforts are appreciated.

Upon further testing, this is what I have found (which may also answer you @Alaa). When you process the prepaid order and invoice it, the payment does not become immediately allocated to the final invoice. HOWEVER, you can re-allocate it to the invoice. There is still a minor bug though: unlike last time where you could not re-allocate it, now you can, but the payment does not show up as unallocated, it actually shows up in the settled items in green (even though it points to nothing). When you select the payment from this list you can allocate it to the invoice.

I request a better fix so that the payment should be automatically allocated to the final invoice. This will settle this matter for good.

Re: Prepayment Allocation Issue

Sorry Janusz, I was too hasty in my reporting. The testing and behavior above are for PREPAID PURCHASE ORDERS.

I have tested it with prepaid customer orders and it works beautifully, the payment becomes allocated automatically to the final invoice. So the fix is only required for the prepaid supplier purchase orders.

16 (edited by Alaa 06/15/2017 11:07:33 am)

Re: Prepayment Allocation Issue


How to reallocate it after the final invoice ??
whenever i do this the outstand value in the customer balance increases when it should show 0.

17 (edited by Dynamic 06/15/2017 12:38:57 pm)

Re: Prepayment Allocation Issue

Goto Sales -> Allocate Customer Payments or Credit Notes -> Select your customer and check the "Show Settled Items:" box. The payments should appear there. Click on the allocate arrow on the far right of the offending payment then allocate it to the invoice.

Though it appears your issue was created by the previous bug. I am not able to duplicate your condition on my system on a new sales order after the fix. However, that account still nets out to zero. Can you print out the statement to verify?

Re: Prepayment Allocation Issue

What are your steps for creating a new prepayment sales from A to Z please ?
maybe i am not doing it the right way.

Re: Prepayment Allocation Issue

Here is what i got so far

going to sales -> Allocate Customer Payments or Credit Notes, then check "show settled items" then click on allocate.. doesn't work for me on a new installation.

what works is using Sales -> Customer Allocation Inquiry, select the customer then check the box to show settled items.
after that clicking on the dollar logo would fix the problem.. thye customer balance and statement would show the correct value.. but a new problem is created.

The amount that you settled in the Customer Allocation Inquiry w'll appear as negative value in the Aged Customer Analysis since the customer payment is duplicated for some reason.

Please check your Aged Customer Analysis report.

Re: Prepayment Allocation Issue

@Alaa, I was testing with 100% prepayment, there is no bug with that. BUT, your test was with partial prepayment, and you are right, THERE IS A BUG IN THE FINAL INVOICE with partial prepayment. Here is how to duplicate that bug:

1. Open a sales order with prepayment payment option and populate with items / QTYs.
2. Set "Pre-Payment Required:" to the desired partial amount, then click place order.
3. Go to Sales -> Payments and receive the payment for the order. NOTE: By default, if you click "ALL" it will populate the "This Allocation" field with the payment for the entire order. This is fine if the customer prepays 100%. You will need to manually enter a lower value in "This Allocation" field if they paid less.
4. Click "Add Payment"
5. Sales -> Delivery Against Sales Orders, click on the dispatch arrow on the far right of the order, and "Process dispatch" on the delivery note page.
6. Sales -> Invoice Prepaid Orders. Click the Prepayment Invoice icon on the far right of the order to be invoiced. Next page should be the Prepayment or Final Invoice Entry page, and it will show the original prepayment, which will be the value to be invoiced. Process Invoice. Now view this invoice. It correctly shows the prepayment allocated to it. Now print this invoice. It correctly prints the invoice and shows that this a PREPAYMENT INVOICE, which is ONLY FOR THE VALUE OF THE PREPAYMENT.

Here is the tricky part and where the bug is: You need to issue a final invoice for the remainder of the payment.

7. Sales -> Invoice Prepaid Orders. Click the Prepayment Invoice icon on the far right of the same order as above to be invoiced. By default, the payment terms will still be prepaid. If you attempt to process this invoice, you will get this error: "There are no non-invoiced payments for this order. If you want to issue the final invoice, select delayed or cash payment terms." This is actually correct, now the final invoice cannot be prepaid because the customer will be posted paying. So, select one of the delayed payment terms. Now the magic happens, you will see next to "Invoiced here:" the correct value left to be invoiced. Process this invoice. It should now read "FINAL INVOICE", and will be for the correct balance owed by the customer.
8. Entry customer payment for this invoice ->enter the payment and additional payment.

@ Janusz, this is where the bug comes in. Instead of the final invoice reporting in the customer account as the balance on the invoice, it reports THE ENTIRE INVOICE AMOUNT and makes it look like the customer still owes money.

Re: Prepayment Allocation Issue

Another thing I have noticed: if you look at the customer account transactions, both the prepayment invoice and the final invoice show the FULL AMOUNT instead of the partial amounts. However, the GL account entries are correct and just show the partial amounts!

Re: Prepayment Allocation Issue

Thanks.. couldn't have said it better myself.

but why would you use prepayment method for Cash sales ?

Re: Prepayment Allocation Issue

You don't. If you do less than 100% prepayment then you still issue a final invoice for the difference, but this invoice, since it is issued for final payment can only be entered with one of the post payment methods. Only use cash if the customer is paying the difference on the spot, otherwise use the other deferred payments.

Re: Prepayment Allocation Issue

Has anyone looked into this bug yet? It's still unresolved for partial prepayments.