[Fix] Throw error if item is added multiple time
This commit is contained in:
parent
d5442b5544
commit
f2803ac427
@ -19,6 +19,7 @@ test_ignore = ["Serial No"]
|
|||||||
class TestPurchaseInvoice(unittest.TestCase):
|
class TestPurchaseInvoice(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
unlink_payment_on_cancel_of_invoice()
|
unlink_payment_on_cancel_of_invoice()
|
||||||
|
frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
unlink_payment_on_cancel_of_invoice(0)
|
unlink_payment_on_cancel_of_invoice(0)
|
||||||
|
|||||||
@ -72,8 +72,7 @@ class PurchaseCommon(BuyingController):
|
|||||||
|
|
||||||
if items and len(items) != len(set(items)) and \
|
if items and len(items) != len(set(items)) and \
|
||||||
not cint(frappe.db.get_single_value("Buying Settings", "allow_multiple_items") or 0):
|
not cint(frappe.db.get_single_value("Buying Settings", "allow_multiple_items") or 0):
|
||||||
frappe.msgprint(_("Warning: Same item has been entered multiple times."), alert=True)
|
frappe.throw(_("Same item cannot be entered multiple times."))
|
||||||
|
|
||||||
|
|
||||||
def check_for_closed_status(self, doctype, docname):
|
def check_for_closed_status(self, doctype, docname):
|
||||||
status = frappe.db.get_value(doctype, docname, "status")
|
status = frappe.db.get_value(doctype, docname, "status")
|
||||||
|
|||||||
@ -112,6 +112,7 @@ class TestPurchaseOrder(unittest.TestCase):
|
|||||||
self.assertEquals(get_ordered_qty(item_code="_Test Item", warehouse="_Test Warehouse - _TC"), existing_ordered_qty)
|
self.assertEquals(get_ordered_qty(item_code="_Test Item", warehouse="_Test Warehouse - _TC"), existing_ordered_qty)
|
||||||
|
|
||||||
def test_group_same_items(self):
|
def test_group_same_items(self):
|
||||||
|
frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1)
|
||||||
frappe.get_doc({
|
frappe.get_doc({
|
||||||
"doctype": "Purchase Order",
|
"doctype": "Purchase Order",
|
||||||
"company": "_Test Company",
|
"company": "_Test Company",
|
||||||
@ -121,7 +122,7 @@ class TestPurchaseOrder(unittest.TestCase):
|
|||||||
"conversion_factor" : 1,
|
"conversion_factor" : 1,
|
||||||
"items" : get_same_items(),
|
"items" : get_same_items(),
|
||||||
"group_same_items": 1
|
"group_same_items": 1
|
||||||
}).insert()
|
}).insert(ignore_permissions=True)
|
||||||
|
|
||||||
|
|
||||||
def get_same_items():
|
def get_same_items():
|
||||||
|
|||||||
@ -11,6 +11,9 @@ from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchas
|
|||||||
from erpnext import set_perpetual_inventory
|
from erpnext import set_perpetual_inventory
|
||||||
|
|
||||||
class TestPurchaseReceipt(unittest.TestCase):
|
class TestPurchaseReceipt(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1)
|
||||||
|
|
||||||
def test_make_purchase_invoice(self):
|
def test_make_purchase_invoice(self):
|
||||||
pr = make_purchase_receipt(do_not_save=True)
|
pr = make_purchase_receipt(do_not_save=True)
|
||||||
self.assertRaises(frappe.ValidationError, make_purchase_invoice, pr.name)
|
self.assertRaises(frappe.ValidationError, make_purchase_invoice, pr.name)
|
||||||
|
|||||||
@ -50,10 +50,10 @@
|
|||||||
{
|
{
|
||||||
"base_amount": 250.0,
|
"base_amount": 250.0,
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
"description": "_Test Item",
|
"description": "_Test FG Item",
|
||||||
"doctype": "Purchase Receipt Item",
|
"doctype": "Purchase Receipt Item",
|
||||||
"item_code": "_Test Item",
|
"item_code": "_Test FG Item",
|
||||||
"item_name": "_Test Item",
|
"item_name": "_Test FG Item",
|
||||||
"parentfield": "items",
|
"parentfield": "items",
|
||||||
"qty": 5.0,
|
"qty": 5.0,
|
||||||
"rate": 50.0,
|
"rate": 50.0,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user