From 9a4873bc4ceba454b99cb440ea1f0b7e09f48e90 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 13 Mar 2012 09:55:00 +0100 Subject: [PATCH] Bug 7167: Followup: FIX conflicts with Bug 5347 - Fix sql syntax error - Fix Encoding - SendAlerts must return an error if no email is defined - Get error if no email in memberentry http://bugs.koha-community.org/show_bug.cgi?id=7001 Signed-off-by: Paul Poulain --- C4/Letters.pm | 19 ++++++++++--------- .../prog/en/modules/members/memberentrygen.tt | 11 +++++++++++ members/memberentry.pl | 14 ++++++++++++-- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index af1ce82560..5a929d01ae 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -294,8 +294,8 @@ sub SendAlerts { my %mail = ( To => $email, From => $email, - Subject => "" . $letter->{title}, - Message => "" . $letter->{content}, + Subject => Encode::encode( "utf8", "" . $letter->{title} ), + Message => Encode::encode( "utf8", "" . $letter->{content} ), 'Content-Type' => 'text/plain; charset="utf8"', ); sendmail(%mail) or carp $Mail::Sendmail::error; @@ -322,8 +322,8 @@ sub SendAlerts { LEFT JOIN biblio ON serial.biblionumber=biblio.biblionumber LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id WHERE serial.serialid IN ( - } - . join( ",", @$externalid ) . ")"; + }; + $strsth .= join( ",", @$externalid ) . ")"; my $sthorders = $dbh->prepare($strsth); $sthorders->execute; my $dataorders = $sthorders->fetchall_arrayref( {} ); @@ -338,7 +338,7 @@ sub SendAlerts { push @email, $databookseller->{contemail} if $databookseller->{contemail}; unless (@email) { warn "Bookseller $dataorders->[0]->{booksellerid} without emails"; - return; + return { error => "no_email" }; } my $userenv = C4::Context->userenv; @@ -358,8 +358,8 @@ sub SendAlerts { my %mail = ( To => join( ','. @email), From => $userenv->{emailaddress}, - Subject => "" . $letter->{title}, - Message => "" . $letter->{content}, + Subject => Encode::encode( "utf8", "" . $letter->{title} ), + Message => Encode::encode( "utf8", "" . $letter->{content} ), 'Content-Type' => 'text/plain; charset="utf8"', ); sendmail(%mail) or carp $Mail::Sendmail::error; @@ -391,11 +391,12 @@ sub SendAlerts { want_librarian => 1, ) or return; + return { error => "no_email" } unless $externalid->{'emailaddr'}; my %mail = ( To => $externalid->{'emailaddr'}, From => $branchdetails->{'branchemail'} || C4::Context->preference("KohaAdminEmailAddress"), - Subject => $letter->{'title'}, - Message => $letter->{'content'}, + Subject => Encode::encode( "utf8", $letter->{'title'} ), + Message => Encode::encode( "utf8", $letter->{'content'} ), 'Content-Type' => 'text/plain; charset="utf8"', ); sendmail(%mail) or carp $Mail::Sendmail::error; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt index d2ca4afc0c..c364f85289 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -82,6 +82,17 @@
+ [% IF error_alert %] + [% IF ( error_alert == "no_email" ) %] +
This member has no email
+ [% ELSE %] +
[% error_alert %]
+ [% END %] + [% END %] + [% IF info_alert %] +
Email has been sent.
+ [% END %] + [% IF ( no_add ) %]

Cannot add patron

[% IF ( no_branches ) %]

There are no libraries defined. [% IF ( CAN_user_parameters ) %]Please add a library.[% ELSE %]An administrator must define at least one library.[% END %]

[% END %] [% IF ( no_categories ) %]

There are no patron categories defined. [% IF ( CAN_user_parameters ) %]Please add a patron category.[% ELSE %]An administrator must define at least one patron category.

[% END %][% END %]
[% END %] diff --git a/members/memberentry.pl b/members/memberentry.pl index c474a66023..d53f7f10fb 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -347,9 +347,19 @@ if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ # if we manage to find a valid email address, send notice if ($emailaddr) { $newdata{emailaddr} = $emailaddr; - SendAlerts ( 'members', \%newdata, "ACCTDETAILS" ); + my $err; + eval { + $err = SendAlerts ( 'members', \%newdata, "ACCTDETAILS" ); + }; + if ( $@ ) { + $template->param(error_alert => $@); + } elsif ( defined $err->{error} and $err->{error} eq "no_email" ) { + $template->{VARS}->{'error_alert'} = "no_email"; + } else { + $template->{VARS}->{'info_alert'} = 1; + } } - } + } if ($data{'organisations'}){ # need to add the members organisations -- 2.20.1