use MIME::Lite;
use Mail::Sendmail;
+use C4::Koha qw(GetAuthorisedValueByCode);
use C4::Members;
use C4::Members::Attributes qw(GetBorrowerAttributes);
use C4::Branch;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
BEGIN {
- require Exporter;
- # set the version for version checking
+ require Exporter;
+ # set the version for version checking
$VERSION = 3.07.00.049;
- @ISA = qw(Exporter);
- @EXPORT = qw(
- &GetLetters &GetPreparedLetter &GetWrappedLetter &addalert &getalert &delalert &findrelatedto &SendAlerts &GetPrintMessages
- );
+ @ISA = qw(Exporter);
+ @EXPORT = qw(
+ &GetLetters &GetPreparedLetter &GetWrappedLetter &addalert &getalert &delalert &findrelatedto &SendAlerts &GetPrintMessages &GetMessageTransportTypes
+ );
}
=head1 NAME
sub GetLetters {
# returns a reference to a hash of references to ALL letters...
- my $cat = shift;
+ my ( $cat ) = @_;
my %letters;
my $dbh = C4::Context->dbh;
my $sth;
- if (defined $cat) {
- my $query = "SELECT * FROM letter WHERE module = ? ORDER BY name";
- $sth = $dbh->prepare($query);
- $sth->execute($cat);
- }
- else {
- my $query = "SELECT * FROM letter ORDER BY name";
- $sth = $dbh->prepare($query);
- $sth->execute;
- }
+ my $query = q{
+ SELECT * FROM letter WHERE 1
+ };
+ $query .= q{ AND module = ? } if defined $cat;
+ $query .= q{ GROUP BY code ORDER BY name};
+ $sth = $dbh->prepare($query);
+ $sth->execute((defined $cat ? $cat : ()));
+
while ( my $letter = $sth->fetchrow_hashref ) {
$letters{ $letter->{'code'} } = $letter->{'name'};
}
# short-term fix, our will work.
our %letter;
sub getletter {
- my ( $module, $code, $branchcode ) = @_;
+ my ( $module, $code, $branchcode, $message_transport_type ) = @_;
+ $message_transport_type ||= 'email';
if ( C4::Context->preference('IndependentBranches')
}
$branchcode //= '';
- if ( my $l = $letter{$module}{$code}{$branchcode} ) {
+ if ( my $l = $letter{$module}{$code}{$branchcode}{$message_transport_type} ) {
return { %$l }; # deep copy
}
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("select * from letter where module=? and code=? and (branchcode = ? or branchcode = '') order by branchcode desc limit 1");
- $sth->execute( $module, $code, $branchcode );
+ my $sth = $dbh->prepare(q{
+ SELECT *
+ FROM letter
+ WHERE module=? AND code=? AND (branchcode = ? OR branchcode = '') AND message_transport_type = ?
+ ORDER BY branchcode DESC LIMIT 1
+ });
+ $sth->execute( $module, $code, $branchcode, $message_transport_type );
my $line = $sth->fetchrow_hashref
or return;
$line->{'content-type'} = 'text/html; charset="UTF-8"' if $line->{is_html};
- $letter{$module}{$code}{$branchcode} = $line;
+ $letter{$module}{$code}{$branchcode}{$message_transport_type} = $line;
return { %$line };
}
my $module = $params{module} or croak "No module";
my $letter_code = $params{letter_code} or croak "No letter_code";
my $branchcode = $params{branchcode} || '';
+ my $mtt = $params{message_transport_type} || 'email';
- my $letter = getletter( $module, $letter_code, $branchcode )
- or warn( "No $module $letter_code letter"),
+ my $letter = getletter( $module, $letter_code, $branchcode, $mtt )
+ or warn( "No $module $letter_code letter transported by " . $mtt ),
return;
my $tables = $params{tables};
#Therefore adding the test on biblio. This includes biblioitems,
#but excludes items. Removed unneeded global and lookahead.
+ $val = GetAuthorisedValueByCode ('ROADTYPE', $val, 0) if $table=~/^borrowers$/ && $field=~/^streettype$/;
my $replacedby = defined ($val) ? $val : '';
($letter->{title} ) and do {
$letter->{title} =~ s/$replacetablefield/$replacedby/g;
return $sth->fetchall_arrayref({});
}
+=head2 GetMessageTransportTypes
+
+ my @mtt = GetMessageTransportTypes();
+
+ returns an arrayref of transport types
+
+=cut
+
+sub GetMessageTransportTypes {
+ my $dbh = C4::Context->dbh();
+ my $mtts = $dbh->selectcol_arrayref("
+ SELECT message_transport_type
+ FROM message_transport_types
+ ORDER BY message_transport_type
+ ");
+ return $mtts;
+}
+
=head2 _add_attachements
named parameters: