In testing my patch for Bug 25682 I'm finding several problems with item transfers. In short, the handling of items with holds is completely broken: - Logged in to Branch A. - Find a barcode for a title which has a biblio-level hold (not already in transit) to be sent to Branch B. - Submit transfer to Branch C. - Three actions are offered: 1. Transfer to Branch B 2. Cancel hold and then attempt transfer 3. Ignore and return to transfers Testing each of the three actions: 1. The page says "Item is now in transit to Branch C (not the hold's destination)" 2. The item is not in transit, and the hold has been changed to an item-level hold. 3. Works correctly. No change to the hold and no transfer initiated. - Logged in to Branch A. - Find a barcode for a title which has a biblio-level hold (not already in transit) to be sent to Branch B. - Check in the item, confirm hold and transfer. - Submit transfer to Branch C. - Two actions are offered: 1. Cancel hold and then attempt transfer 2. Ignore and return to transfers Testing each of the two actions: 1. The page says "Reserve cancelled" (sic). The original transfer to Branch B is still in place. 2. Works correctly. No change to the hold and the original transfer remains. - Logged in to Branch D. - Find a barcode for a title which has a biblio-level hold (not already in transit) to be held at Branch D. - Check in the item, confirm hold. - Log in to Branch A. - Submit a transfer with that barcode to Branch C. - Two actions are offered: 1. Cancel hold and then attempt transfer 2. Ignore and return to transfer. Testing each of the two actions: 1. The page says "Reserve cancelled" (sic). The hold has been cancelled but the item has not been transferred. 2. Works correctly. Hold remains unchanged, no transfer initiated.