|
Lines 147-152
BEGIN {
Link Here
|
| 147 |
IsItemOnHoldAndFound |
147 |
IsItemOnHoldAndFound |
| 148 |
|
148 |
|
| 149 |
GetMaxPatronHoldsForRecord |
149 |
GetMaxPatronHoldsForRecord |
|
|
150 |
|
| 151 |
&AddReserveGroup |
| 152 |
&DeleteReserveGroup |
| 153 |
&GetReserveGroupReserves |
| 150 |
); |
154 |
); |
| 151 |
@EXPORT_OK = qw( MergeHolds ); |
155 |
@EXPORT_OK = qw( MergeHolds ); |
| 152 |
} |
156 |
} |
|
Lines 171-177
sub AddReserve {
Link Here
|
| 171 |
my ( |
175 |
my ( |
| 172 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
176 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
| 173 |
$priority, $resdate, $expdate, $notes, |
177 |
$priority, $resdate, $expdate, $notes, |
| 174 |
$title, $checkitem, $found, $itemtype |
178 |
$title, $checkitem, $found, $itemtype, |
|
|
179 |
$reserve_group_id |
| 175 |
) = @_; |
180 |
) = @_; |
| 176 |
|
181 |
|
| 177 |
my $dbh = C4::Context->dbh; |
182 |
my $dbh = C4::Context->dbh; |
|
Lines 211-216
sub AddReserve {
Link Here
|
| 211 |
waitingdate => $waitingdate, |
216 |
waitingdate => $waitingdate, |
| 212 |
expirationdate => $expdate, |
217 |
expirationdate => $expdate, |
| 213 |
itemtype => $itemtype, |
218 |
itemtype => $itemtype, |
|
|
219 |
reserve_group_id => $reserve_group_id, |
| 214 |
} |
220 |
} |
| 215 |
)->store(); |
221 |
)->store(); |
| 216 |
|
222 |
|
|
Lines 1350-1355
sub ModReserveAffect {
Link Here
|
| 1350 |
} |
1356 |
} |
| 1351 |
$hold->store(); |
1357 |
$hold->store(); |
| 1352 |
|
1358 |
|
|
|
1359 |
if ($hold->reserve_group_id) { |
| 1360 |
# Delete other reserves from same group |
| 1361 |
$dbh->do(q{ |
| 1362 |
DELETE FROM reserves |
| 1363 |
WHERE reserve_group_id = ? |
| 1364 |
AND reserve_id != ? |
| 1365 |
}, undef, $hold->reserve_group_id, $hold->reserve_id); |
| 1366 |
DeleteReserveGroup($hold->reserve_group_id); |
| 1367 |
} |
| 1368 |
|
| 1353 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) |
1369 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) |
| 1354 |
if ( !$transferToDo && !$already_on_shelf ); |
1370 |
if ( !$transferToDo && !$already_on_shelf ); |
| 1355 |
|
1371 |
|
|
Lines 1432-1437
sub GetReserveInfo {
Link Here
|
| 1432 |
reminderdate, |
1448 |
reminderdate, |
| 1433 |
priority, |
1449 |
priority, |
| 1434 |
found, |
1450 |
found, |
|
|
1451 |
reserve_group_id, |
| 1435 |
firstname, |
1452 |
firstname, |
| 1436 |
surname, |
1453 |
surname, |
| 1437 |
phone, |
1454 |
phone, |
|
Lines 2544-2549
sub GetHoldRule {
Link Here
|
| 2544 |
return $sth->fetchrow_hashref(); |
2561 |
return $sth->fetchrow_hashref(); |
| 2545 |
} |
2562 |
} |
| 2546 |
|
2563 |
|
|
|
2564 |
=head2 AddReserveGroup |
| 2565 |
|
| 2566 |
my $reserve_group_id = AddReserveGroup(); |
| 2567 |
|
| 2568 |
Creates a new reserve group and returns its ID |
| 2569 |
|
| 2570 |
=cut |
| 2571 |
|
| 2572 |
sub AddReserveGroup { |
| 2573 |
my $dbh = C4::Context->dbh; |
| 2574 |
|
| 2575 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
| 2576 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
| 2577 |
} |
| 2578 |
|
| 2579 |
=head2 DeleteReserveGroup |
| 2580 |
|
| 2581 |
DeleteReserveGroup($reserve_group_id); |
| 2582 |
|
| 2583 |
Delete a reserve group. Reserves that belong to this group are not removed. |
| 2584 |
|
| 2585 |
=cut |
| 2586 |
|
| 2587 |
sub DeleteReserveGroup { |
| 2588 |
my ($reserve_group_id) = @_; |
| 2589 |
|
| 2590 |
my $dbh = C4::Context->dbh; |
| 2591 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
| 2592 |
$dbh->do($query, undef, $reserve_group_id); |
| 2593 |
} |
| 2594 |
|
| 2595 |
=head2 GetReserveGroupReserves |
| 2596 |
|
| 2597 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
| 2598 |
|
| 2599 |
Fetch all reserve from a reserve group. |
| 2600 |
|
| 2601 |
=cut |
| 2602 |
|
| 2603 |
sub GetReserveGroupReserves { |
| 2604 |
my ($reserve_group_id) = @_; |
| 2605 |
|
| 2606 |
my $dbh = C4::Context->dbh; |
| 2607 |
|
| 2608 |
my $reserves = $dbh->selectall_arrayref(q{ |
| 2609 |
SELECT * FROM reserves |
| 2610 |
WHERE reserve_group_id = ? |
| 2611 |
}, { Slice => {} }, $reserve_group_id); |
| 2612 |
|
| 2613 |
return () unless defined $reserves; |
| 2614 |
|
| 2615 |
return @$reserves; |
| 2616 |
} |
| 2617 |
|
| 2547 |
=head1 AUTHOR |
2618 |
=head1 AUTHOR |
| 2548 |
|
2619 |
|
| 2549 |
Koha Development Team <http://koha-community.org/> |
2620 |
Koha Development Team <http://koha-community.org/> |