Lines 139-147
BEGIN {
Link Here
|
139 |
|
139 |
|
140 |
GetMaxPatronHoldsForRecord |
140 |
GetMaxPatronHoldsForRecord |
141 |
|
141 |
|
142 |
&AddReserveGroup |
142 |
&AddHoldGroup |
143 |
&DeleteReserveGroup |
143 |
&DeleteHoldGroup |
144 |
&GetReserveGroupReserves |
144 |
&GetHoldGroupHolds |
145 |
); |
145 |
); |
146 |
@EXPORT_OK = qw( MergeHolds ); |
146 |
@EXPORT_OK = qw( MergeHolds ); |
147 |
} |
147 |
} |
Lines 168-174
sub AddReserve {
Link Here
|
168 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
168 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
169 |
$priority, $resdate, $expdate, $notes, |
169 |
$priority, $resdate, $expdate, $notes, |
170 |
$title, $checkitem, $found, $itemtype, |
170 |
$title, $checkitem, $found, $itemtype, |
171 |
$reserve_group_id |
171 |
$hold_group_id |
172 |
) = @_; |
172 |
) = @_; |
173 |
|
173 |
|
174 |
$resdate = output_pref( { str => dt_from_string( $resdate ), dateonly => 1, dateformat => 'iso' }) |
174 |
$resdate = output_pref( { str => dt_from_string( $resdate ), dateonly => 1, dateformat => 'iso' }) |
Lines 206-212
sub AddReserve {
Link Here
|
206 |
waitingdate => $waitingdate, |
206 |
waitingdate => $waitingdate, |
207 |
expirationdate => $expdate, |
207 |
expirationdate => $expdate, |
208 |
itemtype => $itemtype, |
208 |
itemtype => $itemtype, |
209 |
reserve_group_id => $reserve_group_id, |
209 |
hold_group_id => $hold_group_id, |
210 |
} |
210 |
} |
211 |
)->store(); |
211 |
)->store(); |
212 |
|
212 |
|
Lines 475-481
sub GetReserveCount {
Link Here
|
475 |
SELECT COUNT(*) AS counter |
475 |
SELECT COUNT(*) AS counter |
476 |
FROM reserves |
476 |
FROM reserves |
477 |
WHERE borrowernumber = ? |
477 |
WHERE borrowernumber = ? |
478 |
AND reserve_group_id is NULL"; #added by 15516 |
478 |
AND hold_group_id is NULL"; #added by 15516 |
479 |
my $sth = $dbh->prepare($query); |
479 |
my $sth = $dbh->prepare($query); |
480 |
$sth->execute($borrowernumber); |
480 |
$sth->execute($borrowernumber); |
481 |
my $row = $sth->fetchrow_hashref; |
481 |
my $row = $sth->fetchrow_hashref; |
Lines 484-493
sub GetReserveCount {
Link Here
|
484 |
$count += $row->{counter}; |
484 |
$count += $row->{counter}; |
485 |
|
485 |
|
486 |
$query = " |
486 |
$query = " |
487 |
SELECT COUNT(DISTINCT reserve_group_id) AS counter |
487 |
SELECT COUNT(DISTINCT hold_group_id) AS counter |
488 |
FROM reserves |
488 |
FROM reserves |
489 |
WHERE borrowernumber = ? |
489 |
WHERE borrowernumber = ? |
490 |
AND reserve_group_id is not NULL |
490 |
AND hold_group_id is not NULL |
491 |
"; |
491 |
"; |
492 |
$sth = $dbh->prepare($query); |
492 |
$sth = $dbh->prepare($query); |
493 |
$sth->execute($borrowernumber); |
493 |
$sth->execute($borrowernumber); |
Lines 1055-1068
sub ModReserveAffect {
Link Here
|
1055 |
$hold->itemnumber($itemnumber); |
1055 |
$hold->itemnumber($itemnumber); |
1056 |
$hold->set_waiting($transferToDo); |
1056 |
$hold->set_waiting($transferToDo); |
1057 |
|
1057 |
|
1058 |
if ($hold->reserve_group_id) { |
1058 |
if ($hold->hold_group_id) { |
1059 |
# Delete other reserves from same group |
1059 |
# Delete other reserves from same group |
1060 |
$dbh->do(q{ |
1060 |
$dbh->do(q{ |
1061 |
DELETE FROM reserves |
1061 |
DELETE FROM reserves |
1062 |
WHERE reserve_group_id = ? |
1062 |
WHERE hold_group_id = ? |
1063 |
AND reserve_id != ? |
1063 |
AND reserve_id != ? |
1064 |
}, undef, $hold->reserve_group_id, $hold->reserve_id); |
1064 |
}, undef, $hold->hold_group_id, $hold->reserve_id); |
1065 |
DeleteReserveGroup($hold->reserve_group_id); |
1065 |
DeleteHoldGroup($hold->hold_group_id); |
1066 |
} |
1066 |
} |
1067 |
|
1067 |
|
1068 |
_koha_notify_reserve( $hold->reserve_id ) |
1068 |
_koha_notify_reserve( $hold->reserve_id ) |
Lines 2121-2174
sub GetHoldRule {
Link Here
|
2121 |
return $sth->fetchrow_hashref(); |
2121 |
return $sth->fetchrow_hashref(); |
2122 |
} |
2122 |
} |
2123 |
|
2123 |
|
2124 |
=head2 AddReserveGroup |
2124 |
=head2 AddHoldGroup |
2125 |
|
2125 |
|
2126 |
my $reserve_group_id = AddReserveGroup(); |
2126 |
my $hold_group_id = AddHoldGroup(); |
2127 |
|
2127 |
|
2128 |
Creates a new reserve group and returns its ID |
2128 |
Creates a new hold group and returns its ID |
2129 |
|
2129 |
|
2130 |
=cut |
2130 |
=cut |
2131 |
|
2131 |
|
2132 |
sub AddReserveGroup { |
2132 |
sub AddHoldGroup { |
2133 |
my $dbh = C4::Context->dbh; |
2133 |
my $dbh = C4::Context->dbh; |
2134 |
|
2134 |
|
2135 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2135 |
$dbh->do('INSERT INTO hold_group VALUES ()'); |
2136 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2136 |
return $dbh->last_insert_id(undef, undef, 'hold_group', undef); |
2137 |
} |
2137 |
} |
2138 |
|
2138 |
|
2139 |
=head2 DeleteReserveGroup |
2139 |
=head2 DeleteHoldGroup |
2140 |
|
2140 |
|
2141 |
DeleteReserveGroup($reserve_group_id); |
2141 |
DeleteHoldGroup($hold_group_id); |
2142 |
|
2142 |
|
2143 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2143 |
Delete a hold group. Reserves that belong to this group are not removed. |
2144 |
|
2144 |
|
2145 |
=cut |
2145 |
=cut |
2146 |
|
2146 |
|
2147 |
sub DeleteReserveGroup { |
2147 |
sub DeleteHoldGroup { |
2148 |
my ($reserve_group_id) = @_; |
2148 |
my ($hold_group_id) = @_; |
2149 |
|
2149 |
|
2150 |
my $dbh = C4::Context->dbh; |
2150 |
my $dbh = C4::Context->dbh; |
2151 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2151 |
my $query = 'DELETE FROM hold_group WHERE hold_group_id = ?'; |
2152 |
$dbh->do($query, undef, $reserve_group_id); |
2152 |
$dbh->do($query, undef, $hold_group_id); |
2153 |
} |
2153 |
} |
2154 |
|
2154 |
|
2155 |
=head2 GetReserveGroupReserves |
2155 |
=head2 GetHoldGroupHolds |
2156 |
|
2156 |
|
2157 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2157 |
my @reserves = GetHoldGroupHolds($hold_group_id); |
2158 |
|
2158 |
|
2159 |
Fetch all reserve from a reserve group. |
2159 |
Fetch all reserve from a hold group. |
2160 |
|
2160 |
|
2161 |
=cut |
2161 |
=cut |
2162 |
|
2162 |
|
2163 |
sub GetReserveGroupReserves { |
2163 |
sub GetHoldGroupHolds { |
2164 |
my ($reserve_group_id) = @_; |
2164 |
my ($hold_group_id) = @_; |
2165 |
|
2165 |
|
2166 |
my $dbh = C4::Context->dbh; |
2166 |
my $dbh = C4::Context->dbh; |
2167 |
|
2167 |
|
2168 |
my $reserves = $dbh->selectall_arrayref(q{ |
2168 |
my $reserves = $dbh->selectall_arrayref(q{ |
2169 |
SELECT * FROM reserves |
2169 |
SELECT * FROM reserves |
2170 |
WHERE reserve_group_id = ? |
2170 |
WHERE hold_group_id = ? |
2171 |
}, { Slice => {} }, $reserve_group_id); |
2171 |
}, { Slice => {} }, $hold_group_id); |
2172 |
|
2172 |
|
2173 |
return () unless defined $reserves; |
2173 |
return () unless defined $reserves; |
2174 |
|
2174 |
|