How to ignore Grand Total Rules?

Hello guys,
Please help me to customize the field.
We will get the below message when we create negative invoice.
Incorrect value: Grand Total (Company Currency) must be >= 0.0

How to ignore this rules?

Thank you in advance!

@yih, do you can explain the use case?

The goal is to allow to create Sales Invoice with negative balance.

This is I got, my question is why?! What is the purpose? Devolution?

We are beer manufacturer which sell draft beer in Kegs.
We charged $50 for Keg deposit and give credit back when guest return them.
Guests will bring back # of kegs for refund, which is difficult to be against each sales invoices.
Credit note can do the journal entry for the $ amount but not qty of the keg return which we would like to reconcile our inventory.

Ideally, we can credit negative invoice so that guests can pay the sum of invoices.
Hope that make sense.
Thank you!

@yih, my suggestion for you!

Create Delivery Notes, to Sales Order or Sales Invoices containing the “Kegs”, do you need manage the Kegs as a product.

With the Sales Return, do you can issue a Credit Note, and use it to pay the bill. Do you got?

Edit: Do you can issue a Sales Return, for a single product in the Order/Invoice!

The downside of ERPNext is return is done per invoice/delivery note. This is mostly fit for retail business.

But in some business scenarios like distribution/wholesalers, it’s almost impossible to do return per invoice. The system should be able to receive back returned qty and issue credit note to deduct outstanding receivable account regardless the invoice/delivery reference.

Negative sales invoice can be a solution. Or you can use stock entry with some customizations to receive back returned qty and then issue credit note separately.

Thank you all,
But is there a way to do negative sale invoice or not?
Custom scripts must be added?
If so, how to do that?
Or how to customize Filed in Customize Form.

@yih, not in the box!

I am new to ERPNext. For me negative sales invoice/delivery note will also be very useful. I make few sales during the month and in the end of month I make a return. Not always I able to subtract return quantity from one sale. As I assume the main reason of bounding is made for returning stock value calculation. I think that, solution for calculating returning stock value with negative sales invoice/delivery note can be done by using LOLI :smile: (last out last in) method.
In manual its written that “In ERPNext, you can create a Sales Return by simply making a Delivery Note / Sales Invoice with negative quantity”, but I couldn’t make it work. Also here sales return · Issue #3745 · frappe/erpnext · GitHub, as I understood, @rmehta mentioned that this feature is implemented in new version. Now I am using ERPNext: v6.27.5 Frappe Framework: v6.27.4. Is there a newer version where this feature can be used?
Thank you for your effort.

Hi, is there a way of getting rid of this problem? This issue remains since version 4!

@info, has no issue! This is already implemented in last versions using Sales Return

Well, it is working for sales returns but not for new sales only with negative priced items.

The use case are bills that are negative because a previous bill included returnable items.

More info here:

@info, what about Credit Notes?

Well, credit notes are in the JV module, is nothing that we can send to the customer that is listing the products, amount and grand total, like a bill, actually what is needed is a bill just that allows negative values, should not be so difficult to bypass this restriction.

I think this issue remains since 1year+ and is properly documented in the community, it would be great to have a solution. Another thread about it here:

@nabinhait any suggestion? I’m interested in understand that case!

Currently credit note via Sales Invoice can not be made without reference invoice. But I agree that it will be a great addition to implement the functionality.

Can anyone please raise a github issue for this linking the thread Generating Credit Notes ?

1 Like

Was somebody able to solve this issue or found a workaround?