* fix: don't allow negative rates (#36027)
* fix: don't allow negative rate
* test: don't allow negative rate
* fix: only check for -rate on items child table
(cherry picked from commit dedf24b86d)
# Conflicts:
# erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
* chore: resolve merge conflict
---------
Co-authored-by: Devin Slauenwhite <devin.slauenwhite@gmail.com>
Co-authored-by: ruthra kumar <ruthra@erpnext.com>
This commit is contained in:
@@ -3316,6 +3316,13 @@ class TestSalesInvoice(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertRaises(frappe.ValidationError, si.submit)
|
self.assertRaises(frappe.ValidationError, si.submit)
|
||||||
|
|
||||||
|
def test_sales_return_negative_rate(self):
|
||||||
|
si = create_sales_invoice(is_return=1, qty=-2, rate=-10, do_not_save=True)
|
||||||
|
self.assertRaises(frappe.ValidationError, si.save)
|
||||||
|
|
||||||
|
si.items[0].rate = 10
|
||||||
|
si.save()
|
||||||
|
|
||||||
|
|
||||||
def get_sales_invoice_for_e_invoice():
|
def get_sales_invoice_for_e_invoice():
|
||||||
si = make_sales_invoice_for_ewaybill()
|
si = make_sales_invoice_for_ewaybill()
|
||||||
|
|||||||
@@ -233,6 +233,9 @@ class StatusUpdater(Document):
|
|||||||
if hasattr(d, "qty") and d.qty > 0 and self.get("is_return"):
|
if hasattr(d, "qty") and d.qty > 0 and self.get("is_return"):
|
||||||
frappe.throw(_("For an item {0}, quantity must be negative number").format(d.item_code))
|
frappe.throw(_("For an item {0}, quantity must be negative number").format(d.item_code))
|
||||||
|
|
||||||
|
if hasattr(d, "item_code") and hasattr(d, "rate") and d.rate < 0:
|
||||||
|
frappe.throw(_("For an item {0}, rate must be a positive number").format(d.item_code))
|
||||||
|
|
||||||
if d.doctype == args["source_dt"] and d.get(args["join_field"]):
|
if d.doctype == args["source_dt"] and d.get(args["join_field"]):
|
||||||
args["name"] = d.get(args["join_field"])
|
args["name"] = d.get(args["join_field"])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user