|
Lines 22-27
use Modern::Perl;
Link Here
|
| 22 |
use DateTime; |
22 |
use DateTime; |
| 23 |
use POSIX qw( floor ); |
23 |
use POSIX qw( floor ); |
| 24 |
use Encode; |
24 |
use Encode; |
|
|
25 |
use JSON; |
| 25 |
|
26 |
|
| 26 |
use C4::Context; |
27 |
use C4::Context; |
| 27 |
use C4::Stats qw( UpdateStats ); |
28 |
use C4::Stats qw( UpdateStats ); |
|
Lines 317-322
A recall for this item was found, and the item needs to be transferred to the re
Link Here
|
| 317 |
|
318 |
|
| 318 |
=cut |
319 |
=cut |
| 319 |
|
320 |
|
|
|
321 |
my $query = CGI->new; |
| 322 |
|
| 323 |
my $stickyduedate = $query->param('stickyduedate'); |
| 324 |
my $duedatespec = $query->param('duedatespec'); |
| 325 |
my $restoreduedatespec = $query->param('restoreduedatespec') || $duedatespec; |
| 326 |
if ( $restoreduedatespec && $restoreduedatespec eq "highholds_empty" ) { |
| 327 |
undef $restoreduedatespec; |
| 328 |
} |
| 329 |
my $issueconfirmed = $query->param('issueconfirmed'); |
| 330 |
my $cancelreserve = $query->param('cancelreserve'); |
| 331 |
my $cancel_recall = $query->param('cancel_recall'); |
| 332 |
my $recall_id = $query->param('recall_id'); |
| 333 |
my $debt_confirmed = $query->param('debt_confirmed') || 0; # Don't show the debt error dialog twice |
| 334 |
my $charges = $query->param('charges') || q{}; |
| 335 |
|
| 320 |
sub transferbook { |
336 |
sub transferbook { |
| 321 |
my $params = shift; |
337 |
my $params = shift; |
| 322 |
my $tbr = $params->{to_branch}; |
338 |
my $tbr = $params->{to_branch}; |
|
Lines 801-809
sub CanBookBeIssued {
Link Here
|
| 801 |
my $circ_library = Koha::Libraries->find( _GetCircControlBranch($item_object, $patron) ); |
817 |
my $circ_library = Koha::Libraries->find( _GetCircControlBranch($item_object, $patron) ); |
| 802 |
|
818 |
|
| 803 |
my $now = dt_from_string(); |
819 |
my $now = dt_from_string(); |
|
|
820 |
my $message; |
| 821 |
my @message; |
| 822 |
|
| 804 |
$duedate ||= CalcDateDue( $now, $effective_itemtype, $circ_library->branchcode, $patron ); |
823 |
$duedate ||= CalcDateDue( $now, $effective_itemtype, $circ_library->branchcode, $patron ); |
|
|
824 |
|
| 805 |
if (DateTime->compare($duedate,$now) == -1 ) { # duedate cannot be before now |
825 |
if (DateTime->compare($duedate,$now) == -1 ) { # duedate cannot be before now |
| 806 |
$needsconfirmation{INVALID_DATE} = $duedate; |
826 |
$needsconfirmation{INVALID_DATE} = $duedate; |
|
|
827 |
if ($issueconfirmed) { |
| 828 |
if ($message) { |
| 829 |
$message = "$message + sticky due date is invalid or due date in the past"; |
| 830 |
} else { |
| 831 |
$message = "sticky due date is invalid or due date in the past"; |
| 832 |
} |
| 833 |
push( @message, "sticky due date is invalid or due date in the past" ); |
| 834 |
} |
| 835 |
|
| 807 |
} |
836 |
} |
| 808 |
|
837 |
|
| 809 |
my $fees = Koha::Charges::Fees->new( |
838 |
my $fees = Koha::Charges::Fees->new( |
|
Lines 848-853
sub CanBookBeIssued {
Link Here
|
| 848 |
} |
877 |
} |
| 849 |
if ( $patron->is_debarred ) { |
878 |
if ( $patron->is_debarred ) { |
| 850 |
$issuingimpossible{DEBARRED} = 1; |
879 |
$issuingimpossible{DEBARRED} = 1; |
|
|
880 |
if ($issueconfirmed) { |
| 881 |
if ($message) { |
| 882 |
$message = "$message + borrower is restricted"; |
| 883 |
} else { |
| 884 |
$message = "borrower is restricted"; |
| 885 |
} |
| 886 |
push( @message, "borrower is restricted" ); |
| 887 |
} |
| 851 |
} |
888 |
} |
| 852 |
|
889 |
|
| 853 |
if ( $patron->is_expired ) { |
890 |
if ( $patron->is_expired ) { |
|
Lines 920-929
sub CanBookBeIssued {
Link Here
|
| 920 |
} else { |
957 |
} else { |
| 921 |
if ( $patron_borrowing_status->{noissuescharge}->{overlimit} && $allowfineoverride ) { |
958 |
if ( $patron_borrowing_status->{noissuescharge}->{overlimit} && $allowfineoverride ) { |
| 922 |
$needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge}; |
959 |
$needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge}; |
|
|
960 |
if ($issueconfirmed) { |
| 961 |
if ($message) { |
| 962 |
$message = "$message + borrower had amend"; |
| 963 |
} else { |
| 964 |
$message = "borrower had amend"; |
| 965 |
} |
| 966 |
push( @message, "borrower had amend" ); |
| 967 |
} |
| 923 |
} elsif ( $patron_borrowing_status->{noissuescharge}->{overlimit} && !$allowfineoverride ) { |
968 |
} elsif ( $patron_borrowing_status->{noissuescharge}->{overlimit} && !$allowfineoverride ) { |
| 924 |
$issuingimpossible{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge}; |
969 |
$issuingimpossible{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge}; |
| 925 |
} elsif ( $patron_borrowing_status->{noissuescharge}->{charge} > 0 && $allfinesneedoverride ) { |
970 |
} elsif ( $patron_borrowing_status->{noissuescharge}->{charge} > 0 && $allfinesneedoverride ) { |
| 926 |
$needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge}; |
971 |
$needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge}; |
|
|
972 |
if ($issueconfirmed) { |
| 973 |
if ($message) { |
| 974 |
$message = "$message + borrower had amend"; |
| 975 |
} else { |
| 976 |
$message = "borrower had amend"; |
| 977 |
} |
| 978 |
push( @message, "borrower had amend" ); |
| 979 |
} |
| 927 |
} |
980 |
} |
| 928 |
} |
981 |
} |
| 929 |
|
982 |
|
|
Lines 1001-1013
sub CanBookBeIssued {
Link Here
|
| 1001 |
} else { |
1054 |
} else { |
| 1002 |
if ( C4::Context->preference('AutoReturnCheckedOutItems') ) { |
1055 |
if ( C4::Context->preference('AutoReturnCheckedOutItems') ) { |
| 1003 |
$alerts{RETURNED_FROM_ANOTHER} = { patron => $patron }; |
1056 |
$alerts{RETURNED_FROM_ANOTHER} = { patron => $patron }; |
| 1004 |
} |
1057 |
} else { |
| 1005 |
else { |
|
|
| 1006 |
$needsconfirmation{ISSUED_TO_ANOTHER} = 1; |
1058 |
$needsconfirmation{ISSUED_TO_ANOTHER} = 1; |
| 1007 |
$needsconfirmation{issued_firstname} = $patron->firstname; |
1059 |
$needsconfirmation{issued_firstname} = $patron->firstname; |
| 1008 |
$needsconfirmation{issued_surname} = $patron->surname; |
1060 |
$needsconfirmation{issued_surname} = $patron->surname; |
| 1009 |
$needsconfirmation{issued_cardnumber} = $patron->cardnumber; |
1061 |
$needsconfirmation{issued_cardnumber} = $patron->cardnumber; |
| 1010 |
$needsconfirmation{issued_borrowernumber} = $patron->borrowernumber; |
1062 |
$needsconfirmation{issued_borrowernumber} = $patron->borrowernumber; |
|
|
1063 |
if ($issueconfirmed) { |
| 1064 |
if ($message) { |
| 1065 |
$message = "$message + item is checked out for someone else "; |
| 1066 |
} else { |
| 1067 |
$message = "item is checked out for someone else"; |
| 1068 |
} |
| 1069 |
push( @message, "item is checked out for someone else" ); |
| 1070 |
} |
| 1011 |
} |
1071 |
} |
| 1012 |
} |
1072 |
} |
| 1013 |
} |
1073 |
} |
|
Lines 1031-1036
sub CanBookBeIssued {
Link Here
|
| 1031 |
$needsconfirmation{current_loan_count} = $toomany->{count}; |
1091 |
$needsconfirmation{current_loan_count} = $toomany->{count}; |
| 1032 |
$needsconfirmation{max_loans_allowed} = $toomany->{max_allowed}; |
1092 |
$needsconfirmation{max_loans_allowed} = $toomany->{max_allowed}; |
| 1033 |
$needsconfirmation{circulation_rule_TOO_MANY} = $toomany->{circulation_rule}; |
1093 |
$needsconfirmation{circulation_rule_TOO_MANY} = $toomany->{circulation_rule}; |
|
|
1094 |
if ($issueconfirmed) { |
| 1095 |
if ($message) { |
| 1096 |
$message = "$message + too many checkout"; |
| 1097 |
} else { |
| 1098 |
$message = "too many checkout"; |
| 1099 |
} |
| 1100 |
push( @message, "too many checkout" ); |
| 1101 |
} |
| 1034 |
} else { |
1102 |
} else { |
| 1035 |
$issuingimpossible{TOO_MANY} = $toomany->{reason}; |
1103 |
$issuingimpossible{TOO_MANY} = $toomany->{reason}; |
| 1036 |
$issuingimpossible{current_loan_count} = $toomany->{count}; |
1104 |
$issuingimpossible{current_loan_count} = $toomany->{count}; |
|
Lines 1058-1063
sub CanBookBeIssued {
Link Here
|
| 1058 |
}else{ |
1126 |
}else{ |
| 1059 |
$needsconfirmation{NOT_FOR_LOAN_FORCING} = 1; |
1127 |
$needsconfirmation{NOT_FOR_LOAN_FORCING} = 1; |
| 1060 |
$needsconfirmation{item_notforloan} = $item_object->notforloan; |
1128 |
$needsconfirmation{item_notforloan} = $item_object->notforloan; |
|
|
1129 |
if ($issueconfirmed) { |
| 1130 |
if ($message) { |
| 1131 |
$message = "$message + item not for loan"; |
| 1132 |
} else { |
| 1133 |
$message = "item not for loan"; |
| 1134 |
} |
| 1135 |
push( @message, "item not for loan" ); |
| 1136 |
} |
| 1061 |
} |
1137 |
} |
| 1062 |
} |
1138 |
} |
| 1063 |
else { |
1139 |
else { |
|
Lines 1104-1109
sub CanBookBeIssued {
Link Here
|
| 1104 |
my $code = $av->count ? $av->next->lib : ''; |
1180 |
my $code = $av->count ? $av->next->lib : ''; |
| 1105 |
$needsconfirmation{ITEM_LOST} = $code if ( C4::Context->preference("IssueLostItem") eq 'confirm' ); |
1181 |
$needsconfirmation{ITEM_LOST} = $code if ( C4::Context->preference("IssueLostItem") eq 'confirm' ); |
| 1106 |
$alerts{ITEM_LOST} = $code if ( C4::Context->preference("IssueLostItem") eq 'alert' ); |
1182 |
$alerts{ITEM_LOST} = $code if ( C4::Context->preference("IssueLostItem") eq 'alert' ); |
|
|
1183 |
if ($issueconfirmed) { |
| 1184 |
if ($message) { |
| 1185 |
$message = "$message + item lost"; |
| 1186 |
} else { |
| 1187 |
$message = "item lost"; |
| 1188 |
} |
| 1189 |
push( @message, "item lost" ); |
| 1190 |
} |
| 1107 |
} |
1191 |
} |
| 1108 |
if ( C4::Context->preference("IndependentBranches") ) { |
1192 |
if ( C4::Context->preference("IndependentBranches") ) { |
| 1109 |
my $userenv = C4::Context->userenv; |
1193 |
my $userenv = C4::Context->userenv; |
|
Lines 1200-1205
sub CanBookBeIssued {
Link Here
|
| 1200 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
1284 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
| 1201 |
$needsconfirmation{'reswaitingdate'} = $res->{'waitingdate'}; |
1285 |
$needsconfirmation{'reswaitingdate'} = $res->{'waitingdate'}; |
| 1202 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
1286 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
|
|
1287 |
if ($issueconfirmed) { |
| 1288 |
if ($message) { |
| 1289 |
$message = |
| 1290 |
"$message + item is on reserve and waiting, but has been reserved by some other patron."; |
| 1291 |
} else { |
| 1292 |
$message = "item is on reserve and waiting, but has been reserved by some other patron."; |
| 1293 |
} |
| 1294 |
push( @message, "item is on reserve and waiting, but has been reserved by some other patron" ); |
| 1295 |
} |
| 1203 |
} |
1296 |
} |
| 1204 |
elsif ( $restype eq "Reserved" ) { |
1297 |
elsif ( $restype eq "Reserved" ) { |
| 1205 |
# The item is on reserve for someone else. |
1298 |
# The item is on reserve for someone else. |
|
Lines 1211-1216
sub CanBookBeIssued {
Link Here
|
| 1211 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
1304 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
| 1212 |
$needsconfirmation{'resreservedate'} = $res->{reservedate}; |
1305 |
$needsconfirmation{'resreservedate'} = $res->{reservedate}; |
| 1213 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
1306 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
|
|
1307 |
if ($issueconfirmed) { |
| 1308 |
if ($message) { |
| 1309 |
$message = "$message + item is on reserve for someone else"; |
| 1310 |
} else { |
| 1311 |
$message = "item is on reserve for someone else"; |
| 1312 |
} |
| 1313 |
push( @message, "item is on reserve for someone else" ); |
| 1314 |
} |
| 1214 |
} |
1315 |
} |
| 1215 |
elsif ( $restype eq "Transferred" ) { |
1316 |
elsif ( $restype eq "Transferred" ) { |
| 1216 |
# The item is determined hold being transferred for someone else. |
1317 |
# The item is determined hold being transferred for someone else. |
|
Lines 1222-1227
sub CanBookBeIssued {
Link Here
|
| 1222 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
1323 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
| 1223 |
$needsconfirmation{'resreservedate'} = $res->{reservedate}; |
1324 |
$needsconfirmation{'resreservedate'} = $res->{reservedate}; |
| 1224 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
1325 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
|
|
1326 |
if ($issueconfirmed) { |
| 1327 |
if ($message) { |
| 1328 |
$message = "$message + item is determined hold being transferred for someone else"; |
| 1329 |
} else { |
| 1330 |
$message = "item is determined hold being transferred for someone else"; |
| 1331 |
} |
| 1332 |
push( @message, "item is determined hold being transferred for someone else" ); |
| 1333 |
} |
| 1225 |
} |
1334 |
} |
| 1226 |
elsif ( $restype eq "Processing" ) { |
1335 |
elsif ( $restype eq "Processing" ) { |
| 1227 |
# The item is determined hold being processed for someone else. |
1336 |
# The item is determined hold being processed for someone else. |
|
Lines 1233-1238
sub CanBookBeIssued {
Link Here
|
| 1233 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
1342 |
$needsconfirmation{'resbranchcode'} = $res->{branchcode}; |
| 1234 |
$needsconfirmation{'resreservedate'} = $res->{reservedate}; |
1343 |
$needsconfirmation{'resreservedate'} = $res->{reservedate}; |
| 1235 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
1344 |
$needsconfirmation{'reserve_id'} = $res->{reserve_id}; |
|
|
1345 |
if ($issueconfirmed) { |
| 1346 |
if ($message) { |
| 1347 |
$message = "$message + item is determined hold being processed for someone else"; |
| 1348 |
} else { |
| 1349 |
$message = "item is determined hold being processed for someone else"; |
| 1350 |
} |
| 1351 |
push( @message, "item is determined hold being processed for someone else" ); |
| 1352 |
} |
| 1236 |
} |
1353 |
} |
| 1237 |
} |
1354 |
} |
| 1238 |
} |
1355 |
} |
|
Lines 1276-1281
sub CanBookBeIssued {
Link Here
|
| 1276 |
if ( $restriction_age && $patron->dateofbirth && $restriction_age > $patron->get_age() ) { |
1393 |
if ( $restriction_age && $patron->dateofbirth && $restriction_age > $patron->get_age() ) { |
| 1277 |
if ( C4::Context->preference('AgeRestrictionOverride') ) { |
1394 |
if ( C4::Context->preference('AgeRestrictionOverride') ) { |
| 1278 |
$needsconfirmation{AGE_RESTRICTION} = "$agerestriction"; |
1395 |
$needsconfirmation{AGE_RESTRICTION} = "$agerestriction"; |
|
|
1396 |
if ($message) { |
| 1397 |
$message = "$message + age restriction"; |
| 1398 |
} else { |
| 1399 |
$message = "age restriction"; |
| 1400 |
} |
| 1401 |
push( @message, "age restriction" ); |
| 1279 |
} |
1402 |
} |
| 1280 |
else { |
1403 |
else { |
| 1281 |
$issuingimpossible{AGE_RESTRICTION} = "$agerestriction"; |
1404 |
$issuingimpossible{AGE_RESTRICTION} = "$agerestriction"; |
|
Lines 1332-1337
sub CanBookBeIssued {
Link Here
|
| 1332 |
} |
1455 |
} |
| 1333 |
} |
1456 |
} |
| 1334 |
|
1457 |
|
|
|
1458 |
my $borrower = $patron; |
| 1459 |
my $user = C4::Context->userenv->{number}; |
| 1460 |
my $branchcode = C4::Context->userenv->{branch}; |
| 1461 |
my $item = Koha::Items->find( { barcode => $barcode } ); |
| 1462 |
my $itemnumber = $item->itemnumber; |
| 1463 |
|
| 1464 |
# action, cardnumber, barcode, date, heure, user, branche |
| 1465 |
if ($issueconfirmed) { |
| 1466 |
|
| 1467 |
my $infos = ( |
| 1468 |
{ |
| 1469 |
message => \@message, |
| 1470 |
borrowernumber => $borrower->borrowernumber, |
| 1471 |
barcode => $barcode, |
| 1472 |
manager_id => $user, |
| 1473 |
branchcode => $branchcode, |
| 1474 |
} |
| 1475 |
); |
| 1476 |
|
| 1477 |
my $json_infos = JSON->new->utf8->pretty->encode($infos); |
| 1478 |
$json_infos =~ s/"/'/g; |
| 1479 |
|
| 1480 |
logaction( |
| 1481 |
"CIRCULATION", "ISSUE", |
| 1482 |
$borrower->{'borrowernumber'}, |
| 1483 |
$json_infos, |
| 1484 |
) if C4::Context->preference("IssueLog"); |
| 1485 |
} |
| 1486 |
|
| 1487 |
|
| 1335 |
return ( \%issuingimpossible, \%needsconfirmation, \%alerts, \%messages, ); |
1488 |
return ( \%issuingimpossible, \%needsconfirmation, \%alerts, \%messages, ); |
| 1336 |
} |
1489 |
} |
| 1337 |
|
1490 |
|
|
Lines 2355-2363
sub AddReturn {
Link Here
|
| 2355 |
if ( $transfer->tobranch eq $branch ) { |
2508 |
if ( $transfer->tobranch eq $branch ) { |
| 2356 |
$transfer->receive; |
2509 |
$transfer->receive; |
| 2357 |
$messages->{'TransferArrived'} = $transfer->frombranch; |
2510 |
$messages->{'TransferArrived'} = $transfer->frombranch; |
|
|
2511 |
|
| 2358 |
# validTransfer=1 allows us returning the item back if the reserve is cancelled |
2512 |
# validTransfer=1 allows us returning the item back if the reserve is cancelled |
| 2359 |
$validTransfer = 1 |
2513 |
$validTransfer = 1 if $transfer->reason eq 'Reserve'; |
| 2360 |
if defined $transfer->reason && $transfer->reason eq 'Reserve'; |
|
|
| 2361 |
} |
2514 |
} |
| 2362 |
else { |
2515 |
else { |
| 2363 |
$messages->{'WrongTransfer'} = $transfer->tobranch; |
2516 |
$messages->{'WrongTransfer'} = $transfer->tobranch; |
|
Lines 3085-3090
sub CanBookBeRenewed {
Link Here
|
| 3085 |
return ( 0, "on_reserve" ) |
3238 |
return ( 0, "on_reserve" ) |
| 3086 |
if ( $item->current_holds->search( { non_priority => 0 } )->count ); |
3239 |
if ( $item->current_holds->search( { non_priority => 0 } )->count ); |
| 3087 |
|
3240 |
|
|
|
3241 |
my $issuing_rule = Koha::CirculationRules->get_effective_rules( |
| 3242 |
{ |
| 3243 |
categorycode => $patron->categorycode, |
| 3244 |
itemtype => $item->effective_itemtype, |
| 3245 |
branchcode => $branchcode, |
| 3246 |
rules => [ |
| 3247 |
'renewalsallowed', |
| 3248 |
'lengthunit', |
| 3249 |
'unseen_renewals_allowed' |
| 3250 |
] |
| 3251 |
} |
| 3252 |
); |
| 3253 |
|
| 3254 |
return ( 0, "too_many" ) |
| 3255 |
if not $issuing_rule->{renewalsallowed} |
| 3256 |
or $issuing_rule->{renewalsallowed} <= $issue->renewals_count; |
| 3088 |
|
3257 |
|
| 3089 |
my ( $status, $matched_reserve, $possible_holds ) = C4::Reserves::CheckReserves($item); |
3258 |
my ( $status, $matched_reserve, $possible_holds ) = C4::Reserves::CheckReserves($item); |
| 3090 |
my @fillable_holds = (); |
3259 |
my @fillable_holds = (); |
|
Lines 3213-3220
fallback to a true value
Link Here
|
| 3213 |
|
3382 |
|
| 3214 |
C<$automatic> is a boolean flag indicating the renewal was triggered automatically and not by a person ( librarian or patron ) |
3383 |
C<$automatic> is a boolean flag indicating the renewal was triggered automatically and not by a person ( librarian or patron ) |
| 3215 |
|
3384 |
|
| 3216 |
C<$skip_record_index> is an optional boolean flag to indicate whether queuing the search indexing |
3385 |
C<$skip_record_index> is an optional boolean flag to indicate whether queuing the search indexing should be skipped for this renewal. |
| 3217 |
should be skipped for this renewal. |
|
|
| 3218 |
|
3386 |
|
| 3219 |
=cut |
3387 |
=cut |
| 3220 |
|
3388 |
|
|
Lines 3416-3424
sub AddRenewal {
Link Here
|
| 3416 |
}); |
3584 |
}); |
| 3417 |
}); |
3585 |
}); |
| 3418 |
|
3586 |
|
| 3419 |
unless( $skip_record_index ){ |
3587 |
unless ($skip_record_index) { |
|
|
3588 |
|
| 3420 |
# We index now, after the transaction is committed |
3589 |
# We index now, after the transaction is committed |
| 3421 |
my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX }); |
3590 |
my $indexer = Koha::SearchEngine::Indexer->new( { index => $Koha::SearchEngine::BIBLIOS_INDEX } ); |
| 3422 |
$indexer->index_records( $item_object->biblionumber, "specialUpdate", "biblioserver" ); |
3591 |
$indexer->index_records( $item_object->biblionumber, "specialUpdate", "biblioserver" ); |
| 3423 |
} |
3592 |
} |
| 3424 |
|
3593 |
|