fix: ignore circular dependencies on barcode scan
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 6196392..23c2bd4 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -404,11 +404,13 @@
}
barcode(doc, cdt, cdn) {
- var d = locals[cdt][cdn];
- if(d.barcode=="" || d.barcode==null) {
+ const d = locals[cdt][cdn];
+ if (!d.barcode) {
// barcode cleared, remove item
d.item_code = "";
}
+ // flag required for circular triggers
+ d._triggerd_from_barcode = true;
this.item_code(doc, cdt, cdn);
}
@@ -429,7 +431,9 @@
this.frm.doc.doctype === 'Delivery Note') {
show_batch_dialog = 1;
}
- item.barcode = null;
+ if (!item._triggerd_from_barcode) {
+ item.barcode = null;
+ }
if(item.item_code || item.barcode || item.serial_no) {