In order to somewhat help in this regard I have made an example project with the addition of a new Inventory Status table.
I have added the standard sales and purchase status codes in the Inventory Parameters screen
For a full implementation where they are instead added as parameters on the customers brought to sales and on the suppliers brought to purchase, with a group on the item table defining what statuses are allowed for any given item please look to a later release which will be released given time and will include other innovations as well to develop the thoughts into a more useable module. This is more done in the spirit of sharing :-) a work in progress.
On a purchase order you can after importing the project and setting up an item with an Item dimension group that includes the item configure purchases to send items to any inventory status.
The inventory on hand screen now can show you.The total on hand of your item or the broken down on hand qty.
And you can now see the main purpose of this modification. It is to allow you to manage stock logically without using the warehouse for the purpose.
We can now create reject stati instead of having to create reject warehouses we can add a status to the return reasons screen and have our returned goods in the normal warehouse but with a flag indicating that they are returns.
Or even a flag indicating that they are unusable (no control of this is done that means you can still sell this stock though you have to choose it to do so)
You can also use the new status for things other than Quality related issues, you can use it to denote stock you have lent out for demonstration purposes f.ex.
Or stock that you have allocated to specific customer categories, or even specific customers.
Giving an on hand picture more like this one.
With the categories being configured as follows
All up to you to configure but it opens up quite a number of possible trade related uses for not a lot of coding changes.
You do however wind up doing a lot of transfer journals when you want to change the status of your inventory, fortunately they are reasonably simple to do.
Another thing you must do, depending on what you want to use the added dimension for, is to configure the inventory dimensions with this as one that has the primary stocking flag set and probably also the physical and Financial inventory flags set.
I will not go into what all the flags do but let you use the standard documentation to help you determine how you want to use the new dimension.
All the standard sales related restrictions immediately apply.
F.ex. the reservation screen knows to limit orders against the not available status, which is quite neat and nifty considering the few lines of code involved.
The above is by no means a complete documentation of the possibilities of this little modification nor is it to be construed as a limiting factor on what you can do with this modification.
Now comes the less amusing parts of this:
Note that by downloading and or by importing the linked code you are accepting the licensing conditions, if you give the code to anyone else you must also apprise them of these licensing conditions and they must agree to them prior to using the code.The full conditions are the ones given by the OSL http://www.opensource.org/licenses/osl-3.0.php in this link which basically allows you to do anything including use it commercially.