inventory transfers

I am working on improving the procedure for inventory transfers to other internal warehouses. Currently we need to create a sales order as our custom reporting produces the bill of lading for this automatically. Additionally this then places the item as shipped in our IM module and thus produces the correct available quantity.  Then the sales order sits out in a ship batch until the other warehouse receives the inventory, at which point all items are confirmed and then the original sales order is reversed. Then we create an IT transaction to record the transfer. There is a lot of back and forth which leaves room for error. There has to be a cleaner way. Any suggestions?