Let's break down this issue into a simple use case. If there is an alternative use case or our setup is flawed please chime in.
Item 1001 description "HP DL380 Rack Mount Server" (Purchased)
Item 1002 description "HDC PCIe board" (Manufactured and is itself a BOM with same item number containing capacitors, resistors, etc).
Item 2001 description "Rack Mount Telecom System" is a BOM containing items 1001 and 1002.
All 3 items are in item site MAIN_STOCK with cost method Standard. Any of the 3 items can be returned for repair/service.
Customer purchases item 2001. A year later customer reports that the HDC PCIe board is malfunctioning and needs RMA. Returned item 1002 HDC PCIe board serial number 123 is examined and repaired.
Attempting to use Sales->Return Auth->New with Disposition set to "Service" results in this error:
Cannot User Service Disposition
Only Items Sites using the job cost method may have a Disposition of
So I create an item site named RMA for item 1002 and set cost method to "Job".
Now I can set Disposition to "Service" in Sales->Return Auth->New. That's good.
We then purchase a different rack mount server "HP DL20" item number 1005. When we try to create a new BOM item 2002 containing item 1005 and item 1002 "HDC PCIe board" we get this error:
Cannot add a Job Costed item to Bill of Material
That's bad. We are stuck. We can't RMA for repair/service unless item site cost method is "Job" and we can't add the item to a BOM if item site cost method is "Job" in any item site.
What are we doing wrong? Is this a use case flaw in xTuple?