@@ -, +, @@ --- 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 | 5 ++++- 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 installer/data/mysql/atomicupdate/bug_14866-add_decreaseloanholds.sql --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -1045,6 +1045,22 @@ sub CanBookBeIssued { }; } } + + # 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 @@ -160,6 +160,7 @@ elsif ($op eq 'add') { my $article_requests = $input->param('article_requests') || 'no'; my $overduefinescap = $input->param('overduefinescap') || undef; my $cap_fine_to_replacement_price = $input->param('cap_fine_to_replacement_price') eq 'on'; + my $decreaseloanholds = $input->param('decreaseloanholds'); $debug and warn "Adding $br, $bor, $itemtype, $fine, $maxissueqty, $maxonsiteissueqty, $cap_fine_to_replacement_price"; my $params = { @@ -193,6 +194,7 @@ elsif ($op eq 'add') { overduefinescap => $overduefinescap, cap_fine_to_replacement_price => $cap_fine_to_replacement_price, article_requests => $article_requests, + decreaseloanholds => $decreaseloanholds, }; my $issuingrule = Koha::IssuingRules->find({categorycode => $bor, itemtype => $itemtype, branchcode => $br}); --- 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 @@ -91,6 +91,7 @@ On shelf holds allowed Item level holds Article requests + Decrease loan holds (day) Rental discount (%) Actions @@ -200,6 +201,7 @@ Don't allow [% END %] + [% rule.decreaseloanholds %] [% IF rule.article_requests == 'no' %] No @@ -216,7 +218,6 @@ Edit Delete - [% END %] @@ -311,6 +312,7 @@ + @@ -348,6 +350,7 @@ On shelf holds allowed Item level holds Article requests + Decrease loan holds (day) Rental discount (%)   --