From 143786aaa077d2fb29d54836dcb8424ca247a8e8 Mon Sep 17 00:00:00 2001 From: HENRY Florian Date: Wed, 20 Apr 2022 08:59:52 +0200 Subject: [PATCH] fix: Must not be able to start Job Card if it is related to Work Order that is not started yet (#29072) * fix: Cannot start Job strat if related to Work Order not started yet * fix: Cannot start Job strat if related to Work Order not started yet * test * test * fix siders * PR review * chore: Code cleanup - Better short circuit for if condition (make it such that both conditions dont always have to be computed) - Remove `r.message` extraction by avoiding `then()` * chore: Remove unnecessary json change Co-authored-by: marination --- erpnext/manufacturing/doctype/job_card/job_card.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index b2824e139c..b6646b19f6 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -73,10 +73,22 @@ frappe.ui.form.on('Job Card', { if (frm.doc.docstatus == 0 && !frm.is_new() && (frm.doc.for_quantity > frm.doc.total_completed_qty || !frm.doc.for_quantity) && (frm.doc.items || !frm.doc.items.length || frm.doc.for_quantity == frm.doc.transferred_qty)) { - frm.trigger("prepare_timer_buttons"); + + // if Job Card is link to Work Order, the job card must not be able to start if Work Order not "Started" + // and if stock mvt for WIP is required + if (frm.doc.work_order) { + frappe.db.get_value('Work Order', frm.doc.work_order, ['skip_transfer', 'status'], (result) => { + if (result.skip_transfer === 1 || result.status == 'In Process') { + frm.trigger("prepare_timer_buttons"); + } + }); + } else { + frm.trigger("prepare_timer_buttons"); + } } frm.trigger("setup_quality_inspection"); + if (frm.doc.work_order) { frappe.db.get_value('Work Order', frm.doc.work_order, 'transfer_material_against').then((r) => {