@@ -, +, @@ limiting rules --- C4/Circulation.pm | 4 +- admin/smart-rules.pl | 9 ++-- installer/data/mysql/atomicupdate/bug_18936.perl | 4 +- .../prog/en/modules/admin/smart-rules.tt | 4 +- t/db_dependent/Circulation.t | 49 ++++++++++++---------- t/db_dependent/Circulation/TooMany.t | 2 +- 6 files changed, 41 insertions(+), 31 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -476,7 +476,7 @@ sub TooMany { my $max_checkouts_allowed = $maxissueqty_rule ? $maxissueqty_rule->rule_value : undef; my $max_onsite_checkouts_allowed = $maxonsiteissueqty_rule ? $maxonsiteissueqty_rule->rule_value : undef; - if ( $onsite_checkout and defined $max_onsite_checkouts_allowed ) { + if ( $onsite_checkout and $max_onsite_checkouts_allowed ne '' ) { if ( $onsite_checkout_count >= $max_onsite_checkouts_allowed ) { return { reason => 'TOO_MANY_ONSITE_CHECKOUTS', @@ -2276,7 +2276,7 @@ sub _debar_user_on_return { # If the max suspension days is < than the suspension days # the suspension days is limited to this maximum period. my $max_sd = $issuing_rule->{maxsuspensiondays}; - if ( defined $max_sd ) { + if ( defined $max_sd && $max_sd ne '' ) { $max_sd = DateTime::Duration->new( days => $max_sd ); $suspension_days = $max_sd if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; --- a/admin/smart-rules.pl +++ a/admin/smart-rules.pl @@ -253,6 +253,7 @@ elsif ($op eq 'add') { my $finedays = $input->param('finedays'); my $maxsuspensiondays = $input->param('maxsuspensiondays'); $maxsuspensiondays = undef if $maxsuspensiondays eq q||; + $maxsuspensiondays = '' if $maxsuspensiondays eq q||; my $suspension_chargeperiod = $input->param('suspension_chargeperiod') || 1; my $firstremind = $input->param('firstremind'); my $chargeperiod = $input->param('chargeperiod'); @@ -262,11 +263,11 @@ elsif ($op eq 'add') { my $renewalsallowed = $input->param('renewalsallowed'); my $renewalperiod = $input->param('renewalperiod'); my $norenewalbefore = $input->param('norenewalbefore'); - $norenewalbefore = undef if $norenewalbefore =~ /^\s*$/; + $norenewalbefore = '' if $norenewalbefore =~ /^\s*$/; my $auto_renew = $input->param('auto_renew') eq 'yes' ? 1 : 0; my $no_auto_renewal_after = $input->param('no_auto_renewal_after'); - $no_auto_renewal_after = undef if $no_auto_renewal_after =~ /^\s*$/; - my $no_auto_renewal_after_hard_limit = $input->param('no_auto_renewal_after_hard_limit') || undef; + $no_auto_renewal_after = '' if $no_auto_renewal_after =~ /^\s*$/; + my $no_auto_renewal_after_hard_limit = $input->param('no_auto_renewal_after_hard_limit') || ''; $no_auto_renewal_after_hard_limit = eval { dt_from_string( $input->param('no_auto_renewal_after_hard_limit') ) } if ( $no_auto_renewal_after_hard_limit ); $no_auto_renewal_after_hard_limit = output_pref( { dt => $no_auto_renewal_after_hard_limit, dateonly => 1, dateformat => 'iso' } ) if ( $no_auto_renewal_after_hard_limit ); my $reservesallowed = $input->param('reservesallowed'); @@ -289,7 +290,7 @@ elsif ($op eq 'add') { my $rentaldiscount = $input->param('rentaldiscount'); my $opacitemholds = $input->param('opacitemholds') || 0; my $article_requests = $input->param('article_requests') || 'no'; - my $overduefinescap = $input->param('overduefinescap') || undef; + my $overduefinescap = $input->param('overduefinescap') || ''; my $cap_fine_to_replacement_price = $input->param('cap_fine_to_replacement_price') eq 'on'; my $note = $input->param('note'); $debug and warn "Adding $br, $bor, $itemtype, $fine, $maxissueqty, $maxonsiteissueqty, $cap_fine_to_replacement_price"; --- a/installer/data/mysql/atomicupdate/bug_18936.perl +++ a/installer/data/mysql/atomicupdate/bug_18936.perl @@ -27,13 +27,15 @@ if( CheckVersion( $DBversion ) ) { onshelfholds opacitemholds article_requests + maxissueqty + maxonsiteissueqty ); if ( column_exists( 'issuingrules', 'categorycode' ) ) { foreach my $column ( @columns ) { $dbh->do(" INSERT INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value ) - SELECT categorycode, branchcode, itemtype, \'$column\', $column + SELECT categorycode, branchcode, itemtype, \'$column\', COALESCE( $column, '' ) FROM issuingrules "); } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt @@ -185,14 +185,14 @@ [% ELSE %] [% END %]