Lines 140-145
BEGIN {
Link Here
|
140 |
IsItemOnHoldAndFound |
140 |
IsItemOnHoldAndFound |
141 |
|
141 |
|
142 |
GetMaxPatronHoldsForRecord |
142 |
GetMaxPatronHoldsForRecord |
|
|
143 |
|
144 |
&AddReserveGroup |
145 |
&DeleteReserveGroup |
146 |
&GetReserveGroupReserves |
143 |
); |
147 |
); |
144 |
@EXPORT_OK = qw( MergeHolds ); |
148 |
@EXPORT_OK = qw( MergeHolds ); |
145 |
} |
149 |
} |
Lines 165-171
sub AddReserve {
Link Here
|
165 |
my ( |
169 |
my ( |
166 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
170 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
167 |
$priority, $resdate, $expdate, $notes, |
171 |
$priority, $resdate, $expdate, $notes, |
168 |
$title, $checkitem, $found, $itemtype |
172 |
$title, $checkitem, $found, $itemtype, |
|
|
173 |
$reserve_group_id |
169 |
) = @_; |
174 |
) = @_; |
170 |
|
175 |
|
171 |
$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 213-218
sub AddReserve {
Link Here
|
213 |
waitingdate => $waitingdate, |
218 |
waitingdate => $waitingdate, |
214 |
expirationdate => $expdate, |
219 |
expirationdate => $expdate, |
215 |
itemtype => $itemtype, |
220 |
itemtype => $itemtype, |
|
|
221 |
reserve_group_id => $reserve_group_id, |
216 |
} |
222 |
} |
217 |
)->store(); |
223 |
)->store(); |
218 |
$hold->set_waiting() if $found eq 'W'; |
224 |
$hold->set_waiting() if $found eq 'W'; |
Lines 1083-1088
sub ModReserveAffect {
Link Here
|
1083 |
$hold->itemnumber($itemnumber); |
1089 |
$hold->itemnumber($itemnumber); |
1084 |
$hold->set_waiting($transferToDo); |
1090 |
$hold->set_waiting($transferToDo); |
1085 |
|
1091 |
|
|
|
1092 |
if ($hold->reserve_group_id) { |
1093 |
# Delete other reserves from same group |
1094 |
$dbh->do(q{ |
1095 |
DELETE FROM reserves |
1096 |
WHERE reserve_group_id = ? |
1097 |
AND reserve_id != ? |
1098 |
}, undef, $hold->reserve_group_id, $hold->reserve_id); |
1099 |
DeleteReserveGroup($hold->reserve_group_id); |
1100 |
} |
1101 |
|
1086 |
_koha_notify_reserve( $hold->reserve_id ) |
1102 |
_koha_notify_reserve( $hold->reserve_id ) |
1087 |
if ( !$transferToDo && !$already_on_shelf ); |
1103 |
if ( !$transferToDo && !$already_on_shelf ); |
1088 |
|
1104 |
|
Lines 2169-2174
sub GetHoldRule {
Link Here
|
2169 |
return $sth->fetchrow_hashref(); |
2185 |
return $sth->fetchrow_hashref(); |
2170 |
} |
2186 |
} |
2171 |
|
2187 |
|
|
|
2188 |
=head2 AddReserveGroup |
2189 |
|
2190 |
my $reserve_group_id = AddReserveGroup(); |
2191 |
|
2192 |
Creates a new reserve group and returns its ID |
2193 |
|
2194 |
=cut |
2195 |
|
2196 |
sub AddReserveGroup { |
2197 |
my $dbh = C4::Context->dbh; |
2198 |
|
2199 |
$dbh->do('INSERT INTO reserve_group VALUES ()'); |
2200 |
return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); |
2201 |
} |
2202 |
|
2203 |
=head2 DeleteReserveGroup |
2204 |
|
2205 |
DeleteReserveGroup($reserve_group_id); |
2206 |
|
2207 |
Delete a reserve group. Reserves that belong to this group are not removed. |
2208 |
|
2209 |
=cut |
2210 |
|
2211 |
sub DeleteReserveGroup { |
2212 |
my ($reserve_group_id) = @_; |
2213 |
|
2214 |
my $dbh = C4::Context->dbh; |
2215 |
my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; |
2216 |
$dbh->do($query, undef, $reserve_group_id); |
2217 |
} |
2218 |
|
2219 |
=head2 GetReserveGroupReserves |
2220 |
|
2221 |
my @reserves = GetReserveGroupReserves($reserve_group_id); |
2222 |
|
2223 |
Fetch all reserve from a reserve group. |
2224 |
|
2225 |
=cut |
2226 |
|
2227 |
sub GetReserveGroupReserves { |
2228 |
my ($reserve_group_id) = @_; |
2229 |
|
2230 |
my $dbh = C4::Context->dbh; |
2231 |
|
2232 |
my $reserves = $dbh->selectall_arrayref(q{ |
2233 |
SELECT * FROM reserves |
2234 |
WHERE reserve_group_id = ? |
2235 |
}, { Slice => {} }, $reserve_group_id); |
2236 |
|
2237 |
return () unless defined $reserves; |
2238 |
|
2239 |
return @$reserves; |
2240 |
} |
2241 |
|
2172 |
=head1 AUTHOR |
2242 |
=head1 AUTHOR |
2173 |
|
2243 |
|
2174 |
Koha Development Team <http://koha-community.org/> |
2244 |
Koha Development Team <http://koha-community.org/> |