Lines 139-144
BEGIN {
Link Here
|
139 |
&GetReservesControlBranch |
139 |
&GetReservesControlBranch |
140 |
|
140 |
|
141 |
IsItemOnHoldAndFound |
141 |
IsItemOnHoldAndFound |
|
|
142 |
|
143 |
AddReserveGroup |
144 |
DeleteReserveGroup |
145 |
GetReserveGroupReserves |
142 |
); |
146 |
); |
143 |
@EXPORT_OK = qw( MergeHolds ); |
147 |
@EXPORT_OK = qw( MergeHolds ); |
144 |
} |
148 |
} |
Lines 163-169
sub AddReserve {
Link Here
|
163 |
my ( |
167 |
my ( |
164 |
$branch, $borrowernumber, $biblionumber, |
168 |
$branch, $borrowernumber, $biblionumber, |
165 |
$bibitems, $priority, $resdate, $expdate, $notes, |
169 |
$bibitems, $priority, $resdate, $expdate, $notes, |
166 |
$title, $checkitem, $found |
170 |
$title, $checkitem, $found, $reserve_group_id |
167 |
) = @_; |
171 |
) = @_; |
168 |
|
172 |
|
169 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
173 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
Lines 203-209
sub AddReserve {
Link Here
|
203 |
itemnumber => $checkitem, |
207 |
itemnumber => $checkitem, |
204 |
found => $found, |
208 |
found => $found, |
205 |
waitingdate => $waitingdate, |
209 |
waitingdate => $waitingdate, |
206 |
expirationdate => $expdate |
210 |
expirationdate => $expdate, |
|
|
211 |
reserve_group_id => $reserve_group_id, |
207 |
} |
212 |
} |
208 |
)->store(); |
213 |
)->store(); |
209 |
my $reserve_id = $hold->id(); |
214 |
my $reserve_id = $hold->id(); |
Lines 1339-1344
sub ModReserveAffect {
Link Here
|
1339 |
} |
1344 |
} |
1340 |
$sth = $dbh->prepare($query); |
1345 |
$sth = $dbh->prepare($query); |
1341 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
1346 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
|
|
1347 |
|
1348 |
if ($request->{reserve_group_id}) { |
1349 |
# Delete other reserves from same group |
1350 |
$dbh->do(q{ |
1351 |
DELETE FROM reserves |
1352 |
WHERE reserve_group_id = ? |
1353 |
AND reserve_id != ? |
1354 |
}, undef, $request->{reserve_group_id}, $request->{reserve_id}); |
1355 |
DeleteReserveGroup($request->{reserve_group_id}); |
1356 |
} |
1357 |
|
1342 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf ); |
1358 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf ); |
1343 |
_FixPriority( { biblionumber => $biblionumber } ); |
1359 |
_FixPriority( { biblionumber => $biblionumber } ); |
1344 |
if ( C4::Context->preference("ReturnToShelvingCart") ) { |
1360 |
if ( C4::Context->preference("ReturnToShelvingCart") ) { |
Lines 1418-1423
sub GetReserveInfo {
Link Here
|
1418 |
reminderdate, |
1434 |
reminderdate, |
1419 |
priority, |
1435 |
priority, |
1420 |
found, |
1436 |
found, |
|
|
1437 |
reserve_group_id, |
1421 |
firstname, |
1438 |
firstname, |
1422 |
surname, |
1439 |
surname, |
1423 |
phone, |
1440 |
phone, |
Lines 2448-2453
sub IsItemOnHoldAndFound {
Link Here
|
2448 |
return $found; |
2465 |
return $found; |
2449 |
} |
2466 |
} |
2450 |
|
2467 |
|
|
|
2468 |
=head2 AddReserveGroup |
2469 |
|
2470 |
my $reserve_group_id = AddReserveGroup(); |
2471 |
|
2472 |
Creates a new reserve group and returns its ID |
2473 |
|
2474 |
=cut |
2475 |
|
2476 |
sub AddReserveGroup { |
2477 |
my $dbh = C4::Context->dbh; |
2478 |
|
2479 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2480 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2481 |
} |
2482 |
|
2483 |
=head2 DeleteReserveGroup |
2484 |
|
2485 |
DeleteReserveGroup($reserve_group_id); |
2486 |
|
2487 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2488 |
|
2489 |
=cut |
2490 |
|
2491 |
sub DeleteReserveGroup { |
2492 |
my ($reserve_group_id) = @_; |
2493 |
|
2494 |
my $dbh = C4::Context->dbh; |
2495 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2496 |
$dbh->do($query, undef, $reserve_group_id); |
2497 |
} |
2498 |
|
2499 |
=head2 GetReserveGroupReserves |
2500 |
|
2501 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2502 |
|
2503 |
Fetch all reserve from a reserve group. |
2504 |
|
2505 |
=cut |
2506 |
|
2507 |
sub GetReserveGroupReserves { |
2508 |
my ($reserve_group_id) = @_; |
2509 |
|
2510 |
my $dbh = C4::Context->dbh; |
2511 |
|
2512 |
my $reserves = $dbh->selectall_arrayref(q{ |
2513 |
SELECT * FROM reserves |
2514 |
WHERE reserve_group_id = ? |
2515 |
}, { Slice => {} }, $reserve_group_id); |
2516 |
|
2517 |
return () unless defined $reserves; |
2518 |
|
2519 |
return @$reserves; |
2520 |
} |
2521 |
|
2451 |
=head1 AUTHOR |
2522 |
=head1 AUTHOR |
2452 |
|
2523 |
|
2453 |
Koha Development Team <http://koha-community.org/> |
2524 |
Koha Development Team <http://koha-community.org/> |