diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 68321fdd2e..25c451c413 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -881,20 +881,25 @@ export default class Grid { } duplicate_row(d, copy_doc) { + const noCopyFields = new Set([ + "creation", + "modified", + "modified_by", + "idx", + "owner", + "parent", + "doctype", + "name", + "parentfield", + ]); + + const docfields = frappe.get_meta(this.doctype).fields || []; + $.each(docfields, function (_index, df) { + if (cint(df.no_copy)) noCopyFields.add(df.fieldname); + }); + $.each(copy_doc, function (key, value) { - if ( - ![ - "creation", - "modified", - "modified_by", - "idx", - "owner", - "parent", - "doctype", - "name", - "parentfield", - ].includes(key) - ) { + if (!noCopyFields.has(key)) { d[key] = value; } });