X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;ds=sidebyside;f=members%2Fnotices.pl;h=11f3faa917ae2476c3c711807b548e6a1608df38;hb=2896077b193de63c5ddb0e2a9334939677b3fe34;hp=16935d96fda419c9ea509a47a33794487b844650;hpb=a4e804fceb6061d1e3c4f404a1b08649cf71563c;p=koha-ffzg.git diff --git a/members/notices.pl b/members/notices.pl index 16935d96fd..11f3faa917 100755 --- a/members/notices.pl +++ b/members/notices.pl @@ -6,70 +6,117 @@ # # 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 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 3 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. +# 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; -#use warnings; FIXME - Bug 2505 -use C4::Auth; -use C4::Output; -use CGI; +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_and_exit_if_error output_and_exit output_html_with_http_headers ); +use CGI qw ( -utf8 ); use C4::Members; -use C4::Branch; -use C4::Letters; -use C4::Members::Attributes qw(GetBorrowerAttributes); +use C4::Letters qw( GetPreparedLetter EnqueueLetter ); +use Koha::Patrons; +use Koha::Patron::Categories; +use Koha::Patron::Password::Recovery qw( SendPasswordRecoveryEmail ValidateBorrowernumber ); -use C4::Dates qw/format_date/; -my $input=new CGI; +my $input=CGI->new; my $borrowernumber = $input->param('borrowernumber'); -#get borrower details -my $borrower = GetMember(borrowernumber => $borrowernumber); +my $patron = Koha::Patrons->find( $borrowernumber ); +unless ( $patron ) { + print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber"); + exit; +} +my $borrower = $patron->unblessed; -my ($template, $loggedinuser, $cookie) -= get_template_and_user({template_name => "members/notices.tmpl", +my ($template, $loggedinuser, $cookie)= get_template_and_user({template_name => "members/notices.tt", query => $input, type => "intranet", - authnotrequired => 0, - flagsrequired => {borrowers => 1}, - debug => 1, + flagsrequired => {borrowers => 'edit_borrowers'}, }); -$template->param( $borrower ); -my ($picture, $dberror) = GetPatronImage($borrower->{'cardnumber'}); -$template->param( picture => 1 ) if $picture; +my $logged_in_user = Koha::Patrons->find( $loggedinuser ); +output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); + +# Allow resending of messages in Notices tab +my $op = $input->param('op') || q{}; +if ( $op eq 'resend_notice' ) { + my $message_id = $input->param('message_id'); + my $message = C4::Letters::GetMessage( $message_id ); + if ( $message->{borrowernumber} = $borrowernumber ) { + C4::Letters::ResendMessage( $message_id ); + # redirect to self to avoid form submission on refresh + print $input->redirect("/cgi-bin/koha/members/notices.pl?borrowernumber=$borrowernumber"); + } +} + +if ( $op eq 'send_welcome' ) { + my $emailaddr = $patron->notice_email_address; + + # if we manage to find a valid email address, send notice + if ($emailaddr) { + eval { + my $letter = GetPreparedLetter( + module => 'members', + letter_code => 'WELCOME', + branchcode => $patron->branchcode,, + lang => $patron->lang || 'default', + tables => { + 'branches' => $patron->branchcode, + 'borrowers' => $patron->borrowernumber, + }, + want_librarian => 1, + ) or return; + + my $message_id = EnqueueLetter( + { + letter => $letter, + borrowernumber => $patron->id, + to_address => $emailaddr, + message_transport_type => 'email' + } + ); + }; + } + + # redirect to self to avoid form submission on refresh + print $input->redirect("/cgi-bin/koha/members/notices.pl?borrowernumber=$borrowernumber"); +} + +if ( $op eq 'send_password_reset' ) { + + my $emailaddr = $patron->notice_email_address; + + if ($emailaddr) { + + # send staff initiated password recovery + SendPasswordRecoveryEmail( $patron, $emailaddr, 1 ); + } + + # redirect to self to avoid form submission on refresh + print $input->redirect( + "/cgi-bin/koha/members/notices.pl?borrowernumber=$borrowernumber"); +} # Getting the messages my $queued_messages = C4::Letters::GetQueuedMessages({borrowernumber => $borrowernumber}); -$template->param( %{$borrower} ); - -if (C4::Context->preference('ExtendedPatronAttributes')) { - my $attributes = GetBorrowerAttributes($borrowernumber); - $template->param( - ExtendedPatronAttributes => 1, - extendedattributes => $attributes - ); -} $template->param( - QUEUED_MESSAGES => $queued_messages, - borrowernumber => $borrowernumber, - sentnotices => 1, - branchname => GetBranchName($borrower->{'branchcode'}), - categoryname => $borrower->{'description'}, - activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''), - RoutingSerials => C4::Context->preference('RoutingSerials'), + patron => $patron, + QUEUED_MESSAGES => $queued_messages, + borrowernumber => $borrowernumber, + sentnotices => 1, ); output_html_with_http_headers $input, $cookie, $template->output;