Followup Adding system preference XSLT*FileName
[koha.git] / opac / opac-userupdate.pl
index eeef129..cd126dd 100755 (executable)
@@ -18,7 +18,7 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
-require Exporter;
+
 use CGI;
 use Mail::Sendmail;
 
@@ -29,6 +29,8 @@ use C4::Circulation;
 use C4::Output;
 use C4::Dates qw/format_date/;
 use C4::Members;
+use C4::Members::Attributes;
+use C4::Branch;
 
 my $query = new CGI;
 
@@ -44,16 +46,18 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
 );
 
 # get borrower information ....
-my ( $borr, $flags ) = GetMemberDetails( $borrowernumber );
+my ( $borr ) = GetMemberDetails( $borrowernumber );
+my $lib = GetBranchDetail($borr->{'branchcode'});
 
 # handle the new information....
 # collect the form values and send an email.
 my @fields = (
-    'title',     'surname',       'firstname',    'phone',
-    'fax', 'streetaddress', 'emailaddress', 'city','phonepro',
+    'surname',       'firstname',    'phone',
+    'fax', 'address','address2','city','zipcode','phone','mobile','fax','phonepro', 'emailaddress','B_streetaddress','B_city','B_zipcode','dateofbirth','sex'
 );
 my $update;
-my $updateemailaddress = C4::Context->preference('KohaAdminEmailAddress');
+my $updateemailaddress = $lib->{'branchemail'};
+$updateemailaddress = C4::Context->preference('KohaAdminEmailAddress') unless( $updateemailaddress =~ /\w+@\w+/);
 if ( $updateemailaddress eq '' ) {
     warn
 "KohaAdminEmailAddress system preference not set.  Couldn't send patron update information for $borr->{'firstname'} $borr->{'surname'} (#$borrowernumber)\n";
@@ -69,15 +73,14 @@ if ( $updateemailaddress eq '' ) {
     );
 
     $template->param(
-        errormessage => 'KohaAdminEmailAddress system preference
-    is not set.  Please visit the library to update your user record'
+        noadminemail => 1,
     );
 
     output_html_with_http_headers $query, $cookie, $template->output;
     exit;
 }
 
-if ( $query->{'modify'} ) {
+if ( $query->param('modify') ) {
 
     # get all the fields:
     my $message = <<"EOF";
@@ -95,14 +98,15 @@ EOF
         To      => $updateemailaddress,
         From    => $updateemailaddress,
         Subject => "User Request for update of Record.",
-        Message => $message
+        Message => $message,
+        'Content-Type' => 'text/plain; charset="utf8"',
     );
 
     if ( sendmail %mail ) {
 
         # do something if it works....
         warn "Mail sent ok\n";
-        print $query->redirect('/cgi-bin/koha/opac-user.pl');
+        print $query->redirect('/cgi-bin/koha/opac-user.pl?patronupdate=sent');
         exit;
     }
     else {
@@ -113,15 +117,24 @@ EOF
 }
 
 $borr->{'dateenrolled'} = format_date( $borr->{'dateenrolled'} );
-$borr->{'expiry'}       = format_date( $borr->{'expiry'} );
+$borr->{'dateexpiry'}       = format_date( $borr->{'dateexpiry'} );
 $borr->{'dateofbirth'}  = format_date( $borr->{'dateofbirth'} );
 $borr->{'ethnicity'}    = fixEthnicity( $borr->{'ethnicity'} );
 
+if (C4::Context->preference('ExtendedPatronAttributes')) {
+    my $attributes = C4::Members::Attributes::GetBorrowerAttributes($borrowernumber, 'opac');
+    if (scalar(@$attributes) > 0) {
+        $borr->{ExtendedPatronAttributes} = 1;
+        $borr->{patron_attributes} = $attributes;
+    }
+}
+
 my @bordat;
 $bordat[0] = $borr;
 
 $template->param( 
-    BORROWER_INFO => \@bordat
+    BORROWER_INFO => \@bordat,
+    userupdateview => 1,
 );
 
 output_html_with_http_headers $query, $cookie, $template->output;