Validate barcode hashing
It appears that barcode hashing from different sources (e.g. app and zebra barcode scanner) can provide different hash values for the same barcode! This needs to be investigated and fixed.
diff --git a/InvenTree/barcode/barcode.py b/InvenTree/barcode/barcode.py
index 87235db19..3837fef59 100644
--- a/InvenTree/barcode/barcode.py
+++ b/InvenTree/barcode/barcode.py
@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 
+import string
 import hashlib
 import logging
 
@@ -16,9 +17,18 @@ logger = logging.getLogger(__name__)
 
 def hash_barcode(barcode_data):
     """
-    Calculate an MD5 hash of barcode data
+    Calculate an MD5 hash of barcode data.
+
+    HACK: Remove any 'non printable' characters from the hash,
+          as it seems browers will remove special control characters...
+        
+    TODO: Work out a way around this!
     """
 
+    printable_chars = filter(lambda x: x in string.printable, barcode_data)
+
+    barcode_data = ''.join(list(printable_chars))
+
     hash = hashlib.md5(str(barcode_data).encode())
     return str(hash.hexdigest())
 
['InvenTree/barcode/barcode.py']