- my $rentaldiscount = $input->param('rentaldiscount');
- my $overduefinescap = $input->param('overduefinescap') || undef;
- $debug and warn "Adding $br, $bor, $cat, $fine, $maxissueqty";
-
- $sth_search->execute($br,$bor,$cat);
- my $res = $sth_search->fetchrow_hashref();
- if ($res->{total}) {
- $sth_update->execute($fine, $finedays, $maxsuspensiondays, $firstremind, $chargeperiod, $maxissueqty, $renewalsallowed, $renewalperiod, $norenewalbefore, $auto_renew, $reservesallowed, $issuelength,$lengthunit, $hardduedate,$hardduedatecompare,$rentaldiscount,$overduefinescap, $br,$bor,$cat);
- } else {
- $sth_insert->execute($br,$bor,$cat,$maxissueqty,$renewalsallowed, $renewalperiod, $norenewalbefore, $auto_renew, $reservesallowed,$issuelength,$lengthunit,$hardduedate,$hardduedatecompare,$fine,$finedays, $maxsuspensiondays, $firstremind,$chargeperiod,$rentaldiscount,$overduefinescap);
- }
-}
+ my $rentaldiscount = $input->param('rentaldiscount') || 0;
+ my $opacitemholds = $input->param('opacitemholds') || 0;
+ my $article_requests = $input->param('article_requests') || 'no';
+ my $overduefinescap = $input->param('overduefinescap') || q{};
+ my $cap_fine_to_replacement_price = ($input->param('cap_fine_to_replacement_price') || q{}) eq 'on';
+ my $note = $input->param('note');
+ my $decreaseloanholds = $input->param('decreaseloanholds') || q{};
+ my $recalls_allowed = $input->param('recalls_allowed');
+ my $recalls_per_record = $input->param('recalls_per_record');
+ my $on_shelf_recalls = $input->param('on_shelf_recalls');
+ my $recall_due_date_interval = $input->param('recall_due_date_interval');
+ my $recall_overdue_fine = $input->param('recall_overdue_fine');
+ my $recall_shelf_time = $input->param('recall_shelf_time');
+
+ my $rules = {
+ maxissueqty => $maxissueqty,
+ maxonsiteissueqty => $maxonsiteissueqty,
+ rentaldiscount => $rentaldiscount,
+ fine => $fine,
+ finedays => $finedays,
+ maxsuspensiondays => $maxsuspensiondays,
+ suspension_chargeperiod => $suspension_chargeperiod,
+ firstremind => $firstremind,
+ chargeperiod => $chargeperiod,
+ chargeperiod_charge_at => $chargeperiod_charge_at,
+ issuelength => $issuelength,
+ daysmode => $daysmode,
+ lengthunit => $lengthunit,
+ hardduedate => $hardduedate,
+ hardduedatecompare => $hardduedatecompare,
+ renewalsallowed => $renewalsallowed,
+ unseen_renewals_allowed => $unseen_renewals_allowed,
+ renewalperiod => $renewalperiod,
+ norenewalbefore => $norenewalbefore,
+ auto_renew => $auto_renew,
+ no_auto_renewal_after => $no_auto_renewal_after,
+ no_auto_renewal_after_hard_limit => $no_auto_renewal_after_hard_limit,
+ reservesallowed => $reservesallowed,
+ holds_per_record => $holds_per_record,
+ holds_per_day => $holds_per_day,
+ onshelfholds => $onshelfholds,
+ opacitemholds => $opacitemholds,
+ overduefinescap => $overduefinescap,
+ cap_fine_to_replacement_price => $cap_fine_to_replacement_price,
+ article_requests => $article_requests,
+ note => $note,
+ decreaseloanholds => $decreaseloanholds,
+ recalls_allowed => $recalls_allowed,
+ recalls_per_record => $recalls_per_record,
+ on_shelf_recalls => $on_shelf_recalls,
+ recall_due_date_interval => $recall_due_date_interval,
+ recall_overdue_fine => $recall_overdue_fine,
+ recall_shelf_time => $recall_shelf_time,
+ };
+
+ Koha::CirculationRules->set_rules(
+ {
+ categorycode => $bor eq '*' ? undef : $bor,
+ itemtype => $itemtype eq '*' ? undef : $itemtype,
+ branchcode => $br eq '*' ? undef : $br,
+ rules => $rules,
+ }
+ );
+
+}