use C4::Letters;
use C4::Branch qw( GetBranchDetail );
use C4::Dates qw( format_date_in_iso );
+
+use Koha::DateUtils;
+
use List::MoreUtils qw( firstidx );
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
BEGIN {
# set the version for version checking
- $VERSION = 3.01;
+ $VERSION = 3.07.00.049;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(
sub CanBookBeReserved{
my ($borrowernumber, $biblionumber) = @_;
- my @items = get_itemnumbers_of($biblionumber);
+ my $items = GetItemnumbersForBiblio($biblionumber);
#get items linked via host records
my @hostitems = get_hostitemnumbers_of($biblionumber);
if (@hostitems){
- push (@items,@hostitems);
+ push (@$items,@hostitems);
}
- foreach my $item (@items){
+ foreach my $item (@$items){
return 1 if CanItemBeReserved($borrowernumber, $item);
}
return 0;
=cut
sub ToggleSuspend {
- my ( $borrowernumber, $biblionumber ) = @_;
+ my ( $borrowernumber, $biblionumber, $suspend_until ) = @_;
+
+ $suspend_until = output_pref( dt_from_string( $suspend_until ), 'iso' ) if ( $suspend_until );
+
+ my $do_until = ( $suspend_until ) ? '?' : 'NULL';
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare(
"UPDATE reserves SET suspend = NOT suspend,
- suspend_until = CASE WHEN suspend = 0 THEN NULL ELSE suspend_until END
+ suspend_until = CASE WHEN suspend = 0 THEN NULL ELSE $do_until END
WHERE biblionumber = ?
AND borrowernumber = ?
");
- $sth->execute(
- $biblionumber,
- $borrowernumber,
- );
+
+ my @params;
+ push( @params, $suspend_until ) if ( $suspend_until );
+ push( @params, $biblionumber );
+ push( @params, $borrowernumber );
+
+ $sth->execute( @params );
$sth->finish;
}
my $messagingprefs;
if ( $to_address || $borrower->{'smsalertnumber'} ) {
$messagingprefs = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $borrowernumber, message_name => 'Hold_Filled' } );
-
- return if ( !defined( $messagingprefs->{'letter_code'} ) );
- $letter_code = $messagingprefs->{'letter_code'};
} else {
- $letter_code = 'HOLD_PRINT';
$print_mode = 1;
}
my $admin_email_address = $branch_details->{'branchemail'} || C4::Context->preference('KohaAdminEmailAddress');
- my $letter = C4::Letters::GetPreparedLetter (
+ my %letter_params = (
module => 'reserves',
- letter_code => $letter_code,
branchcode => $reserve->{branchcode},
tables => {
'branches' => $branch_details,
'items', $reserve->{'itemnumber'},
},
substitute => { today => C4::Dates->new()->output() },
- ) or die "Could not find a letter called '$letter_code' in the 'reserves' module";
-
+ );
if ( $print_mode ) {
+ $letter_params{ 'letter_code' } = 'HOLD_PRINT';
+ my $letter = C4::Letters::GetPreparedLetter ( %letter_params ) or die "Could not find a letter called '$letter_params{'letter_code'}' in the 'reserves' module";
+
C4::Letters::EnqueueLetter( {
letter => $letter,
borrowernumber => $borrowernumber,
return;
}
- if ( grep { $_ eq 'email' } @{$messagingprefs->{transports}} ) {
- # aka, 'email' in ->{'transports'}
+ if ( $to_address && defined $messagingprefs->{transports}->{'email'} ) {
+ $letter_params{ 'letter_code' } = $messagingprefs->{transports}->{'email'};
+ my $letter = C4::Letters::GetPreparedLetter ( %letter_params ) or die "Could not find a letter called '$letter_params{'letter_code'}' in the 'reserves' module";
+
C4::Letters::EnqueueLetter(
{ letter => $letter,
borrowernumber => $borrowernumber,
);
}
- if ( grep { $_ eq 'sms' } @{$messagingprefs->{transports}} ) {
+ if ( $borrower->{'smsalertnumber'} && defined $messagingprefs->{transports}->{'sms'} ) {
+ $letter_params{ 'letter_code' } = $messagingprefs->{transports}->{'sms'};
+ my $letter = C4::Letters::GetPreparedLetter ( %letter_params ) or die "Could not find a letter called '$letter_params{'letter_code'}' in the 'reserves' module";
+
C4::Letters::EnqueueLetter(
{ letter => $letter,
borrowernumber => $borrowernumber,