|
Lines 21-27
package C4::Circulation;
Link Here
|
| 21 |
use Modern::Perl; |
21 |
use Modern::Perl; |
| 22 |
use DateTime; |
22 |
use DateTime; |
| 23 |
use POSIX qw( floor ); |
23 |
use POSIX qw( floor ); |
| 24 |
use YAML::XS; |
|
|
| 25 |
use Encode; |
24 |
use Encode; |
| 26 |
|
25 |
|
| 27 |
use C4::Context; |
26 |
use C4::Context; |
|
Lines 1798-1818
sub AddIssue {
Link Here
|
| 1798 |
} |
1797 |
} |
| 1799 |
} |
1798 |
} |
| 1800 |
|
1799 |
|
| 1801 |
my $yaml = C4::Context->preference('UpdateNotForLoanStatusOnCheckout'); |
1800 |
my $rules = C4::Context->yaml_preference('UpdateNotForLoanStatusOnCheckout'); |
| 1802 |
if ($yaml) { |
1801 |
if ($rules) { |
| 1803 |
$yaml = "$yaml\n\n"; |
1802 |
foreach my $key ( keys %$rules ) { |
| 1804 |
|
1803 |
if ( $item_object->notforloan eq $key ) { |
| 1805 |
my $rules; |
1804 |
$item_object->notforloan($rules->{$key})->store({ log_action => 0, skip_record_index => 1 }); |
| 1806 |
eval { $rules = YAML::XS::Load(Encode::encode_utf8($yaml)); }; |
1805 |
last; |
| 1807 |
if ($@) { |
|
|
| 1808 |
warn "Unable to parse UpdateNotForLoanStatusOnCheckout syspref : $@"; |
| 1809 |
} |
| 1810 |
else { |
| 1811 |
foreach my $key ( keys %$rules ) { |
| 1812 |
if ( $item_object->notforloan eq $key ) { |
| 1813 |
$item_object->notforloan($rules->{$key})->store({ log_action => 0, skip_record_index => 1 }); |
| 1814 |
last; |
| 1815 |
} |
| 1816 |
} |
1806 |
} |
| 1817 |
} |
1807 |
} |
| 1818 |
} |
1808 |
} |
|
Lines 2215-2248
sub AddReturn {
Link Here
|
| 2215 |
$messages->{ $loc_msg_key } = $loc_messages->{ $loc_msg_key }; |
2205 |
$messages->{ $loc_msg_key } = $loc_messages->{ $loc_msg_key }; |
| 2216 |
} |
2206 |
} |
| 2217 |
|
2207 |
|
| 2218 |
my $yaml = C4::Context->preference('UpdateNotForLoanStatusOnCheckin'); |
2208 |
my $rules = C4::Context->yaml_preference('UpdateNotForLoanStatusOnCheckin'); |
| 2219 |
if ($yaml) { |
2209 |
if ($rules) { |
| 2220 |
$yaml = "$yaml\n\n"; # YAML is anal on ending \n. Surplus does not hurt |
2210 |
if ( defined $rules->{ $item->itype } ) { |
| 2221 |
my $rules; |
2211 |
foreach my $notloan_rule_key ( keys %{ $rules->{ $item->itype } } ) { |
| 2222 |
eval { $rules = YAML::XS::Load(Encode::encode_utf8($yaml)); }; |
2212 |
if ( $item->notforloan eq $notloan_rule_key ) { |
| 2223 |
if ($@) { |
2213 |
$messages->{'NotForLoanStatusUpdated'} = |
| 2224 |
warn "Unable to parse UpdateNotForLoanStatusOnCheckin syspref : $@"; |
2214 |
{ from => $item->notforloan, to => $rules->{ $item->itype }->{$notloan_rule_key} }; |
| 2225 |
} |
2215 |
$item->notforloan( $rules->{ $item->itype }->{$notloan_rule_key} ) |
| 2226 |
else { |
2216 |
->store( { log_action => 0, skip_record_index => 1, skip_holds_queue => 1 } ) |
| 2227 |
if ( defined $rules->{$item->itype} ) { |
2217 |
unless $rules->{ $item->itype }->{$notloan_rule_key} eq 'ONLYMESSAGE'; |
| 2228 |
foreach my $notloan_rule_key (keys %{ $rules->{$item->itype}} ) { |
2218 |
last; |
| 2229 |
if ( $item->notforloan eq $notloan_rule_key ) { |
|
|
| 2230 |
$messages->{'NotForLoanStatusUpdated'} = { from => $item->notforloan, to => $rules->{$item->itype}->{$notloan_rule_key} }; |
| 2231 |
$item->notforloan( $rules->{ $item->itype }->{$notloan_rule_key} ) |
| 2232 |
->store( { log_action => 0, skip_record_index => 1, skip_holds_queue => 1 } ) |
| 2233 |
unless $rules->{ $item->itype }->{$notloan_rule_key} eq 'ONLYMESSAGE'; |
| 2234 |
last; |
| 2235 |
} |
| 2236 |
} |
2219 |
} |
| 2237 |
} elsif ( defined $rules->{'_ALL_'} ) { |
2220 |
} |
| 2238 |
foreach my $notloan_rule_key (keys %{ $rules->{'_ALL_'}} ) { |
2221 |
} elsif ( defined $rules->{'_ALL_'} ) { |
| 2239 |
if ( $item->notforloan eq $notloan_rule_key ) { |
2222 |
foreach my $notloan_rule_key ( keys %{ $rules->{'_ALL_'} } ) { |
| 2240 |
$messages->{'NotForLoanStatusUpdated'} = { from => $item->notforloan, to => $rules->{'_ALL_'}->{$notloan_rule_key} }; |
2223 |
if ( $item->notforloan eq $notloan_rule_key ) { |
| 2241 |
$item->notforloan( $rules->{'_ALL_'}->{$notloan_rule_key} ) |
2224 |
$messages->{'NotForLoanStatusUpdated'} = |
| 2242 |
->store( { log_action => 0, skip_record_index => 1, skip_holds_queue => 1 } ) |
2225 |
{ from => $item->notforloan, to => $rules->{'_ALL_'}->{$notloan_rule_key} }; |
| 2243 |
unless $rules->{ '_ALL_' }->{$notloan_rule_key} eq 'ONLYMESSAGE'; |
2226 |
$item->notforloan( $rules->{'_ALL_'}->{$notloan_rule_key} ) |
| 2244 |
last; |
2227 |
->store( { log_action => 0, skip_record_index => 1, skip_holds_queue => 1 } ) |
| 2245 |
} |
2228 |
unless $rules->{'_ALL_'}->{$notloan_rule_key} eq 'ONLYMESSAGE'; |
|
|
2229 |
last; |
| 2246 |
} |
2230 |
} |
| 2247 |
} |
2231 |
} |
| 2248 |
} |
2232 |
} |