fix: do not delete batches implicitly

This commit is contained in:
Rohit Waghchaure
2024-01-25 11:27:14 +05:30
parent 16dc8232f2
commit 9a5995a3e5
4 changed files with 15 additions and 8 deletions

View File

@@ -402,11 +402,6 @@ class StockController(AccountsController):
d.batch_no = None
d.db_set("batch_no", None)
for data in frappe.get_all(
"Batch", {"reference_name": self.name, "reference_doctype": self.doctype}
):
frappe.delete_doc("Batch", data.name)
def get_sl_entries(self, d, args):
sl_dict = frappe._dict(
{

View File

@@ -193,7 +193,6 @@ class TestPurchaseReceipt(FrappeTestCase):
batch_no = pr.items[0].batch_no
pr.cancel()
self.assertFalse(frappe.db.get_value("Batch", {"item": item.name, "reference_name": pr.name}))
self.assertFalse(frappe.db.get_all("Serial No", {"batch_no": batch_no}))
def test_purchase_receipt_gl_entry(self):
@@ -2172,6 +2171,19 @@ class TestPurchaseReceipt(FrappeTestCase):
pr_doc.reload()
self.assertFalse(pr_doc.items[0].from_warehouse)
def test_do_not_delete_batch_implicitly(self):
item = make_item(
"_Test Item With Delete Batch",
{"has_batch_no": 1, "create_new_batch": 1, "batch_number_series": "TBWDB.#####"},
).name
pr = make_purchase_receipt(item_code=item, qty=10, rate=100)
batch_no = pr.items[0].batch_no
self.assertTrue(frappe.db.exists("Batch", batch_no))
pr.cancel()
self.assertTrue(frappe.db.exists("Batch", batch_no))
def prepare_data_for_internal_transfer():
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier

View File

@@ -737,7 +737,7 @@ class TestStockEntry(FrappeTestCase):
self.assertEqual(batch_in_serial_no, None)
self.assertEqual(frappe.db.get_value("Serial No", serial_no, "status"), "Inactive")
self.assertEqual(frappe.db.exists("Batch", batch_no), None)
self.assertTrue(frappe.db.exists("Batch", batch_no))
def test_serial_batch_item_qty_deduction(self):
"""

View File

@@ -312,7 +312,7 @@ class TestStockReconciliation(FrappeTestCase, StockTestMixin):
sr.cancel()
self.assertEqual(frappe.db.get_value("Serial No", serial_nos[0], "status"), "Inactive")
self.assertEqual(frappe.db.exists("Batch", batch_no), None)
self.assertTrue(frappe.db.exists("Batch", batch_no))
def test_stock_reco_balance_qty_for_serial_and_batch_item(self):
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry