Bug 14518: Allow deleting records with holds (and no item) after confirmation

Cleaning up records with no item but holds is impossible since
the code does not consider the result from the confirmation popup.

This situation happens to our client in their (annual) cleanup.

I. Setup
Create the following if needed:
1) A patron for placing holds and checkouts
2) A test bibliographic record
3) An item for the record. Set the barcode to "DELETEME"

II. Corrupting the Database
1) Checkout the item "DELETEME"
2) Place a record level hold on the test record (next available item)
3) Checkin the item "DELETEME"
4) MySQL: DELETE FROM items WHERE barcode="DELETEME";

III. Deleting the record.
1) On the test record's details page: Edit -> Delete record
2) Click 'yes' in the prompt
3) Nothing happens.

IV. Fixing the bug
1) Apply the patch
2) Repeat step III to delete the record
3) Record is deleted

Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Note: It's not possible in Koha to place a hold on a
record with items, so the effect described here is more
likely to be the result of a migration issue or another
bug. But doesn't hurt to provide a way out :)
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Remi Mayrand-Provencher 2015-05-20 13:26:23 -04:00 committed by Tomas Cohen Arazi
parent 26383113d0
commit 69400a635c

View file

@ -57,11 +57,7 @@
is_confirmed = confirm(_("Are you sure you want to delete this record?")); is_confirmed = confirm(_("Are you sure you want to delete this record?"));
} }
if (is_confirmed) { if (is_confirmed) {
if ( count > 0 || holdcount > 0 ){
return false;
} else {
window.location="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&amp;biblionumber=[% biblionumber %]"; window.location="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&amp;biblionumber=[% biblionumber %]";
}
} else { } else {
return false; return false;
} }