diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index cc8bdf04176..52423c600d9 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -296,7 +296,16 @@ frappe.ui.form.on("Job Card", { prepare_timer_buttons: function (frm) { frm.trigger("make_dashboard"); + const transfer_pending = + !frm.doc.is_corrective_job_card && + (frm.doc.items || []).length && + flt(frm.doc.transferred_qty) < flt(frm.doc.for_quantity); + if (!frm.doc.started_time && !frm.doc.current_time) { + if (transfer_pending) { + return; + } + frm.add_custom_button(__("Start Job"), () => { if ((frm.doc.employee && !frm.doc.employee.length) || !frm.doc.employee) { frappe.prompt( diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index 9fddeda3e96..b1854088975 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -513,6 +513,8 @@ class JobCard(Document): ) def add_time_log(self, args): + self.validate_transfer_qty() + last_row = [] employees = args.employees if isinstance(employees, str):