|
Lines 141-149
BEGIN {
Link Here
|
| 141 |
|
141 |
|
| 142 |
GetMaxPatronHoldsForRecord |
142 |
GetMaxPatronHoldsForRecord |
| 143 |
|
143 |
|
| 144 |
&AddReserveGroup |
144 |
&AddHoldGroup |
| 145 |
&DeleteReserveGroup |
145 |
&DeleteHoldGroup |
| 146 |
&GetReserveGroupReserves |
146 |
&GetHoldGroupHolds |
| 147 |
); |
147 |
); |
| 148 |
@EXPORT_OK = qw( MergeHolds ); |
148 |
@EXPORT_OK = qw( MergeHolds ); |
| 149 |
} |
149 |
} |
|
Lines 170-176
sub AddReserve {
Link Here
|
| 170 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
170 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
| 171 |
$priority, $resdate, $expdate, $notes, |
171 |
$priority, $resdate, $expdate, $notes, |
| 172 |
$title, $checkitem, $found, $itemtype, |
172 |
$title, $checkitem, $found, $itemtype, |
| 173 |
$reserve_group_id |
173 |
$hold_group_id |
| 174 |
) = @_; |
174 |
) = @_; |
| 175 |
|
175 |
|
| 176 |
$resdate = output_pref( { str => dt_from_string( $resdate ), dateonly => 1, dateformat => 'iso' }) |
176 |
$resdate = output_pref( { str => dt_from_string( $resdate ), dateonly => 1, dateformat => 'iso' }) |
|
Lines 208-214
sub AddReserve {
Link Here
|
| 208 |
waitingdate => $waitingdate, |
208 |
waitingdate => $waitingdate, |
| 209 |
expirationdate => $expdate, |
209 |
expirationdate => $expdate, |
| 210 |
itemtype => $itemtype, |
210 |
itemtype => $itemtype, |
| 211 |
reserve_group_id => $reserve_group_id, |
211 |
hold_group_id => $hold_group_id, |
| 212 |
} |
212 |
} |
| 213 |
)->store(); |
213 |
)->store(); |
| 214 |
|
214 |
|
|
Lines 477-483
sub GetReserveCount {
Link Here
|
| 477 |
SELECT COUNT(*) AS counter |
477 |
SELECT COUNT(*) AS counter |
| 478 |
FROM reserves |
478 |
FROM reserves |
| 479 |
WHERE borrowernumber = ? |
479 |
WHERE borrowernumber = ? |
| 480 |
AND reserve_group_id is NULL"; #added by 15516 |
480 |
AND hold_group_id is NULL"; #added by 15516 |
| 481 |
my $sth = $dbh->prepare($query); |
481 |
my $sth = $dbh->prepare($query); |
| 482 |
$sth->execute($borrowernumber); |
482 |
$sth->execute($borrowernumber); |
| 483 |
my $row = $sth->fetchrow_hashref; |
483 |
my $row = $sth->fetchrow_hashref; |
|
Lines 486-495
sub GetReserveCount {
Link Here
|
| 486 |
$count += $row->{counter}; |
486 |
$count += $row->{counter}; |
| 487 |
|
487 |
|
| 488 |
$query = " |
488 |
$query = " |
| 489 |
SELECT COUNT(DISTINCT reserve_group_id) AS counter |
489 |
SELECT COUNT(DISTINCT hold_group_id) AS counter |
| 490 |
FROM reserves |
490 |
FROM reserves |
| 491 |
WHERE borrowernumber = ? |
491 |
WHERE borrowernumber = ? |
| 492 |
AND reserve_group_id is not NULL |
492 |
AND hold_group_id is not NULL |
| 493 |
"; |
493 |
"; |
| 494 |
$sth = $dbh->prepare($query); |
494 |
$sth = $dbh->prepare($query); |
| 495 |
$sth->execute($borrowernumber); |
495 |
$sth->execute($borrowernumber); |
|
Lines 1057-1070
sub ModReserveAffect {
Link Here
|
| 1057 |
$hold->itemnumber($itemnumber); |
1057 |
$hold->itemnumber($itemnumber); |
| 1058 |
$hold->set_waiting($transferToDo); |
1058 |
$hold->set_waiting($transferToDo); |
| 1059 |
|
1059 |
|
| 1060 |
if ($hold->reserve_group_id) { |
1060 |
if ($hold->hold_group_id) { |
| 1061 |
# Delete other reserves from same group |
1061 |
# Delete other reserves from same group |
| 1062 |
$dbh->do(q{ |
1062 |
$dbh->do(q{ |
| 1063 |
DELETE FROM reserves |
1063 |
DELETE FROM reserves |
| 1064 |
WHERE reserve_group_id = ? |
1064 |
WHERE hold_group_id = ? |
| 1065 |
AND reserve_id != ? |
1065 |
AND reserve_id != ? |
| 1066 |
}, undef, $hold->reserve_group_id, $hold->reserve_id); |
1066 |
}, undef, $hold->hold_group_id, $hold->reserve_id); |
| 1067 |
DeleteReserveGroup($hold->reserve_group_id); |
1067 |
DeleteHoldGroup($hold->hold_group_id); |
| 1068 |
} |
1068 |
} |
| 1069 |
|
1069 |
|
| 1070 |
_koha_notify_reserve( $hold->reserve_id ) |
1070 |
_koha_notify_reserve( $hold->reserve_id ) |
|
Lines 2191-2244
sub GetHoldRule {
Link Here
|
| 2191 |
return $sth->fetchrow_hashref(); |
2191 |
return $sth->fetchrow_hashref(); |
| 2192 |
} |
2192 |
} |
| 2193 |
|
2193 |
|
| 2194 |
=head2 AddReserveGroup |
2194 |
=head2 AddHoldGroup |
| 2195 |
|
2195 |
|
| 2196 |
my $reserve_group_id = AddReserveGroup(); |
2196 |
my $hold_group_id = AddHoldGroup(); |
| 2197 |
|
2197 |
|
| 2198 |
Creates a new reserve group and returns its ID |
2198 |
Creates a new hold group and returns its ID |
| 2199 |
|
2199 |
|
| 2200 |
=cut |
2200 |
=cut |
| 2201 |
|
2201 |
|
| 2202 |
sub AddReserveGroup { |
2202 |
sub AddHoldGroup { |
| 2203 |
my $dbh = C4::Context->dbh; |
2203 |
my $dbh = C4::Context->dbh; |
| 2204 |
|
2204 |
|
| 2205 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2205 |
$dbh->do('INSERT INTO hold_group VALUES ()'); |
| 2206 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2206 |
return $dbh->last_insert_id(undef, undef, 'hold_group', undef); |
| 2207 |
} |
2207 |
} |
| 2208 |
|
2208 |
|
| 2209 |
=head2 DeleteReserveGroup |
2209 |
=head2 DeleteHoldGroup |
| 2210 |
|
2210 |
|
| 2211 |
DeleteReserveGroup($reserve_group_id); |
2211 |
DeleteHoldGroup($hold_group_id); |
| 2212 |
|
2212 |
|
| 2213 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2213 |
Delete a hold group. Reserves that belong to this group are not removed. |
| 2214 |
|
2214 |
|
| 2215 |
=cut |
2215 |
=cut |
| 2216 |
|
2216 |
|
| 2217 |
sub DeleteReserveGroup { |
2217 |
sub DeleteHoldGroup { |
| 2218 |
my ($reserve_group_id) = @_; |
2218 |
my ($hold_group_id) = @_; |
| 2219 |
|
2219 |
|
| 2220 |
my $dbh = C4::Context->dbh; |
2220 |
my $dbh = C4::Context->dbh; |
| 2221 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2221 |
my $query = 'DELETE FROM hold_group WHERE hold_group_id = ?'; |
| 2222 |
$dbh->do($query, undef, $reserve_group_id); |
2222 |
$dbh->do($query, undef, $hold_group_id); |
| 2223 |
} |
2223 |
} |
| 2224 |
|
2224 |
|
| 2225 |
=head2 GetReserveGroupReserves |
2225 |
=head2 GetHoldGroupHolds |
| 2226 |
|
2226 |
|
| 2227 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2227 |
my @reserves = GetHoldGroupHolds($hold_group_id); |
| 2228 |
|
2228 |
|
| 2229 |
Fetch all reserve from a reserve group. |
2229 |
Fetch all reserve from a hold group. |
| 2230 |
|
2230 |
|
| 2231 |
=cut |
2231 |
=cut |
| 2232 |
|
2232 |
|
| 2233 |
sub GetReserveGroupReserves { |
2233 |
sub GetHoldGroupHolds { |
| 2234 |
my ($reserve_group_id) = @_; |
2234 |
my ($hold_group_id) = @_; |
| 2235 |
|
2235 |
|
| 2236 |
my $dbh = C4::Context->dbh; |
2236 |
my $dbh = C4::Context->dbh; |
| 2237 |
|
2237 |
|
| 2238 |
my $reserves = $dbh->selectall_arrayref(q{ |
2238 |
my $reserves = $dbh->selectall_arrayref(q{ |
| 2239 |
SELECT * FROM reserves |
2239 |
SELECT * FROM reserves |
| 2240 |
WHERE reserve_group_id = ? |
2240 |
WHERE hold_group_id = ? |
| 2241 |
}, { Slice => {} }, $reserve_group_id); |
2241 |
}, { Slice => {} }, $hold_group_id); |
| 2242 |
|
2242 |
|
| 2243 |
return () unless defined $reserves; |
2243 |
return () unless defined $reserves; |
| 2244 |
|
2244 |
|