# Try to get the borrower's email address
my $to_address = C4::Members::GetNoticeEmailAddress($borrowernumber);
-
- my $letter_code;
- my $print_mode = 0;
- my $messagingprefs;
- if ( $to_address || $borrower->{'smsalertnumber'} ) {
- $messagingprefs = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $borrowernumber, message_name => 'Hold_Filled' } );
- } else {
- $print_mode = 1;
- }
+
+ my $messagingprefs = C4::Members::Messaging::GetMessagingPreferences( {
+ borrowernumber => $borrowernumber,
+ message_name => 'Hold_Filled'
+ } );
my $sth = $dbh->prepare("
SELECT *
substitute => { today => C4::Dates->new()->output() },
);
-
- 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";
+ my $print_sent = 0;
+ while ( my ( $mtt, $letter_code ) = each %{ $messagingprefs->{transports} } ) {
+ if ( ($mtt eq 'email' and not $to_address) or ($mtt eq 'sms' and not $borrower->{smsalertnumber}) ) {
+ # email or sms is requested but not exist, do a print.
+ $mtt = 'print';
+ }
+ $letter_params{letter_code} = $letter_code;
+ $letter_params{message_transport_type} = $mtt;
+ 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,
- message_transport_type => 'print',
+ from_address => $admin_email_address,
+ message_transport_type => $mtt,
} );
-
- return;
- }
-
- 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,
- message_transport_type => 'email',
- from_address => $admin_email_address,
- }
- );
- }
-
- 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,
- message_transport_type => 'sms',
- }
- );
}
}
}
+
+
+
+
+$DBversion = "3.15.00.XXX";
+if ( CheckVersion($DBversion) ) {
+ $dbh->do(q|
+ UPDATE message_transports SET letter_code='HOLD' WHERE letter_code='HOLD_PHONE' OR letter_code='HOLD_PRINT'
+ |);
+ $dbh->do(q|
+ UPDATE letter SET code='HOLD', message_transport_type='print' WHERE code='HOLD_PRINT'
+ |);
+ $dbh->do(q|
+ UPDATE letter SET code='HOLD', message_transport_type='phone' WHERE code='HOLD_PHONE'
+ |);
+ print "Upgrade to $DBversion done (Bug 10845: Multi transport types for holds)\n";
+ SetVersion($DBversion);
+}
+
+
=head1 FUNCTIONS
=head2 TableExists($table)
<li>When this notice references the branches table it is referring to the pickup library information.</li>
</ul>
</li>
- <li>HOLD_PRINT (Printed notice when hold available for pickup)
-<ul>
- <li>This notice is used for hold confirmation notices that are sent out in print format. This will not effect what the email notice looks like.</li>
- <li>When this notice references the branches table it is referring to the pickup library information.</li>
-</ul>
-</li>
<li>ODUE (Overdue Notice)
<ul>
<li>This notice is used to send Overdue Notices to Patrons</li>
<p><strong>See the full documentation for Notices in the <a href="http://manual.koha-community.org/[% helpVersion %]/en/notices.html">manual</a> (online).</strong></p>
-[% INCLUDE 'help-bottom.inc' %]
\ No newline at end of file
+[% INCLUDE 'help-bottom.inc' %]
my $type_notice_map = {
'PREOVERDUE' => 'PREDUE_PHONE',
'OVERDUE' => 'OVERDUE_PHONE',
- 'RESERVE' => 'HOLD_PHONE',
+ 'RESERVE' => 'HOLD',
};
GetOptions(
tables => {
borrowers => $issues->{'borrowernumber'},
biblio => $issues->{'biblionumber'},
- biblioitems => $issues->{'biblionumber'}
+ biblioitems => $issues->{'biblionumber'},
+ message_transport_type => 'phone',
},
);