@@ -, +, @@ --- C4/Circulation.pm | 16 ++++++++++++++++ admin/smart-rules.pl | 2 ++ .../atomicupdate/bug_14866-add_decreaseloanholds.sql | 1 + .../intranet-tmpl/prog/en/modules/admin/smart-rules.tt | 6 +++++- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 installer/data/mysql/atomicupdate/bug_14866-add_decreaseloanholds.sql --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -1021,6 +1021,22 @@ sub CanBookBeIssued { returndate => output_pref($returndate), }; } + + # Decrease loan period for item if rule exist in smart-rules.pl + # Overrides decreaseLoanHighHoldsValue syspref + my $branch = _GetCircControlBranch($item,$borrower); + my $issuingrule = GetIssuingRule($borrower->{categorycode}, $item->{itype}, $branch); + my $issuedate = DateTime->now( time_zone => C4::Context->tz() ); + my $calendar = Koha::Calendar->new( branchcode => $branch ); + my $reduced_datedue = $calendar->addDate( $issuedate, $issuingrule->{decreaseloanholds} ); + + if ( defined($issuingrule->{decreaseloanholds}) ) { + $needsconfirmation{HIGHHOLDS} = { + num_holds => $num, + duration => $issuingrule->{decreaseloanholds}, + returndate => output_pref($reduced_datedue), + } + } } if ( --- a/admin/smart-rules.pl +++ a/admin/smart-rules.pl @@ -128,6 +128,7 @@ elsif ($op eq 'add') { my $rentaldiscount = $input->param('rentaldiscount'); my $opacitemholds = $input->param('opacitemholds') || 0; my $overduefinescap = $input->param('overduefinescap') || undef; + my $decreaseloanholds = $input->param('decreaseloanholds'); $debug and warn "Adding $br, $bor, $itemtype, $fine, $maxissueqty"; my $schema = Koha::Database->new()->schema(); @@ -156,6 +157,7 @@ elsif ($op eq 'add') { onshelfholds => $onshelfholds, opacitemholds => $opacitemholds, overduefinescap => $overduefinescap, + decreaseloanholds => $decreaseloanholds, }; $rs->update_or_create($params); --- a/installer/data/mysql/atomicupdate/bug_14866-add_decreaseloanholds.sql +++ a/installer/data/mysql/atomicupdate/bug_14866-add_decreaseloanholds.sql @@ -0,0 +1, @@ +ALTER TABLE issuingrules ADD decreaseloanholds INTEGER; --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt @@ -158,6 +158,7 @@ for="tobranch">Clone these rules to:   @@ -222,7 +223,8 @@ for="tobranch">Clone these rules to: Edit Delete @@ -292,6 +294,7 @@ for="tobranch">Clone these rules to: Force + @@ -320,6 +323,7 @@ for="tobranch">Clone these rules to:   --