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 216-222
sub AddReserve {
Link Here
|
216 |
waitingdate => $waitingdate, |
216 |
waitingdate => $waitingdate, |
217 |
expirationdate => $expdate, |
217 |
expirationdate => $expdate, |
218 |
itemtype => $itemtype, |
218 |
itemtype => $itemtype, |
219 |
reserve_group_id => $reserve_group_id, |
219 |
hold_group_id => $hold_group_id, |
220 |
} |
220 |
} |
221 |
)->store(); |
221 |
)->store(); |
222 |
$hold->set_waiting() if $found eq 'W'; |
222 |
$hold->set_waiting() if $found eq 'W'; |
Lines 523-529
sub GetReserveCount {
Link Here
|
523 |
SELECT COUNT(*) AS counter |
523 |
SELECT COUNT(*) AS counter |
524 |
FROM reserves |
524 |
FROM reserves |
525 |
WHERE borrowernumber = ? |
525 |
WHERE borrowernumber = ? |
526 |
AND reserve_group_id is NULL"; #added by 15516 |
526 |
AND hold_group_id is NULL"; #added by 15516 |
527 |
my $sth = $dbh->prepare($query); |
527 |
my $sth = $dbh->prepare($query); |
528 |
$sth->execute($borrowernumber); |
528 |
$sth->execute($borrowernumber); |
529 |
my $row = $sth->fetchrow_hashref; |
529 |
my $row = $sth->fetchrow_hashref; |
Lines 532-541
sub GetReserveCount {
Link Here
|
532 |
$count += $row->{counter}; |
532 |
$count += $row->{counter}; |
533 |
|
533 |
|
534 |
$query = " |
534 |
$query = " |
535 |
SELECT COUNT(DISTINCT reserve_group_id) AS counter |
535 |
SELECT COUNT(DISTINCT hold_group_id) AS counter |
536 |
FROM reserves |
536 |
FROM reserves |
537 |
WHERE borrowernumber = ? |
537 |
WHERE borrowernumber = ? |
538 |
AND reserve_group_id is not NULL |
538 |
AND hold_group_id is not NULL |
539 |
"; |
539 |
"; |
540 |
$sth = $dbh->prepare($query); |
540 |
$sth = $dbh->prepare($query); |
541 |
$sth->execute($borrowernumber); |
541 |
$sth->execute($borrowernumber); |
Lines 1103-1116
sub ModReserveAffect {
Link Here
|
1103 |
$hold->itemnumber($itemnumber); |
1103 |
$hold->itemnumber($itemnumber); |
1104 |
$hold->set_waiting($transferToDo); |
1104 |
$hold->set_waiting($transferToDo); |
1105 |
|
1105 |
|
1106 |
if ($hold->reserve_group_id) { |
1106 |
if ($hold->hold_group_id) { |
1107 |
# Delete other reserves from same group |
1107 |
# Delete other reserves from same group |
1108 |
$dbh->do(q{ |
1108 |
$dbh->do(q{ |
1109 |
DELETE FROM reserves |
1109 |
DELETE FROM reserves |
1110 |
WHERE reserve_group_id = ? |
1110 |
WHERE hold_group_id = ? |
1111 |
AND reserve_id != ? |
1111 |
AND reserve_id != ? |
1112 |
}, undef, $hold->reserve_group_id, $hold->reserve_id); |
1112 |
}, undef, $hold->hold_group_id, $hold->reserve_id); |
1113 |
DeleteReserveGroup($hold->reserve_group_id); |
1113 |
DeleteHoldGroup($hold->hold_group_id); |
1114 |
} |
1114 |
} |
1115 |
|
1115 |
|
1116 |
_koha_notify_reserve( $hold->reserve_id ) |
1116 |
_koha_notify_reserve( $hold->reserve_id ) |
Lines 2199-2252
sub GetHoldRule {
Link Here
|
2199 |
return $sth->fetchrow_hashref(); |
2199 |
return $sth->fetchrow_hashref(); |
2200 |
} |
2200 |
} |
2201 |
|
2201 |
|
2202 |
=head2 AddReserveGroup |
2202 |
=head2 AddHoldGroup |
2203 |
|
2203 |
|
2204 |
my $reserve_group_id = AddReserveGroup(); |
2204 |
my $hold_group_id = AddHoldGroup(); |
2205 |
|
2205 |
|
2206 |
Creates a new reserve group and returns its ID |
2206 |
Creates a new hold group and returns its ID |
2207 |
|
2207 |
|
2208 |
=cut |
2208 |
=cut |
2209 |
|
2209 |
|
2210 |
sub AddReserveGroup { |
2210 |
sub AddHoldGroup { |
2211 |
my $dbh = C4::Context->dbh; |
2211 |
my $dbh = C4::Context->dbh; |
2212 |
|
2212 |
|
2213 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2213 |
$dbh->do('INSERT INTO hold_group VALUES ()'); |
2214 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2214 |
return $dbh->last_insert_id(undef, undef, 'hold_group', undef); |
2215 |
} |
2215 |
} |
2216 |
|
2216 |
|
2217 |
=head2 DeleteReserveGroup |
2217 |
=head2 DeleteHoldGroup |
2218 |
|
2218 |
|
2219 |
DeleteReserveGroup($reserve_group_id); |
2219 |
DeleteHoldGroup($hold_group_id); |
2220 |
|
2220 |
|
2221 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2221 |
Delete a hold group. Reserves that belong to this group are not removed. |
2222 |
|
2222 |
|
2223 |
=cut |
2223 |
=cut |
2224 |
|
2224 |
|
2225 |
sub DeleteReserveGroup { |
2225 |
sub DeleteHoldGroup { |
2226 |
my ($reserve_group_id) = @_; |
2226 |
my ($hold_group_id) = @_; |
2227 |
|
2227 |
|
2228 |
my $dbh = C4::Context->dbh; |
2228 |
my $dbh = C4::Context->dbh; |
2229 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2229 |
my $query = 'DELETE FROM hold_group WHERE hold_group_id = ?'; |
2230 |
$dbh->do($query, undef, $reserve_group_id); |
2230 |
$dbh->do($query, undef, $hold_group_id); |
2231 |
} |
2231 |
} |
2232 |
|
2232 |
|
2233 |
=head2 GetReserveGroupReserves |
2233 |
=head2 GetHoldGroupHolds |
2234 |
|
2234 |
|
2235 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2235 |
my @reserves = GetHoldGroupHolds($hold_group_id); |
2236 |
|
2236 |
|
2237 |
Fetch all reserve from a reserve group. |
2237 |
Fetch all reserve from a hold group. |
2238 |
|
2238 |
|
2239 |
=cut |
2239 |
=cut |
2240 |
|
2240 |
|
2241 |
sub GetReserveGroupReserves { |
2241 |
sub GetHoldGroupHolds { |
2242 |
my ($reserve_group_id) = @_; |
2242 |
my ($hold_group_id) = @_; |
2243 |
|
2243 |
|
2244 |
my $dbh = C4::Context->dbh; |
2244 |
my $dbh = C4::Context->dbh; |
2245 |
|
2245 |
|
2246 |
my $reserves = $dbh->selectall_arrayref(q{ |
2246 |
my $reserves = $dbh->selectall_arrayref(q{ |
2247 |
SELECT * FROM reserves |
2247 |
SELECT * FROM reserves |
2248 |
WHERE reserve_group_id = ? |
2248 |
WHERE hold_group_id = ? |
2249 |
}, { Slice => {} }, $reserve_group_id); |
2249 |
}, { Slice => {} }, $hold_group_id); |
2250 |
|
2250 |
|
2251 |
return () unless defined $reserves; |
2251 |
return () unless defined $reserves; |
2252 |
|
2252 |
|