Apologies if there's a duplicate bug. It would be great to add a parameter to delete_items.pl to delete the record if the last item getting deleted is the only one that remains.
Sorry, what steps do you take to get to delete_items.pl?
It's a CLI script in misc/cronjobs :)
Would this be optional or be coded to always happen? We would definitely want to choose when to delete the record or not.
Hi Angela, I believe that this was filed with the idea to make it an option for the CLI script, so you'd add it or not as needed, similar to how you can check the checkbox in the GUI or leave it off.
Created attachment 174480 [details] [review] Bug 35654: Add option to delete_items.pl cronjob to delete empty bibs This patch adds a new option to the delete_items cronjob When --del_bibs is set, bib records will be deleted if the last item is deleted. The following plan assumes default ktd data. To test: 1. Apply patch 2. Check the holdings for bib #115 and see 3 items http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=115 2. Run the cron with the following flags perl ./misc/cronjobs/delete_items.pl --where "biblionumber=115 and homebranch ='MPL'" --verbose --del_bibs --commit 3. Notice in the output the count of current items on the bib record: Where statement: where biblionumber=115 and homebranch='MPL' Deleting empty bib records! Deleting item '237' (of 3) Deleting item '238' (of 2) 4. Confirm the two Midway items were deleted from bib #115, and the bib still exists with one item 4. Run the cron again but change the the --where flag to delete all the items from bib #115 perl ./misc/cronjobs/delete_items.pl --where "biblionumber=115" --verbose --del_bibs --commit 5. Notice in the output the bib is deleted after the last item is deleted Where statement: where biblionumber=115 Deleting empty bib records! Deleting item '239' (of 1) Last item deleted - deleting bib '115' 8. Confirm the bib #115 was deleted 9. Add some more items and test with some other --where parameters 10. Test with and without --commit and --del_bibs, test the --help flag Sponsored-by: CLAMS
Created attachment 174529 [details] [review] Bug 35654: Add option to delete_items.pl cronjob to delete empty bibs This patch adds a new option to the delete_items cronjob When --del_bibs is set, bib records will be deleted if the last item is deleted. The following plan assumes default ktd data. To test: 1. Apply patch 2. Check the holdings for bib #115 and see 3 items http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=115 2. Run the cron with the following flags perl ./misc/cronjobs/delete_items.pl --where "biblionumber=115 and homebranch ='MPL'" --verbose --del_bibs --commit 3. Notice in the output the count of current items on the bib record: Where statement: where biblionumber=115 and homebranch='MPL' Deleting empty bib records! Deleting item '237' (of 3) Deleting item '238' (of 2) 4. Confirm the two Midway items were deleted from bib #115, and the bib still exists with one item 4. Run the cron again but change the the --where flag to delete all the items from bib #115 perl ./misc/cronjobs/delete_items.pl --where "biblionumber=115" --verbose --del_bibs --commit 5. Notice in the output the bib is deleted after the last item is deleted Where statement: where biblionumber=115 Deleting empty bib records! Deleting item '239' (of 1) Last item deleted - deleting bib '115' 8. Confirm the bib #115 was deleted 9. Add some more items and test with some other --where parameters 10. Test with and without --commit and --del_bibs, test the --help flag Sponsored-by: CLAMS Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Created attachment 175193 [details] [review] Bug 35654: (follow-up) Simplify variable use and only delete when commit is set This patch leans up some things: - version option does nothing, so removed - warn when not setting commit and show conditional messages - remove use of Koha::Biblios and use item object methods
Created attachment 175194 [details] [review] Bug 35654: Simplify and update delete_items.pl code Rather than defining hashes and storing our options there, we can just use variables directly, improves readability IMO
Created attachment 175195 [details] [review] Bug 35654: Use Koha::Items instead of direct SQL