From 1236648c1291c05c48246052bfa986bfee0aad94 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 13 Mar 2012 09:55:00 +0100 Subject: [PATCH 1/1] 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 --- 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 ce21a5d..6bbdb51 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -295,8 +295,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; @@ -323,8 +323,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( {} ); @@ -339,7 +339,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; @@ -359,8 +359,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; @@ -392,11 +392,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 d2ca4af..c364f85 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 c474a66..d53f7f1 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 -- 1.7.7.3