I've used MMS (Material Management System) which is primarily offered by a company called Agilisys. The system we have runs on an old school AS/400 server and is command line, but not VERY VERY command line, there are built in menus, they also offer a GUI version. This sysetm is very power if you get down and dirty and learn how to use it. It does everything you requested and far far more, but just like everything, costs money. I would highly recommend it however.