@@ -, +, @@
when an item is automatically checked in.
---
Koha/Checkouts.pm | 17 ++++++++++++++---
installer/data/mysql/atomicupdate/bug_33887.pl | 16 ++++++++++++++++
installer/data/mysql/mandatory/sysprefs.sql | 1 +
.../modules/admin/preferences/circulation.pref | 7 +++++++
4 files changed, 38 insertions(+), 3 deletions(-)
create mode 100755 installer/data/mysql/atomicupdate/bug_33887.pl
--- a/Koha/Checkouts.pm
+++ a/Koha/Checkouts.pm
@@ -28,6 +28,7 @@ use Koha::DateUtils qw( dt_from_string );
use base qw(Koha::Objects);
+
=head1 NAME
Koha::Checkouts - Koha Checkout object set class
@@ -66,7 +67,7 @@ sub calculate_dropbox_date {
my $automatic_checkins = Koha::Checkouts->automatic_checkin()
-Checks in every due issue which itemtype has automatic_checkin enabled
+Checks in every due issue which itemtype has automatic_checkin enabled. Also if the AutoCheckinAutoFill sys. pref. is enabled, the item is trapped for the next patron.
=cut
@@ -81,10 +82,20 @@ sub automatic_checkin {
{ prefetch => 'item'}
);
+ my $autofill_next = C4::Context->preference('AutomaticCheckinAutoFill');
+
while ( my $checkout = $due_checkouts->next ) {
if ( $checkout->item->itemtype->automatic_checkin ) {
- C4::Circulation::AddReturn( $checkout->item->barcode,
- $checkout->branchcode, undef, dt_from_string($checkout->date_due) );
+ my ( undef, $messages) = C4::Circulation::AddReturn($checkout->item->barcode, $checkout->branchcode, undef, dt_from_string($checkout->date_due) );
+ if ( $autofill_next ){
+ if ( $messages->{ResFound} ){
+ my $is_transfer = $checkout->branchcode ne $messages->{ResFound}->{branchcode};
+ C4::Reserves::ModReserveAffect($checkout->item->itemnumber, $checkout->borrowernumber, $is_transfer, $messages->{ResFound}->{reserve_id}, $checkout->{desk_id}, 0);
+ if( $is_transfer ){
+ C4::Items::ModItemTransfer($checkout->item->itemnumber,$checkout->branchcode, $messages->{ResFound}->{branchcode},"Reserve");
+ }
+ }
+ }
}
}
}
--- a/installer/data/mysql/atomicupdate/bug_33887.pl
+++ a/installer/data/mysql/atomicupdate/bug_33887.pl
@@ -0,0 +1,16 @@
+use Modern::Perl;
+
+return {
+ bug_number => "33887",
+ description => "Automatically fill the next hold with a automatic check in.",
+ up => sub {
+ my ($args) = @_;
+ my ($dbh, $out) = @$args{qw(dbh out)};
+ # Do you stuffs here
+ $dbh->do(q{
+ 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 'AutomaticCheckinAutoFill'";
+ },
+};
--- a/installer/data/mysql/mandatory/sysprefs.sql
+++ a/installer/data/mysql/mandatory/sysprefs.sql
@@ -82,6 +82,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('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'),
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -976,6 +976,13 @@ Circulation:
homebranch: "item's home library"
holdingbranch: "item's holding library"
- "."
+ -
+ - pref: AutomaticCheckinAutoFill
+ choices:
+ 1: "Allow"
+ 0: "Don't allow"
+ - 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
--