X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-userupdate.pl;h=f8273ce9c88c84dcd76cb6bf35b6bafd96b51485;hb=8b65b94636398729e5d919ca2eb6334e8013bdae;hp=d9ebf7f9df1d327a1f52a648014a6f0e747e5c1a;hpb=7ed4e5043094d3932258d982149e500d962e7f52;p=koha_fer diff --git a/opac/opac-userupdate.pl b/opac/opac-userupdate.pl index d9ebf7f9df..f8273ce9c8 100755 --- a/opac/opac-userupdate.pl +++ b/opac/opac-userupdate.pl @@ -1,94 +1,181 @@ #!/usr/bin/perl + +# Copyright 2000-2002 Katipo Communications +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + use strict; -require Exporter; +use warnings; + use CGI; use Mail::Sendmail; -use C4::Auth; # checkauth, getborrowernumber. +use C4::Auth; # checkauth, getborrowernumber. use C4::Context; use C4::Koha; -use C4::Circulation::Circ2; -use C4::Interface::CGI::Output; -use HTML::Template; -use C4::Date; +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; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "opac-userupdate.tmpl", - query => $query, - type => "opac", - authnotrequired => 0, - flagsrequired => {borrow => 1}, - debug => 1, - }); +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-userupdate.tmpl", + query => $query, + type => "opac", + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), + flagsrequired => { borrow => 1 }, + debug => 1, + } +); # get borrower information .... -my ($borr, $flags) = getpatroninformation(undef, $borrowernumber); - +my ( $borr ) = GetMemberDetails( $borrowernumber ); +my ( $patronemail ) = GetFirstValidEmailAddress($borrowernumber); +my $lib = GetBranchDetail($borr->{'branchcode'}); # handle the new information.... # collect the form values and send an email. -my @fields = ('title', 'surname', 'firstname', 'phone', 'faxnumber', 'streetaddress', 'emailaddress', 'city'); +my @fields = ( + 'surname','firstname','othernames','streetnumber','address','address2','city','state','zipcode','country','phone','mobile','fax','phonepro', 'emailaddress','emailpro','B_streetnumber','B_address','B_address2','B_city','B_state','B_zipcode','B_country','B_phone','B_email','dateofbirth','sex' +); my $update; -my $updateemailaddress= C4::Context->preference('KohaAdminEmailAddress'); -if ($updateemailaddress eq '') { - warn "KohaAdminEmailAddress system preference not set. Couldn't send patron update information for $borr->{'firstname'} $borr->{'surname'} (#$borrowernumber)\n"; - my($template) = get_template_and_user({template_name => "kohaerror.tmpl", - query => $query, - type => "opac", - authnotrequired => 1, - flagsrequired => {borrow => 1}, - debug => 1, - }); - - $template->param(errormessage => 'KohaAdminEmailAddress system preference - is not set. Please visit the library to update your user record'); +my $updateemailaddress = $lib->{'branchemail'}; +$updateemailaddress = C4::Context->preference('KohaAdminEmailAddress') unless( $updateemailaddress =~ /\w+@\w+/); +if ( !$updateemailaddress || $updateemailaddress eq '' ) { + warn +"KohaAdminEmailAddress system preference not set. Couldn't send patron update information for $borr->{'firstname'} $borr->{'surname'} (#$borrowernumber)\n"; + my ($template) = get_template_and_user( + { + template_name => "kohaerror.tmpl", + query => $query, + type => "opac", + authnotrequired => 1, + flagsrequired => { borrow => 1 }, + debug => 1, + } + ); + + $template->param( + noadminemail => 1, + ); output_html_with_http_headers $query, $cookie, $template->output; exit; } -if ($query->{'title'}) { +if ( !$patronemail || $patronemail eq '' ) { + $patronemail = $updateemailaddress; +}; + +if ( $query->param('modify') ) { + # get all the fields: my $message = <<"EOF"; -Borrower $borr->{'cardnumber'} +Patron $borr->{'cardnumber'} has requested to change her/his personal details. Please check these new details and make the changes: EOF - foreach my $field (@fields){ - my $newfield = $query->param($field); - $message .= "$field : $borr->{$field} --> $newfield\n"; + + my $streetnumber = $borr->{'streetnumber'} || ''; + my $address = $borr->{'address'} || ''; + my $address2 = $borr->{'address2'} || ''; + my $B_streetnumber = $borr->{'B_streetnumber'} || ''; + my $B_address = $borr->{'B_address'} || ''; + my $B_address2 = $borr->{'B_address2'} || ''; + + foreach my $field (@fields) { + my $newfield = $query->param($field) || ''; + my $borrowerfield = ''; + if($borr->{$field}) { + $borrowerfield = $borr->{$field}; + } + + if($field eq "dateofbirth") { + $borrowerfield = format_date( $borr->{'dateofbirth'} ) || ''; + } + + if($borrowerfield eq $newfield) { + $message .= "$field : $borrowerfield --> $newfield\n"; + } else { + $message .= uc($field) . " : $borrowerfield --> $newfield\n"; + } } $message .= "\n\nThanks,\nKoha\n\n"; - my %mail = ( To => $updateemailaddress , - From => $updateemailaddress , - Subject => "User Request for update of Record.", - Message => $message ); - if (sendmail %mail) { -# do something if it works.... - warn "Mail sent ok\n"; - print $query->redirect('/cgi-bin/koha/opac-user.pl'); - exit; - } else { -# do something if it doesnt work.... + my %mail = ( + To => $updateemailaddress, + From => $patronemail, + Subject => "User Request for update of Record.", + Message => $message, + 'Content-Type' => 'text/plain; charset="utf8"', + ); + + if ( sendmail %mail ) { + + # do something if it works.... + print $query->redirect('/cgi-bin/koha/opac-user.pl?patronupdate=sent'); + exit; + } + else { + + # do something if it doesnt work.... warn "Error sending mail: $Mail::Sendmail::error \n"; } } +$borr->{'dateenrolled'} = format_date( $borr->{'dateenrolled'} ); +$borr->{'dateexpiry'} = format_date( $borr->{'dateexpiry'} ); +$borr->{'dateofbirth'} = format_date( $borr->{'dateofbirth'} ); +$borr->{'ethnicity'} = fixEthnicity( $borr->{'ethnicity'} ); +$borr->{'branchname'} = GetBranchName($borr->{'branchcode'}); + +if (C4::Context->preference('ExtendedPatronAttributes')) { + my $attributes = C4::Members::Attributes::GetBorrowerAttributes($borrowernumber, 'opac'); + if (scalar(@$attributes) > 0) { + $borr->{ExtendedPatronAttributes} = 1; + $borr->{patron_attributes} = $attributes; + } +} -$borr->{'dateenrolled'} = format_date($borr->{'dateenrolled'}); -$borr->{'expiry'} = format_date($borr->{'expiry'}); -$borr->{'dateofbirth'} = format_date($borr->{'dateofbirth'}); -$borr->{'ethnicity'} = fixEthnicity($borr->{'ethnicity'}); - +my $checkin_prefs = C4::Members::Messaging::GetMessagingPreferences({ + borrowernumber => $borrowernumber, + message_name => 'Item Checkout' +}); +for (@{ $checkin_prefs->{transports} }) { + $borr->{"items_returned_$_"} = 1; +} +my $checkout_prefs = C4::Members::Messaging::GetMessagingPreferences({ + borrowernumber => $borrowernumber, + message_name => 'Item Check-in' +}); +for (@{ $checkout_prefs->{transports} }) { + $borr->{"items_borrowed_$_"} = 1; +} my @bordat; $bordat[0] = $borr; -$template->param(BORROWER_INFO => \@bordat, - LibraryName => C4::Context->preference("LibraryName"), +$template->param( + BORROWER_INFO => \@bordat, + userupdateview => 1, ); output_html_with_http_headers $query, $cookie, $template->output;