fix: set default_bom for item
(cherry picked from commit dc2830da4d)
# Conflicts:
# erpnext/manufacturing/doctype/bom/test_bom.py
This commit is contained in:
@@ -444,6 +444,7 @@ class BOM(WebsiteGenerator):
|
|||||||
and self.is_active
|
and self.is_active
|
||||||
):
|
):
|
||||||
frappe.db.set(self, "is_default", 1)
|
frappe.db.set(self, "is_default", 1)
|
||||||
|
frappe.db.set_value("Item", self.item, "default_bom", self.name)
|
||||||
else:
|
else:
|
||||||
frappe.db.set(self, "is_default", 0)
|
frappe.db.set(self, "is_default", 0)
|
||||||
item = frappe.get_doc("Item", self.item)
|
item = frappe.get_doc("Item", self.item)
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ class TestBOM(FrappeTestCase):
|
|||||||
bom.submit()
|
bom.submit()
|
||||||
self.assertEqual(bom.items[0].rate, 42)
|
self.assertEqual(bom.items[0].rate, 42)
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
def test_exclude_exploded_items_from_bom(self):
|
def test_exclude_exploded_items_from_bom(self):
|
||||||
bom_no = get_default_bom()
|
bom_no = get_default_bom()
|
||||||
new_bom = frappe.copy_doc(frappe.get_doc("BOM", bom_no))
|
new_bom = frappe.copy_doc(frappe.get_doc("BOM", bom_no))
|
||||||
@@ -518,6 +519,43 @@ class TestBOM(FrappeTestCase):
|
|||||||
self.assertFalse(row.bom_no)
|
self.assertFalse(row.bom_no)
|
||||||
|
|
||||||
new_bom.delete()
|
new_bom.delete()
|
||||||
|
=======
|
||||||
|
def test_set_default_bom_for_item_having_single_bom(self):
|
||||||
|
from erpnext.stock.doctype.item.test_item import make_item
|
||||||
|
|
||||||
|
fg_item = make_item(properties={"is_stock_item": 1})
|
||||||
|
bom_item = make_item(properties={"is_stock_item": 1})
|
||||||
|
|
||||||
|
# Step 1: Create BOM
|
||||||
|
bom = frappe.new_doc("BOM")
|
||||||
|
bom.item = fg_item.item_code
|
||||||
|
bom.quantity = 1
|
||||||
|
bom.append(
|
||||||
|
"items",
|
||||||
|
{
|
||||||
|
"item_code": bom_item.item_code,
|
||||||
|
"qty": 1,
|
||||||
|
"uom": bom_item.stock_uom,
|
||||||
|
"stock_uom": bom_item.stock_uom,
|
||||||
|
"rate": 100.0,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
bom.save()
|
||||||
|
bom.submit()
|
||||||
|
self.assertEqual(frappe.get_value("Item", fg_item.item_code, "default_bom"), bom.name)
|
||||||
|
|
||||||
|
# Step 2: Uncheck is_active field
|
||||||
|
bom.is_active = 0
|
||||||
|
bom.save()
|
||||||
|
bom.reload()
|
||||||
|
self.assertIsNone(frappe.get_value("Item", fg_item.item_code, "default_bom"))
|
||||||
|
|
||||||
|
# Step 3: Check is_active field
|
||||||
|
bom.is_active = 1
|
||||||
|
bom.save()
|
||||||
|
bom.reload()
|
||||||
|
self.assertEqual(frappe.get_value("Item", fg_item.item_code, "default_bom"), bom.name)
|
||||||
|
>>>>>>> dc2830da4d (fix: set default_bom for item)
|
||||||
|
|
||||||
|
|
||||||
def get_default_bom(item_code="_Test FG Item 2"):
|
def get_default_bom(item_code="_Test FG Item 2"):
|
||||||
|
|||||||
Reference in New Issue
Block a user