0

My only question is, whether anyone of you has ever implemented functionality like this in PopCommerce.

Scenario: imagine you receive a proforma invoice (usually shortly after you submit a purchase order to your supplier), which you record into the system (probably as something similar to mantle.account.invoice.Invoice). It is a document, which you treat as a liability. But you do not put it into costs, because you still expect a (full/normal) invoice to come afterwards, but you pay it. Later on, when this full invoice comes, you record it into the system. And preferably, linkink these two (invoices) together, because you are not going to pay the full invoice, as it was already paid on behalf of the proforma invoice. It is like having a single accounting case in two related documents.

Is a functionality similar to this implemented in mantle-usl? I have checked the tests in mantle-usl and I have not found it.

mrovnanik
  • 123
  • 9

1 Answers1

0

Currently Mantle USL does not use a separate Invoice record for this. Generally when paying an invoice before it is finalized you just create a Payment for the invoice but don't finalize/approve the invoice, i.e. leave it open until you get the final invoice so it isn't posted yet as a liability. This is basically a pre-payment to be booked in the GL in an unapplied payment asset account (like 216000000 which is a PREPAID_EXPENSE class account). Once the invoice is finalized set it's status as such and it will post to the GL, then apply the payment (the current EditInvoice screen in SimpleScreens will find the unapplied payment automatically).

This approach takes into account that the invoice total may change before it is finalized, and you may end up with too much or too little in the payment (if too much do a refund, if too little do an additional payment and apply it to the invoice; in the current EditInvoice screen there is a simple form that does both).

David E. Jones
  • 1,721
  • 1
  • 9
  • 8
  • Your solution would be perfect, but it has one limitation for me, that I cannot override without change in the logic. I need the proforma invoice (the prepaid expense) to pass the approval process, because only then it can be paid for. That is how I constructed the worklfow for this customer. – mrovnanik Jul 20 '16 at 08:32
  • What I am thinking of right now is having both invoices (the proforma and the real one) treated as two Invoice records, wtih info that they both are interconnected. When user enters a new invoice and links it with previously added proforma, I will get the payment info from the proforma and update the new invoice status to approved. – mrovnanik Jul 20 '16 at 08:39