Bug 14518: Allow deleting records with holds (and no item) after confirmation
authorRemi Mayrand-Provencher <remi.mayrand-provencher@inLibro.com>
Wed, 20 May 2015 17:26:23 +0000 (13:26 -0400)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 5 Oct 2015 15:33:31 +0000 (12:33 -0300)
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>
koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc

index ee39f31..8f44496 100644 (file)
             is_confirmed = confirm(_("Are you sure you want to delete this record?"));
         }
         if (is_confirmed) {
-            if ( count > 0 || holdcount > 0 ){
-                return false;
-            } else {
                 window.location="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&amp;biblionumber=[% biblionumber %]";
-            }
        } else {
             return false;
        }