Heat the oil in a casserole pan and gently fry onions, garlic and spices until spices have cooked out and the onions are soft and slightly caramelised- approx 20 mins.
Add meat, allow to brown then add the beer and tomato puree. Bring to the boil, stirring. Add salt and pepper. Cover then leave to simmer until the meat is cooked and tender – approx 1-1 and a half hours. Add the sugar and adjust seasoning if required.
Add the beans and sweetcorn. Cook for further 5-10 mins (with lid off if you need to reduce and thicken the sauce).