From ea3d4ced5e769c863e2749654f8f0e8b02180702 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 15 Jul 2025 17:52:08 +0530 Subject: [PATCH] fix: Confirmation dialog for submitting the stock entry --- .../doctype/job_card/job_card.js | 33 +++++++++++++------ .../doctype/work_order/work_order.py | 3 ++ .../stock/doctype/stock_entry/stock_entry.py | 3 -- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index bcb75bb830e..616002ca965 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -48,24 +48,37 @@ frappe.ui.form.on("Job Card", { frm.doc.track_semi_finished_goods && frm.doc.docstatus === 1 && !frm.doc.is_subcontracted && + (frm.doc.skip_material_transfer || frm.doc.transferred_qty > 0) && flt(frm.doc.for_quantity) + flt(frm.doc.process_loss_qty) > flt(frm.doc.manufactured_qty) ) { frm.add_custom_button(__("Make Stock Entry"), () => { - frm.call({ - method: "make_stock_entry_for_semi_fg_item", - args: { - auto_submit: 1, + frappe.confirm( + __("Do you want to submit the stock entry?"), + () => { + frm.events.make_manufacture_stock_entry(frm, 1); }, - doc: frm.doc, - freeze: true, - callback() { - frm.reload_doc(); - }, - }); + () => { + frm.events.make_manufacture_stock_entry(frm, 0); + } + ); }).addClass("btn-primary"); } }, + make_manufacture_stock_entry(frm, submit_entry) { + frm.call({ + method: "make_stock_entry_for_semi_fg_item", + args: { + auto_submit: submit_entry, + }, + doc: frm.doc, + freeze: true, + callback() { + frm.reload_doc(); + }, + }); + }, + refresh: function (frm) { frm.trigger("setup_stock_entry"); diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 90b7e4710c6..1eca56b5a15 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -440,6 +440,9 @@ class WorkOrder(Document): """Update **Manufactured Qty** and **Material Transferred for Qty** in Work Order based on Stock Entry""" + if self.track_semi_finished_goods: + return + allowance_percentage = flt( frappe.db.get_single_value("Manufacturing Settings", "overproduction_percentage_for_work_order") ) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index ba86860277f..bdf4adda656 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -1727,9 +1727,6 @@ class StockEntry(StockController): else: job_doc.set_manufactured_qty() - if self.job_card and frappe.get_cached_value("Job Card", self.job_card, "finished_good"): - return - if self.work_order: pro_doc = frappe.get_doc("Work Order", self.work_order) _validate_work_order(pro_doc)