itemName
es null
en addPurchaseQuantity()
invocación y, por lo tanto, por qué cuando SQLite intenta usarlo para reemplazar el argumento de selección ('?') recibe esta excepción.
Intente configurar itemName
a un valor conocido y verifique los resultados.
EDITAR
Debe probar cada método de forma independiente para que pueda descubrir fácilmente los errores o fallas. Aprenda a aplicar las pruebas unitarias como se describe en Fundamentos de las pruebas.
Luego, descubrirá que el problema se reduce para obtener el valor de texto de un AutoCompletTextView en el que puede encontrar muchos ejemplos (es decir, ¿Cómo obtener texto de cadena de AutoCompleteTextView?).