|
Lines 144-152
BEGIN {
Link Here
|
| 144 |
|
144 |
|
| 145 |
IsItemOnHoldAndFound |
145 |
IsItemOnHoldAndFound |
| 146 |
|
146 |
|
| 147 |
&AddReserveGroup |
147 |
&AddHoldGroup |
| 148 |
&DeleteReserveGroup |
148 |
&DeleteHoldGroup |
| 149 |
&GetReserveGroupReserves |
149 |
&GetHoldGroupReserves |
| 150 |
); |
150 |
); |
| 151 |
@EXPORT_OK = qw( MergeHolds ); |
151 |
@EXPORT_OK = qw( MergeHolds ); |
| 152 |
} |
152 |
} |
|
Lines 172-178
sub AddReserve {
Link Here
|
| 172 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
172 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
| 173 |
$priority, $resdate, $expdate, $notes, |
173 |
$priority, $resdate, $expdate, $notes, |
| 174 |
$title, $checkitem, $found, $itemtype, |
174 |
$title, $checkitem, $found, $itemtype, |
| 175 |
$reserve_group_id |
175 |
$hold_group_id |
| 176 |
) = @_; |
176 |
) = @_; |
| 177 |
|
177 |
|
| 178 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
178 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
|
Lines 217-223
sub AddReserve {
Link Here
|
| 217 |
waitingdate => $waitingdate, |
217 |
waitingdate => $waitingdate, |
| 218 |
expirationdate => $expdate, |
218 |
expirationdate => $expdate, |
| 219 |
itemtype => $itemtype, |
219 |
itemtype => $itemtype, |
| 220 |
reserve_group_id => $reserve_group_id, |
220 |
hold_group_id => $hold_group_id, |
| 221 |
} |
221 |
} |
| 222 |
)->store(); |
222 |
)->store(); |
| 223 |
|
223 |
|
|
Lines 630-636
sub GetReserveCount {
Link Here
|
| 630 |
SELECT COUNT(*) AS counter |
630 |
SELECT COUNT(*) AS counter |
| 631 |
FROM reserves |
631 |
FROM reserves |
| 632 |
WHERE borrowernumber = ? |
632 |
WHERE borrowernumber = ? |
| 633 |
AND reserve_group_id is NULL |
633 |
AND hold_group_id is NULL |
| 634 |
"; |
634 |
"; |
| 635 |
my $sth = $dbh->prepare($query); |
635 |
my $sth = $dbh->prepare($query); |
| 636 |
$sth->execute($borrowernumber); |
636 |
$sth->execute($borrowernumber); |
|
Lines 638-647
sub GetReserveCount {
Link Here
|
| 638 |
$count += $row->{counter}; |
638 |
$count += $row->{counter}; |
| 639 |
|
639 |
|
| 640 |
$query = " |
640 |
$query = " |
| 641 |
SELECT COUNT(DISTINCT reserve_group_id) AS counter |
641 |
SELECT COUNT(DISTINCT hold_group_id) AS counter |
| 642 |
FROM reserves |
642 |
FROM reserves |
| 643 |
WHERE borrowernumber = ? |
643 |
WHERE borrowernumber = ? |
| 644 |
AND reserve_group_id is not NULL |
644 |
AND hold_group_id is not NULL |
| 645 |
"; |
645 |
"; |
| 646 |
$sth = $dbh->prepare($query); |
646 |
$sth = $dbh->prepare($query); |
| 647 |
$sth->execute($borrowernumber); |
647 |
$sth->execute($borrowernumber); |
|
Lines 1384-1397
sub ModReserveAffect {
Link Here
|
| 1384 |
$sth = $dbh->prepare($query); |
1384 |
$sth = $dbh->prepare($query); |
| 1385 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
1385 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
| 1386 |
|
1386 |
|
| 1387 |
if ($request->{reserve_group_id}) { |
1387 |
if ($request->{hold_group_id}) { |
| 1388 |
# Delete other reserves from same group |
1388 |
# Delete other reserves from same group |
| 1389 |
$dbh->do(q{ |
1389 |
$dbh->do(q{ |
| 1390 |
DELETE FROM reserves |
1390 |
DELETE FROM reserves |
| 1391 |
WHERE reserve_group_id = ? |
1391 |
WHERE hold_group_id = ? |
| 1392 |
AND reserve_id != ? |
1392 |
AND reserve_id != ? |
| 1393 |
}, undef, $request->{reserve_group_id}, $request->{reserve_id}); |
1393 |
}, undef, $request->{hold_group_id}, $request->{reserve_id}); |
| 1394 |
DeleteReserveGroup($request->{reserve_group_id}); |
1394 |
DeleteHoldGroup($request->{hold_group_id}); |
| 1395 |
} |
1395 |
} |
| 1396 |
|
1396 |
|
| 1397 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf ); |
1397 |
_koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf ); |
|
Lines 1473-1479
sub GetReserveInfo {
Link Here
|
| 1473 |
reminderdate, |
1473 |
reminderdate, |
| 1474 |
priority, |
1474 |
priority, |
| 1475 |
found, |
1475 |
found, |
| 1476 |
reserve_group_id, |
1476 |
hold_group_id, |
| 1477 |
firstname, |
1477 |
firstname, |
| 1478 |
surname, |
1478 |
surname, |
| 1479 |
phone, |
1479 |
phone, |
|
Lines 2529-2582
sub IsItemOnHoldAndFound {
Link Here
|
| 2529 |
return $found; |
2529 |
return $found; |
| 2530 |
} |
2530 |
} |
| 2531 |
|
2531 |
|
| 2532 |
=head2 AddReserveGroup |
2532 |
=head2 AddHoldGroup |
| 2533 |
|
2533 |
|
| 2534 |
my $reserve_group_id = AddReserveGroup(); |
2534 |
my $hold_group_id = AddHoldGroup(); |
| 2535 |
|
2535 |
|
| 2536 |
Creates a new reserve group and returns its ID |
2536 |
Creates a new hold group and returns its ID |
| 2537 |
|
2537 |
|
| 2538 |
=cut |
2538 |
=cut |
| 2539 |
|
2539 |
|
| 2540 |
sub AddReserveGroup { |
2540 |
sub AddHoldGroup { |
| 2541 |
my $dbh = C4::Context->dbh; |
2541 |
my $dbh = C4::Context->dbh; |
| 2542 |
|
2542 |
|
| 2543 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2543 |
$dbh->do('INSERT INTO hold_group VALUES ()'); |
| 2544 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2544 |
return $dbh->last_insert_id(undef, undef, 'hold_group', undef); |
| 2545 |
} |
2545 |
} |
| 2546 |
|
2546 |
|
| 2547 |
=head2 DeleteReserveGroup |
2547 |
=head2 DeleteHoldGroup |
| 2548 |
|
2548 |
|
| 2549 |
DeleteReserveGroup($reserve_group_id); |
2549 |
DeleteHoldGroup($hold_group_id); |
| 2550 |
|
2550 |
|
| 2551 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2551 |
Delete a hold group. Holds that belong to this group are not removed. |
| 2552 |
|
2552 |
|
| 2553 |
=cut |
2553 |
=cut |
| 2554 |
|
2554 |
|
| 2555 |
sub DeleteReserveGroup { |
2555 |
sub DeleteHoldGroup { |
| 2556 |
my ($reserve_group_id) = @_; |
2556 |
my ($hold_group_id) = @_; |
| 2557 |
|
2557 |
|
| 2558 |
my $dbh = C4::Context->dbh; |
2558 |
my $dbh = C4::Context->dbh; |
| 2559 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2559 |
my $query = 'DELETE FROM hold_group WHERE hold_group_id = ?'; |
| 2560 |
$dbh->do($query, undef, $reserve_group_id); |
2560 |
$dbh->do($query, undef, $hold_group_id); |
| 2561 |
} |
2561 |
} |
| 2562 |
|
2562 |
|
| 2563 |
=head2 GetReserveGroupReserves |
2563 |
=head2 GetHoldGroupHolds |
| 2564 |
|
2564 |
|
| 2565 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2565 |
my @holds = GetHoldGroupHolds($hold_group_id); |
| 2566 |
|
2566 |
|
| 2567 |
Fetch all reserve from a reserve group. |
2567 |
Fetch all holds from a hold group. |
| 2568 |
|
2568 |
|
| 2569 |
=cut |
2569 |
=cut |
| 2570 |
|
2570 |
|
| 2571 |
sub GetReserveGroupReserves { |
2571 |
sub GetHoldGroupHolds { |
| 2572 |
my ($reserve_group_id) = @_; |
2572 |
my ($hold_group_id) = @_; |
| 2573 |
|
2573 |
|
| 2574 |
my $dbh = C4::Context->dbh; |
2574 |
my $dbh = C4::Context->dbh; |
| 2575 |
|
2575 |
|
| 2576 |
my $reserves = $dbh->selectall_arrayref(q{ |
2576 |
my $reserves = $dbh->selectall_arrayref(q{ |
| 2577 |
SELECT * FROM reserves |
2577 |
SELECT * FROM reserves |
| 2578 |
WHERE reserve_group_id = ? |
2578 |
WHERE hold_group_id = ? |
| 2579 |
}, { Slice => {} }, $reserve_group_id); |
2579 |
}, { Slice => {} }, $hold_group_id); |
| 2580 |
|
2580 |
|
| 2581 |
return () unless defined $reserves; |
2581 |
return () unless defined $reserves; |
| 2582 |
|
2582 |
|