From 2073eeb8fa58d9b0aa1399205d7080bcae473d97 Mon Sep 17 00:00:00 2001 From: thefalconx33 Date: Fri, 27 Dec 2019 16:26:03 +0530 Subject: [PATCH] fix: don't allow deletion of items which has work order assigned to it --- erpnext/controllers/accounts_controller.py | 9 +++++++-- erpnext/selling/doctype/sales_order/sales_order.js | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 86f5d53b33..7faf792d20 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1163,8 +1163,13 @@ def check_and_delete_children(parent, data): deleted_children.append(item) for d in deleted_children: - if parent.doctype == "Sales Order" and flt(d.delivered_qty): - frappe.throw(_("Row #{0}: Cannot delete item {1} which has already been delivered").format(d.idx, d.item_code)) + if parent.doctype == "Sales Order": + if flt(d.delivered_qty): + frappe.throw(_("Row #{0}: Cannot delete item {1} which has already been delivered").format(d.idx, d.item_code)) + if flt(d.work_order_qty): + frappe.throw(_("Row #{0}: Cannot delete item {1} which has work order assigned to it.").format(d.idx, d.item_code)) + if flt(d.ordered_qty): + frappe.throw(_("Row #{0}: Cannot delete item {1} which is assigned to customer's purchase order.").format(d.idx, d.item_code)) if parent.doctype == "Purchase Order" and flt(d.received_qty): frappe.throw(_("Row #{0}: Cannot delete item {1} which has already been received").format(d.idx, d.item_code)) diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index 2dae0d8063..cb016a1a74 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -12,7 +12,8 @@ frappe.ui.form.on("Sales Order", { 'Material Request': 'Material Request', 'Purchase Order': 'Purchase Order', 'Project': 'Project', - 'Payment Entry': "Payment" + 'Payment Entry': "Payment", + 'Work Order': "Work Order" } frm.add_fetch('customer', 'tax_id', 'tax_id');