|
Lines 54-60
use Koha::Holds;
Link Here
|
| 54 |
use Koha::RefundLostItemFeeRule; |
54 |
use Koha::RefundLostItemFeeRule; |
| 55 |
use Koha::RefundLostItemFeeRules; |
55 |
use Koha::RefundLostItemFeeRules; |
| 56 |
use Carp; |
56 |
use Carp; |
| 57 |
use List::MoreUtils qw( uniq ); |
57 |
use List::MoreUtils qw( uniq any ); |
|
|
58 |
use YAML qw/Load/; |
| 58 |
use Scalar::Util qw( looks_like_number ); |
59 |
use Scalar::Util qw( looks_like_number ); |
| 59 |
use Date::Calc qw( |
60 |
use Date::Calc qw( |
| 60 |
Today |
61 |
Today |
|
Lines 2657-2662
sub CanBookBeRenewed {
Link Here
|
| 2657 |
my $itemissue = GetItemIssue($itemnumber) or return ( 0, 'no_checkout' ); |
2658 |
my $itemissue = GetItemIssue($itemnumber) or return ( 0, 'no_checkout' ); |
| 2658 |
return ( 0, 'onsite_checkout' ) if $itemissue->{onsite_checkout}; |
2659 |
return ( 0, 'onsite_checkout' ) if $itemissue->{onsite_checkout}; |
| 2659 |
|
2660 |
|
|
|
2661 |
return ( 0, 'item_denied_renewal') if _item_denied_renewal({ item => $item }); |
| 2662 |
|
| 2660 |
$borrowernumber ||= $itemissue->{borrowernumber}; |
2663 |
$borrowernumber ||= $itemissue->{borrowernumber}; |
| 2661 |
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ) |
2664 |
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ) |
| 2662 |
or return; |
2665 |
or return; |
|
Lines 4102-4107
sub _CalculateAndUpdateFine {
Link Here
|
| 4102 |
} |
4105 |
} |
| 4103 |
} |
4106 |
} |
| 4104 |
|
4107 |
|
|
|
4108 |
sub _item_denied_renewal { |
| 4109 |
my ($params) = @_; |
| 4110 |
|
| 4111 |
my $item = $params->{item}; |
| 4112 |
unless ($item) { carp "No item passed in!" && return } |
| 4113 |
|
| 4114 |
my $yaml = C4::Context->preference('ItemsDeniedRenewal'); |
| 4115 |
return () if (! $yaml =~ /\S/ ); |
| 4116 |
$yaml = "$yaml\n\n"; # YAML is anal on ending \n. Surplus does not hurt |
| 4117 |
my $denyingrules; |
| 4118 |
eval { |
| 4119 |
$denyingrules = YAML::Load($yaml); |
| 4120 |
}; |
| 4121 |
if ($@) { |
| 4122 |
warn "Unable to parse ItemsDeniedRenewal syspref : $@"; |
| 4123 |
return (); |
| 4124 |
} |
| 4125 |
foreach my $field (keys %$denyingrules) { |
| 4126 |
my $val; |
| 4127 |
if (exists $item->{$field}) { |
| 4128 |
$val = $item->{$field}; |
| 4129 |
} |
| 4130 |
$val = '' unless defined $val; |
| 4131 |
# If the results matches the values in the yaml file |
| 4132 |
if (any { $val eq $_ } @{$denyingrules->{$field}}) { |
| 4133 |
# We return true if match found |
| 4134 |
return 1; |
| 4135 |
} |
| 4136 |
} |
| 4137 |
return 0; |
| 4138 |
} |
| 4139 |
|
| 4140 |
|
| 4105 |
1; |
4141 |
1; |
| 4106 |
|
4142 |
|
| 4107 |
__END__ |
4143 |
__END__ |
| 4108 |
- |
|
|