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) {