xTuple.com xTupleU Blog & News Customer Support

Adjusting posted invoice

I’m in the process of migrating our accounting system to PostBooks.

Our current accounting system, Sage MAS 200, allows user to perform an adjustment to a posted invoice via its A/R Invoice Data Entry screen. When user enters an existing invoice number, the system warns the user that an invoice with the same number already exists and then prompts user whether s/he wants to make an adjustment to the invoice.

This might be an over simplification of the process, but, it appears that when users enters an adjustment to an existing invoice, it modifies the invoice balance, creates an invoice “adjustment” record in the header table, and then post it to the general ledger. At the same time, the system maintain ties to the original invoice number and therefore, user can see the “history” of the invoice when s/he looks at the list of invoices for said customer. S/he can drill down to the source journal of the original posted invoice, and also to the source journal for the adjustment to the invoice.

I’ve experimented with creating invoices in PostBooks, posting it, creating cash receipts and applying it invoices. I’ve also experimented in creating credit and debit memo. I referenced xTuple ERP Reference Guide heavily to guide me trough the process. At this point, I’m scratching my head on how to replicate the same invoice adjustment process that our system currently has in PostBooks. Once posted, PostBooks does not appear to let me create and post an adjustment to an invoice while at the same time maintaining ties to the same invoice number.

If or when needed, please feel free to ask me for more details on what our current system does in regards to making adjustment to posted invoice.

Hi,

It sounds like you’ve done your research. What you’re seeing is exactly right. The software explicitly prevents users from changing the value/balance of already posted invoices. You’ll need to use another method to accomplish what you want.

Best regards,
Pierce

To be clear - we view that as a feature, not a bug!

But you do have the ability to void a posted invoice - which reverses the full amount of the invoice, and throws it back into A/R. That ability is controlled by a separate privilege, which is assigned in the User setup. And in the forthcoming 4.11.1, you’ll be able to specify the date of the reversal when you void the invoice.

Thank you Pierce and Ned for your quick response. I’ve been interviewing our accounting personnel on individual basis on what they do in A/R, A/P, and Bank Rec modules in our system. Some of the actions they do (which our system currently allows them to do) do not appear to have direct counterpart in PostBooks. I do need to figure out how best to replicate their day to day activities in Sage MAS…in PostBooks.

Here’s an example when this adjustment need to take place. I’m throwing this out in hope that someone can help me achieve similar result in PostBooks. As a background, our business, as third party logistics broker, do not involve inventory related items. Both our sales and cost of sales involve non-inventory services. We invoice our customer the cost to move their freight, we are then invoiced by trucking company who moves the freight for our customer on our behalf.

Our regular customer invoice would be charging our customer for service fee (Dr A/R, Cr Sales). When they wire transfer money or send checks for payment, we then enter cash receipt (Dr Cash, Cr A/R). On the flip side, when we receive an invoice from a trucking company, we enter A/P Invoice (i.e., Misc Voucher) for payment (Dr Cost of Sale, Cr A/P). Then we cut the check when it’s time to do so (Dr A/P, Cr Cash). This is what happens most of time…but not all the time.

One scenario (out of many different narratives) when adjustment need to take place is when customer files a claim to us when something wrong happened (e.g., freight rejected at receiver because driver did something wrong). In term of timeline, this can happen even after we’ve invoiced our customer AND received payment from them.

In such scenario, we typically have to send the money back to the customer. This involves the following dance routine: (1) reduce the invoice to zero (Dr Sales, Cr A/R), (2) moves the fund we received from the customer into Claims GL (Dr A/R, Cr Claims), (3) use this amount to create A/P Invoice (Misc. Voucher) (Dr Claims, Cr A/P) for the customer (now a vendor), and finally (4) cutting the check (Dr A/P, Cr Cash). On the flip side, if it’s determined that the fault is not ours, we then would reduce our liability to the vendor by adjusting the A/P Invoice (Dr A/P and Cr Cost of Sale).

It’s important for us to reduce the invoice to zero because essentially for reporting purposes, the sales didn’t really happen, thus, we can’t use the invoice as our gross profit (GP) calculation.

Ned: I’ve experimented with voiding invoice. One of the issues with this approach is the fact that in scenario above, we already received a payment and applied it to invoice. Voiding invoice in PostBooks is not allowed for applied invoice. Interestingly, the creation of Credit Memo does perform the first step (Dr Sales, Cr A/R).

In Sage MAS 200, you can magically perform Step # 1 in A/R Invoice Data Entry screen, and Step # 2 in Cash Receipt Entry screen. You’ll then see the following breakdown in Customer Invoice list screen:

The first line indicates the original invoice entry posted to GL. The second line shows the cash receipt entry (payment). The third line shows when the fund is moved to Claims GL. The last line shows the adjustment to the invoice to zero it out. In this example, our accounting personnel did Step # 2 to move fund to Claims GL before Step # 1 to reduce invoice to zero.

PS: I’m a programmer with previously no knowledge of accountancy. For this project, I’ve to learn accounting from the very basic (five accounting elements, DC ADE LER, etc.). :slight_smile:

So in the case where you have to refund the customer.

In xTuple you can do a 3 step process:

  1. Create a CM for the freight to be refunded (db Sales/cr AR)
  2. Create a Misc payment to refund the money (db AR/cr Cash)

If the original invoice has not been paid you can appy it to the original invoice instead of refunding the money.

You end up having a CM to offset the original invoice. Provides a straight forward audit trail.