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