Lines 141-146
BEGIN {
Link Here
|
141 |
&GetReservesControlBranch |
141 |
&GetReservesControlBranch |
142 |
|
142 |
|
143 |
IsItemOnHoldAndFound |
143 |
IsItemOnHoldAndFound |
|
|
144 |
|
145 |
AddReserveGroup |
146 |
DeleteReserveGroup |
147 |
GetReserveGroupReserves |
144 |
); |
148 |
); |
145 |
@EXPORT_OK = qw( MergeHolds ); |
149 |
@EXPORT_OK = qw( MergeHolds ); |
146 |
} |
150 |
} |
Lines 165-171
sub AddReserve {
Link Here
|
165 |
my ( |
169 |
my ( |
166 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
170 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
167 |
$priority, $resdate, $expdate, $notes, |
171 |
$priority, $resdate, $expdate, $notes, |
168 |
$title, $checkitem, $found, $itemtype |
172 |
$title, $checkitem, $found, $itemtype, |
|
|
173 |
$reserve_group_id |
169 |
) = @_; |
174 |
) = @_; |
170 |
|
175 |
|
171 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
176 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
Lines 210-215
sub AddReserve {
Link Here
|
210 |
waitingdate => $waitingdate, |
215 |
waitingdate => $waitingdate, |
211 |
expirationdate => $expdate, |
216 |
expirationdate => $expdate, |
212 |
itemtype => $itemtype, |
217 |
itemtype => $itemtype, |
|
|
218 |
reserve_group_id => $reserve_group_id, |
213 |
} |
219 |
} |
214 |
)->store(); |
220 |
)->store(); |
215 |
my $reserve_id = $hold->id(); |
221 |
my $reserve_id = $hold->id(); |
Lines 1348-1353
sub ModReserveAffect {
Link Here
|
1348 |
} |
1354 |
} |
1349 |
$sth = $dbh->prepare($query); |
1355 |
$sth = $dbh->prepare($query); |
1350 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
1356 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
|
|
1357 |
|
1358 |
if ($request->{reserve_group_id}) { |
1359 |
# Delete other reserves from same group |
1360 |
$dbh->do(q{ |
1361 |
DELETE FROM reserves |
1362 |
WHERE reserve_group_id = ? |
1363 |
AND reserve_id != ? |
1364 |
}, undef, $request->{reserve_group_id}, $request->{reserve_id}); |
1365 |
DeleteReserveGroup($request->{reserve_group_id}); |
1366 |
} |
1367 |
|
1351 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf ); |
1368 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf ); |
1352 |
_FixPriority( { biblionumber => $biblionumber } ); |
1369 |
_FixPriority( { biblionumber => $biblionumber } ); |
1353 |
if ( C4::Context->preference("ReturnToShelvingCart") ) { |
1370 |
if ( C4::Context->preference("ReturnToShelvingCart") ) { |
Lines 1427-1432
sub GetReserveInfo {
Link Here
|
1427 |
reminderdate, |
1444 |
reminderdate, |
1428 |
priority, |
1445 |
priority, |
1429 |
found, |
1446 |
found, |
|
|
1447 |
reserve_group_id, |
1430 |
firstname, |
1448 |
firstname, |
1431 |
surname, |
1449 |
surname, |
1432 |
phone, |
1450 |
phone, |
Lines 2482-2487
sub IsItemOnHoldAndFound {
Link Here
|
2482 |
return $found; |
2500 |
return $found; |
2483 |
} |
2501 |
} |
2484 |
|
2502 |
|
|
|
2503 |
=head2 AddReserveGroup |
2504 |
|
2505 |
my $reserve_group_id = AddReserveGroup(); |
2506 |
|
2507 |
Creates a new reserve group and returns its ID |
2508 |
|
2509 |
=cut |
2510 |
|
2511 |
sub AddReserveGroup { |
2512 |
my $dbh = C4::Context->dbh; |
2513 |
|
2514 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2515 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2516 |
} |
2517 |
|
2518 |
=head2 DeleteReserveGroup |
2519 |
|
2520 |
DeleteReserveGroup($reserve_group_id); |
2521 |
|
2522 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2523 |
|
2524 |
=cut |
2525 |
|
2526 |
sub DeleteReserveGroup { |
2527 |
my ($reserve_group_id) = @_; |
2528 |
|
2529 |
my $dbh = C4::Context->dbh; |
2530 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2531 |
$dbh->do($query, undef, $reserve_group_id); |
2532 |
} |
2533 |
|
2534 |
=head2 GetReserveGroupReserves |
2535 |
|
2536 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2537 |
|
2538 |
Fetch all reserve from a reserve group. |
2539 |
|
2540 |
=cut |
2541 |
|
2542 |
sub GetReserveGroupReserves { |
2543 |
my ($reserve_group_id) = @_; |
2544 |
|
2545 |
my $dbh = C4::Context->dbh; |
2546 |
|
2547 |
my $reserves = $dbh->selectall_arrayref(q{ |
2548 |
SELECT * FROM reserves |
2549 |
WHERE reserve_group_id = ? |
2550 |
}, { Slice => {} }, $reserve_group_id); |
2551 |
|
2552 |
return () unless defined $reserves; |
2553 |
|
2554 |
return @$reserves; |
2555 |
} |
2556 |
|
2485 |
=head1 AUTHOR |
2557 |
=head1 AUTHOR |
2486 |
|
2558 |
|
2487 |
Koha Development Team <http://koha-community.org/> |
2559 |
Koha Development Team <http://koha-community.org/> |