|
Lines 40-47
use C4::Dates qw( format_date_in_iso );
Link Here
|
| 40 |
use Koha::DateUtils; |
40 |
use Koha::DateUtils; |
| 41 |
use Koha::Calendar; |
41 |
use Koha::Calendar; |
| 42 |
use Koha::Database; |
42 |
use Koha::Database; |
|
|
43 |
use Koha::Hold; |
| 44 |
use Koha::Holds; |
| 43 |
|
45 |
|
| 44 |
use List::MoreUtils qw( firstidx any ); |
46 |
use List::MoreUtils qw( firstidx any ); |
|
|
47 |
use Carp; |
| 45 |
|
48 |
|
| 46 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
49 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
| 47 |
|
50 |
|
|
Lines 155-172
sub AddReserve {
Link Here
|
| 155 |
$bibitems, $priority, $resdate, $expdate, $notes, |
158 |
$bibitems, $priority, $resdate, $expdate, $notes, |
| 156 |
$title, $checkitem, $found |
159 |
$title, $checkitem, $found |
| 157 |
) = @_; |
160 |
) = @_; |
|
|
161 |
|
| 162 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
| 163 |
carp("AddReserve: borrower $borrowernumber already has a hold for biblionumber $biblionumber"); |
| 164 |
return; |
| 165 |
} |
| 166 |
|
| 158 |
my $dbh = C4::Context->dbh; |
167 |
my $dbh = C4::Context->dbh; |
|
|
168 |
|
| 159 |
$resdate = format_date_in_iso( $resdate ) if ( $resdate ); |
169 |
$resdate = format_date_in_iso( $resdate ) if ( $resdate ); |
| 160 |
$resdate = C4::Dates->today( 'iso' ) unless ( $resdate ); |
170 |
$resdate = C4::Dates->today( 'iso' ) unless ( $resdate ); |
|
|
171 |
|
| 161 |
if ($expdate) { |
172 |
if ($expdate) { |
| 162 |
$expdate = format_date_in_iso( $expdate ); |
173 |
$expdate = format_date_in_iso( $expdate ); |
| 163 |
} else { |
174 |
} else { |
| 164 |
undef $expdate; # make reserves.expirationdate default to null rather than '0000-00-00' |
175 |
undef $expdate; # make reserves.expirationdate default to null rather than '0000-00-00' |
| 165 |
} |
176 |
} |
| 166 |
if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) { |
177 |
|
| 167 |
# Make room in reserves for this before those of a later reserve date |
178 |
if ( C4::Context->preference('AllowHoldDateInFuture') ) { |
| 168 |
$priority = _ShiftPriorityByDateAndPriority( $biblionumber, $resdate, $priority ); |
179 |
|
|
|
180 |
# Make room in reserves for this before those of a later reserve date |
| 181 |
$priority = _ShiftPriorityByDateAndPriority( $biblionumber, $resdate, $priority ); |
| 169 |
} |
182 |
} |
|
|
183 |
|
| 170 |
my $waitingdate; |
184 |
my $waitingdate; |
| 171 |
|
185 |
|
| 172 |
# If the reserv had the waiting status, we had the value of the resdate |
186 |
# If the reserv had the waiting status, we had the value of the resdate |
|
Lines 175-194
sub AddReserve {
Link Here
|
| 175 |
} |
189 |
} |
| 176 |
|
190 |
|
| 177 |
# updates take place here |
191 |
# updates take place here |
| 178 |
my $query = qq{ |
192 |
my $hold = Koha::Hold->new( |
| 179 |
INSERT INTO reserves |
193 |
{ |
| 180 |
(borrowernumber,biblionumber,reservedate,branchcode, |
194 |
borrowernumber => $borrowernumber, |
| 181 |
priority,reservenotes,itemnumber,found,waitingdate,expirationdate) |
195 |
biblionumber => $biblionumber, |
| 182 |
VALUES |
196 |
reservedate => $resdate, |
| 183 |
(?,?,?,?,?, |
197 |
branchcode => $branch, |
| 184 |
?,?,?,?,?) |
198 |
priority => $priority, |
| 185 |
}; |
199 |
reservenotes => $notes, |
| 186 |
my $sth = $dbh->prepare($query); |
200 |
itemnumber => $checkitem, |
| 187 |
$sth->execute( |
201 |
found => $found, |
| 188 |
$borrowernumber, $biblionumber, $resdate, $branch, $priority, |
202 |
waitingdate => $waitingdate, |
| 189 |
$notes, $checkitem, $found, $waitingdate, $expdate |
203 |
expirationdate => $expdate |
| 190 |
); |
204 |
} |
| 191 |
my $reserve_id = $sth->{mysql_insertid}; |
205 |
)->store(); |
|
|
206 |
my $reserve_id = $hold->id(); |
| 207 |
|
| 192 |
# add a reserve fee if needed |
208 |
# add a reserve fee if needed |
| 193 |
my $fee = GetReserveFee( $borrowernumber, $biblionumber ); |
209 |
my $fee = GetReserveFee( $borrowernumber, $biblionumber ); |
| 194 |
ChargeReserveFee( $borrowernumber, $fee, $title ); |
210 |
ChargeReserveFee( $borrowernumber, $fee, $title ); |