diff --git a/erpnext/public/js/utils/barcode_scanner.js b/erpnext/public/js/utils/barcode_scanner.js
index 223ea77..bd1f535 100644
--- a/erpnext/public/js/utils/barcode_scanner.js
+++ b/erpnext/public/js/utils/barcode_scanner.js
@@ -1,6 +1,7 @@
 erpnext.stock.BarcodeScanner = class BarcodeScanner {
 	constructor(opts) {
 		$.extend(this, opts);
+		this.scan_barcode_field = this.frm.fields_dict["scan_barcode"];
 	}
 
 	process_scan() {
@@ -25,11 +26,11 @@
 				me.modify_table_after_scan(data);
 			});
 		}
+		this.clean_up();
 	}
 
 
 	modify_table_after_scan(data) {
-		let scan_barcode_field = this.frm.fields_dict["scan_barcode"];
 		let cur_grid = this.frm.fields_dict.items.grid;
 		let row_to_modify = null;
 
@@ -50,15 +51,15 @@
 		}
 
 		if (this.is_duplicate_serial_no(row_to_modify, data.serial_no)) {
-			scan_barcode_field.set_value("");
+			this.clean_up();
 			return;
 		};
 
 		this.show_scan_message(row_to_modify.idx, row_to_modify.item_code);
-		this.set_scanned_values(row_to_modify, data, scan_barcode_field);
+		this.set_scanned_values(row_to_modify, data);
 	}
 
-	set_scanned_values(row_to_modify, data, scan_barcode_field) {
+	set_scanned_values(row_to_modify, data) {
 		// increase qty and set scanned value and item in row
 		this.frm.from_barcode = this.frm.from_barcode ? this.frm.from_barcode + 1 : 1;
 		frappe.model.set_value(row_to_modify.doctype, row_to_modify.name, {
@@ -79,8 +80,7 @@
 			}
 		});
 
-		scan_barcode_field.set_value('');
-		refresh_field("items");
+		this.clean_up();
 	}
 
 	show_scan_message (idx, exist = null) {
@@ -130,4 +130,9 @@
 
 		return row_to_modify;
 	}
+
+	clean_up() {
+		this.scan_barcode_field.set_value("");
+		refresh_field("items");
+	}
 };
