diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js index 0cda42a6ca2..8365590450d 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -12,6 +12,7 @@ erpnext.buying.setup_buying_controller(); erpnext.accounts.PurchaseInvoice = class PurchaseInvoice extends erpnext.buying.BuyingController { setup(doc) { + this.setup_accounting_dimension_triggers(); this.setup_posting_date_time_check(); super.setup(doc); diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 2c86981a8a4..c707eee4b97 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -14,6 +14,7 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends ( erpnext.selling.SellingController ) { setup(doc) { + this.setup_accounting_dimension_triggers(); this.setup_posting_date_time_check(); super.setup(doc); this.frm.make_methods = { diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js index a1b50202f5b..79b3b3f19d8 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.js +++ b/erpnext/buying/doctype/purchase_order/purchase_order.js @@ -317,6 +317,7 @@ erpnext.buying.PurchaseOrderController = class PurchaseOrderController extends ( erpnext.buying.BuyingController ) { setup() { + this.setup_accounting_dimension_triggers(); this.frm.custom_make_buttons = { "Purchase Receipt": "Purchase Receipt", "Purchase Invoice": "Purchase Invoice", diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 42fad3cbdcc..a46a273017f 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -3140,6 +3140,23 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe ]); } } + + setup_accounting_dimension_triggers() { + frappe.call({ + method: "erpnext.accounts.doctype.accounting_dimension.accounting_dimension.get_dimensions", + callback: function (r) { + if (r.message && r.message[0]) { + let dimensions = r.message[0].map((d) => d.fieldname); + dimensions.forEach((dim) => { + // nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage + cur_frm.cscript[dim] = function (doc, cdt, cdn) { + erpnext.utils.copy_value_in_all_rows(doc, cdt, cdn, "items", dim); + }; + }); + } + }, + }); + } }; erpnext.show_serial_batch_selector = function (frm, item_row, callback, on_close, show_dialog) { diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index 235838f8f11..263b3010dc7 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -917,6 +917,9 @@ frappe.ui.form.on("Sales Order Item", { }); erpnext.selling.SalesOrderController = class SalesOrderController extends erpnext.selling.SellingController { + setup() { + this.setup_accounting_dimension_triggers(); + } onload(doc, dt, dn) { super.onload(doc, dt, dn); } diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js index 527d672cc6a..b9c98bbb8ba 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note.js @@ -140,6 +140,7 @@ erpnext.stock.DeliveryNoteController = class DeliveryNoteController extends ( erpnext.selling.SellingController ) { setup(doc) { + this.setup_accounting_dimension_triggers(); this.setup_posting_date_time_check(); super.setup(doc); this.frm.make_methods = { diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js index db065a80c92..29026969404 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js @@ -195,6 +195,7 @@ erpnext.stock.PurchaseReceiptController = class PurchaseReceiptController extend erpnext.buying.BuyingController ) { setup(doc) { + this.setup_accounting_dimension_triggers(); this.setup_posting_date_time_check(); super.setup(doc); }