BEGIN {
require Exporter;
# set the version for version checking
- $VERSION = 3.01;
+ $VERSION = 3.07.00.049;
@ISA = qw(Exporter);
@EXPORT = qw(
&GetLetters &GetPreparedLetter &GetWrappedLetter &addalert &getalert &delalert &findrelatedto &SendAlerts &GetPrintMessages
=cut
-sub GetLetters (;$) {
+sub GetLetters {
# returns a reference to a hash of references to ALL letters...
my $cat = shift;
}
my %letter;
-sub getletter ($$$) {
+sub getletter {
my ( $module, $code, $branchcode ) = @_;
- if (C4::Context->preference('IndependantBranches') && $branchcode){
+ if ( C4::Context->preference('IndependantBranches')
+ and $branchcode
+ and C4::Context->userenv ) {
$branchcode = C4::Context->userenv->{'branch'};
}
=cut
-sub addalert ($$$) {
+sub addalert {
my ( $borrowernumber, $type, $externalid ) = @_;
my $dbh = C4::Context->dbh;
my $sth =
=cut
-sub delalert ($) {
+sub delalert {
my $alertid = shift or die "delalert() called without valid argument (alertid)"; # it's gonna die anyway.
$debug and warn "delalert: deleting alertid $alertid";
my $sth = C4::Context->dbh->prepare("delete from alert where alertid=?");
=cut
-sub getalert (;$$$) {
+sub getalert {
my ( $borrowernumber, $type, $externalid ) = @_;
my $dbh = C4::Context->dbh;
my $query = "SELECT a.*, b.branchcode FROM alert a JOIN borrowers b USING(borrowernumber) WHERE";
# outmoded POD:
# When type=virtual, the id is related to a virtual shelf and this sub returns the name of the sub
-sub findrelatedto ($$) {
- my $type = shift or return undef;
- my $externalid = shift or return undef;
+sub findrelatedto {
+ my $type = shift or return;
+ my $externalid = shift or return;
my $q = ($type eq 'issue' ) ?
"select title as result from subscription left join biblio on subscription.biblionumber=biblio.biblionumber where subscriptionid=?" :
($type eq 'borrower') ?
"select concat(firstname,' ',surname) from borrowers where borrowernumber=?" : undef;
unless ($q) {
warn "findrelatedto(): Illegal type '$type'";
- return undef;
+ return;
}
my $sth = C4::Context->dbh->prepare($q);
$sth->execute($externalid);
# check cache first
(defined $handles{$table}) and return $handles{$table};
my $query =
- ($table eq 'biblio' ) ? "SELECT * FROM $table WHERE biblionumber = ?" :
- ($table eq 'biblioitems' ) ? "SELECT * FROM $table WHERE biblionumber = ?" :
- ($table eq 'items' ) ? "SELECT * FROM $table WHERE itemnumber = ?" :
- ($table eq 'issues' ) ? "SELECT * FROM $table WHERE itemnumber = ?" :
- ($table eq 'reserves' ) ? "SELECT * FROM $table WHERE borrowernumber = ? and biblionumber = ?" :
- ($table eq 'borrowers' ) ? "SELECT * FROM $table WHERE borrowernumber = ?" :
- ($table eq 'branches' ) ? "SELECT * FROM $table WHERE branchcode = ?" :
- ($table eq 'suggestions' ) ? "SELECT * FROM $table WHERE suggestionid = ?" :
- ($table eq 'aqbooksellers') ? "SELECT * FROM $table WHERE id = ?" :
- ($table eq 'aqorders' ) ? "SELECT * FROM $table WHERE ordernumber = ?" :
- ($table eq 'opac_news' ) ? "SELECT * FROM $table WHERE idnew = ?" :
+ ($table eq 'biblio' ) ? "SELECT * FROM $table WHERE biblionumber = ?" :
+ ($table eq 'biblioitems' ) ? "SELECT * FROM $table WHERE biblionumber = ?" :
+ ($table eq 'items' ) ? "SELECT * FROM $table WHERE itemnumber = ?" :
+ ($table eq 'issues' ) ? "SELECT * FROM $table WHERE itemnumber = ?" :
+ ($table eq 'old_issues' ) ? "SELECT * FROM $table WHERE itemnumber = ? ORDER BY timestamp DESC LIMIT 1" :
+ ($table eq 'reserves' ) ? "SELECT * FROM $table WHERE borrowernumber = ? and biblionumber = ?" :
+ ($table eq 'borrowers' ) ? "SELECT * FROM $table WHERE borrowernumber = ?" :
+ ($table eq 'branches' ) ? "SELECT * FROM $table WHERE branchcode = ?" :
+ ($table eq 'suggestions' ) ? "SELECT * FROM $table WHERE suggestionid = ?" :
+ ($table eq 'aqbooksellers') ? "SELECT * FROM $table WHERE id = ?" :
+ ($table eq 'aqorders' ) ? "SELECT * FROM $table WHERE ordernumber = ?" :
+ ($table eq 'opac_news' ) ? "SELECT * FROM $table WHERE idnew = ?" :
undef ;
unless ($query) {
warn "ERROR: No _parseletter_sth query for table '$table'";
=cut
-sub EnqueueLetter ($) {
- my $params = shift or return undef;
+sub EnqueueLetter {
+ my $params = shift or return;
return unless exists $params->{'letter'};
return unless exists $params->{'borrowernumber'};
return unless exists $params->{'message_transport_type'};
+ my $content = $params->{letter}->{content};
+ $content =~ s/\s+//g if(defined $content);
+ if ( not defined $content or $content eq '' ) {
+ warn "Trying to add an empty message to the message queue" if $debug;
+ return;
+ }
+
# If we have any attachments we should encode then into the body.
if ( $params->{'attachments'} ) {
$params->{'letter'} = _add_attachments(
=cut
-sub SendQueuedMessages (;$) {
+sub SendQueuedMessages {
my $params = shift;
my $unsent_messages = _get_unsent_messages();
my $params = shift || {};
return _get_unsent_messages( { message_transport_type => 'print',
- borrowernumber => $params->{'borrowernumber'}, } );
+ borrowernumber => $params->{'borrowernumber'},
+ } );
}
=head2 GetQueuedMessages ([$hashref])
}
-sub _get_unsent_messages (;$) {
+sub _get_unsent_messages {
my $params = shift;
my $dbh = C4::Context->dbh();
my $statement = << 'ENDSQL';
-SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, from_address, to_address, content_type
- FROM message_queue
+SELECT mq.message_id, mq.borrowernumber, mq.subject, mq.content, mq.message_transport_type, mq.status, mq.time_queued, mq.from_address, mq.to_address, mq.content_type, b.branchcode
+ FROM message_queue mq
+ LEFT JOIN borrowers b ON b.borrowernumber = mq.borrowernumber
WHERE status = ?
ENDSQL
push @query_params, $params->{'limit'};
}
}
+
$debug and warn "_get_unsent_messages SQL: $statement";
$debug and warn "_get_unsent_messages params: " . join(',',@query_params);
my $sth = $dbh->prepare( $statement );
return $sth->fetchall_arrayref({});
}
-sub _send_message_by_email ($;$$$) {
+sub _send_message_by_email {
my $message = shift or return;
my ($username, $password, $method) = @_;
EOS
}
-sub _send_message_by_sms ($) {
- my $message = shift or return undef;
+sub _send_message_by_sms {
+ my $message = shift or return;
my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} );
return unless $member->{'smsalertnumber'};
$dbh->do('UPDATE message_queue SET to_address=? WHERE message_id=?',undef,($to,$id));
}
-sub _set_message_status ($) {
- my $params = shift or return undef;
+sub _set_message_status {
+ my $params = shift or return;
foreach my $required_parameter ( qw( message_id status ) ) {
- return undef unless exists $params->{ $required_parameter };
+ return unless exists $params->{ $required_parameter };
}
my $dbh = C4::Context->dbh();