From 85c4cc3e1bec898de9e5ff03d80b806705ba3ed0 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Thu, 12 Mar 2026 20:37:52 +0530 Subject: [PATCH] fix: update delivery date in line items (#53331) --- .../doctype/purchase_order/purchase_order.js | 4 ---- erpnext/public/js/controllers/buying.js | 23 +++++++++++++++++++ .../material_request/material_request.js | 4 ---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js index 85095e66a57..e55ebb52b58 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.js +++ b/erpnext/buying/doctype/purchase_order/purchase_order.js @@ -769,10 +769,6 @@ erpnext.buying.PurchaseOrderController = class PurchaseOrderController extends ( items_on_form_rendered() { set_schedule_date(this.frm); } - - schedule_date() { - set_schedule_date(this.frm); - } }; // for backward compatibility: combine new and previous states diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index c8a61a0ca79..37c83483c18 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -140,6 +140,7 @@ erpnext.buying = { this.toggle_subcontracting_fields(); super.refresh(); + this.prevent_past_schedule_dates(this.frm); } toggle_subcontracting_fields() { @@ -183,6 +184,28 @@ erpnext.buying = { erpnext.utils.set_letter_head(this.frm) } + schedule_date(doc, cdt, cdn) { + if (doc.schedule_date && !cdt.endsWith(" Item")) { + doc.items.forEach((d) => { + frappe.model.set_value(d.doctype, d.name, "schedule_date", doc.schedule_date); + }); + } + } + + transaction_date() { + super.transaction_date(); + this.frm.set_value("schedule_date", ""); + this.prevent_past_schedule_dates(this.frm); + } + + prevent_past_schedule_dates(frm) { + if (frm.doc.transaction_date && frm.fields_dict["schedule_date"]) { + frm.fields_dict["schedule_date"].datepicker?.update({ + minDate: new Date(frm.doc.transaction_date), + }); + } + } + supplier_address() { erpnext.utils.get_address_display(this.frm); erpnext.utils.set_taxes_from_address(this.frm, "supplier_address", "supplier_address", "supplier_address"); diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index 89dba460809..7642133fe3e 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -642,10 +642,6 @@ erpnext.buying.MaterialRequestController = class MaterialRequestController exten set_schedule_date(this.frm); } - schedule_date() { - set_schedule_date(this.frm); - } - qty(doc, cdt, cdn) { var row = frappe.get_doc(cdt, cdn); row.amount = flt(row.qty) * flt(row.rate);