From f94194b402fd93a44168d942caf7e0d0bc8e13a3 Mon Sep 17 00:00:00 2001 From: Sam Lau Date: Mon, 12 Jun 2023 20:08:55 +0000 Subject: [PATCH] Bug 33887: Add the ability to optionally fill the next hold when an item is automatically checked in. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When an item is automatically checked in, Koha should be able to trap that item for the next patron and send a notification to that patron that a hold is waiting for them. To test: 1. Apply patches 2. restart_all and updatedatabase 3. Go to administration -> item types and edit an item type 4. Make sure the checkbox that is labeled ‘Automatic checkin:’ is checked. At the bottom of the page click save changes. 5. In Administration -> system preferences, search for ‘AutomaticCheckinAutoFill’ and set it to ‘Do’. 6. Check out an item to a patron and make it overdue (.ie set due date to yesterday). Also make sure that the item type you are checking out matches the item type edited in step 4. 7. Place a hold on the item. Make the pickup location the same as the library it is checked out from. 8. Run cronjob at misc/cronjobs/automatic_checkin.pl 9. On the item details page, notice that the item was checked in and now the hold is waiting for pickup. 10. Visit the patron’s page who placed the hold. 11. Click on the notices tab and see that there is a ‘Hold available for pickup’ notice. 12. Repeat steps 6-8, but this time make the hold pickup location different than the library the item is currently checked out to. 13. Notice that this time, the item was checked in, the hold is waiting, and the item is in transit to the other library. 14. If you visit the patron’s page, this time there should be no new notice because the item is still in transit. 15. Sign-Off :) --- Koha/Checkouts.pm | 3 ++- installer/data/mysql/atomicupdate/skeleton.pl | 4 ++-- installer/data/mysql/mandatory/sysprefs.sql | 2 +- .../prog/en/modules/admin/preferences/circulation.pref | 3 ++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Koha/Checkouts.pm b/Koha/Checkouts.pm index c6db4562d0..c4bdb4f372 100644 --- a/Koha/Checkouts.pm +++ b/Koha/Checkouts.pm @@ -82,13 +82,14 @@ sub automatic_checkin { { prefetch => 'item'} ); - my $autofill_next = C4::Context->preference('AutoCheckinAutoFill'); + my $autofill_next = C4::Context->preference('AutomaticCheckinAutoFill'); while ( my $checkout = $due_checkouts->next ) { if ( $checkout->item->itemtype->automatic_checkin ) { my ( undef, $messages) = C4::Circulation::AddReturn($checkout->item->barcode, $checkout->branchcode, undef, dt_from_string($checkout->date_due) ); my $is_transfer = $checkout->branchcode ne $messages->{ResFound}->{branchcode}; if ( $autofill_next ){ + print("autofill next was selected"); if ( $messages->{ResFound} ){ C4::Reserves::ModReserveAffect($checkout->item->itemnumber, $checkout->borrowernumber, $is_transfer, $messages->{ResFound}->{reserve_id}, $checkout->{desk_id}, 0); if( $is_transfer ){ diff --git a/installer/data/mysql/atomicupdate/skeleton.pl b/installer/data/mysql/atomicupdate/skeleton.pl index a420b537f2..50f2be6a07 100755 --- a/installer/data/mysql/atomicupdate/skeleton.pl +++ b/installer/data/mysql/atomicupdate/skeleton.pl @@ -8,9 +8,9 @@ return { my ($dbh, $out) = @$args{qw(dbh out)}; # Do you stuffs here $dbh->do(q{ - INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES ('AutoCheckinAutoFill', '0', NULL,'Automatically fill the next hold with an automatic checkin cronjob.', 'YesNo'}); + INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES ('AutomaticCheckinAutoFill', '0', NULL,'Automatically fill the next hold with an automatic checkin cronjob.', 'YesNo'}); # Print useful stuff here # sysprefs - say $out "Added new system preference 'AutoCheckinAutoFill'"; + say $out "Added new system preference 'AutomaticCheckinAutoFill'"; }, }; diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 2aae161c4b..cd2418009f 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -77,13 +77,13 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('AuthorityXSLTResultsDisplay','','','Enable XSL stylesheet control over authority results page display on intranet','Free'), ('AuthSuccessLog','0',NULL,'If enabled, log successful authentications','YesNo'), ('autoBarcode','OFF','incremental|annual|hbyymmincr|EAN13|OFF','Used to autogenerate a barcode: incremental will be of the form 1, 2, 3; annual of the form 2007-0001, 2007-0002; hbyymmincr of the form HB08010001 where HB=Home Branch','Choice'), -('AutoCheckinAutoFill','0',NULL,'Automatically fill the next hold with an automatic check in.','YesNo'), ('autoControlNumber','OFF','biblionumber|OFF','Used to autogenerate a Control Number: biblionumber will be as biblionumber, OFF will leave the field as it is;','Choice'), ('AutoCreateAuthorities','0',NULL,'Automatically create authorities that do not exist when cataloging records.','YesNo'), ('AutoCreditNumber', '', '', 'Automatically generate a number for account credits', 'Choice'), ('AutoEmailNewUser','0',NULL,'Send an email to newly created patrons.','YesNo'), ('AutoShareWithMana','subscription','','defines datas automatically shared with mana','multiple'), ('AutoLocation','0',NULL,'If ON, IP authentication is enabled, blocking access to the staff interface from unauthorized IP addresses','YesNo'), +('AutomaticCheckinAutoFill','0',NULL,'Automatically fill the next hold with an automatic check in.','YesNo'), ('AutomaticItemReturn','1',NULL,'If ON, Koha will automatically set up a transfer of this item to its homebranch','YesNo'), ('AutoLinkBiblios','0',NULL,'If enabled, link biblio to authorities on creation and edit','YesNo'), ('AutomaticConfirmTransfer','0',NULL,'Defines whether transfers should be automatically confirmed at checkin if modal dismissed','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 46d68ed50e..d51a97bea1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -978,11 +978,12 @@ Circulation: holdingbranch: "item's holding library" - "." - - - pref: AutoCheckinAutoFill + - pref: AutomaticCheckinAutoFill choices: 1: "Do" 0: "Don't" - allow holds to be automatically filled after being automatically checked in. + - '
NOTE: These system preferences require the misc/cronjobs/automatic_checkin.pl cronjob. Ask your system administrator to schedule it.
' Patron restrictions: - - pref: PatronRestrictionTypes -- 2.30.2