Cancel Cashsale / Invoice [MIGRATED]

Migrated to http://wavelet.asia/customer-portal/2011/02/25/cancel-cash-saleinvoice/

We know that Cashsales in Wavelet EMP consist of 2 components, namely:

1) Invoice

2) Receipt

When a cashsale is cancelled, essentially, we need to "reverse" the receipt, and also the invoice. When a cashsale is cancelled, this is what happens behind the scene:

1) Reverse Receipt

When a receipt is reversed, the invoice becomes outstanding again, since there's not collection tied to this receipt. A reverse receipt will also reverse corresponding entries in the journal transaction, as well as updating your cash books.

2) Sales Return

When a sales return is created, a credit memo is automatically generated. The program automatically make use of this credit memo to knock off the invoice. Since inventory is automatically added back to the stock, hence, a Sales Return with a credit memo knocking off the same invoice is like "cancelling an invoice". As cancellation of invoice is not permitted, the use of sales return provides an added layer of much needed control and traceability.

Note: Sales return created in (2) within "Cancel Cashsale" will automatically return all items in the invoice/cashsale. If partial return is required, use the Sales Return directly, manual knock off of the invoice need to be done, and manual reverse receipt needs to be done as well.


Some users may encounter problem using this function when cancelling cash sales or invoice, it is actually not a bug in the system. Since the function automatically does so many things for the user, if there are sales return done (be it full sales return or partial sales return), or if there was a reverse receipt on the cash portion, the system block the users from performing CANCEL CASH SALES.

This is because to prevent undesired outcome, when the transaction becomes more complex, we would prefer experienced personnel to manually ensure that the reverses of cash and sales are recorded correctly.

In short, there's no bug, but it is the business logic to ensure transactions are recorded correctly disallows the users to cancel the cash sales when it is not appropriate to do so.