Good Suggestion Srivatsava.. I completely agree and even I already told in one of my threads for debugging this particular thing in the way you explained( especially DirectMaterialIndicator field) This is already tested by me and as I had stated it is working properly.
Naveen, We know that you are looking for Non Stock and to achieve this you have to use the field "To-Stock", this indicates when it is disabled/false the processing material type is Non-Stock. Kindly Naveen just go for a PO save and either debug it or do as Sri suggested by going into repository shell.
Let us know incase of needed anything else more information...
Regards..
Hanu K