X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-suggestions.pl;h=32b5c3d221c01de0187bf2c313bae2b826936651;hb=c4978ef178746df06333c6704ea9e6f888b4b9ff;hp=ba533ed6d53f6cd40473a5e52e24d6a6431507a8;hpb=e651ebf89f76430fde0f6d6abf6d0dc32632f0c6;p=koha.git diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl index ba533ed6d5..32b5c3d221 100755 --- a/opac/opac-suggestions.pl +++ b/opac/opac-suggestions.pl @@ -1,55 +1,153 @@ #!/usr/bin/perl + +# 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 CGI; -use HTML::Template; +use warnings; -use C4::Auth; # get_template_and_user -use C4::Interface::CGI::Output; +use CGI; +use C4::Auth; # get_template_and_user +use C4::Members; +use C4::Branch; +use C4::Koha; +use C4::Output; use C4::Suggestions; +use C4::Koha; +use C4::Dates; -my $input = new CGI; -my $title = $input->param('title'); -my $author = $input->param('author'); -my $publishercode = $input->param('publishercode'); -my $status = $input->param('status'); -my $suggestedbyme = $input->param('suggestedbyme'); -my $note = $input->param('note'); -my $op = $input->param('op'); +my $input = new CGI; +my $allsuggestions = $input->param('showall'); +my $op = $input->param('op'); +my $suggestion = $input->Vars; +delete $$suggestion{$_} foreach qw; $op = 'else' unless $op; -my $dbh = C4::Context->dbh; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "opac-suggestions.tmpl", - type => "opac", - query => $input, - authnotrequired => 1, - flagsrequired => {borrow => 1}, - }); -if ($op eq "add_confirm") { - &newsuggestion($borrowernumber,$title,$author,$publishercode,$note); - # empty fields, to avoid filter in "searchsuggestion" - $title=''; - $author=''; - $publishercode=''; - $op='else'; -} - -if ($op eq "delete_confirm") { - my @delete_field = $input->param("delete_field"); - foreach my $delete_field (@delete_field) { - &delsuggestion($borrowernumber,$delete_field); +my ( $template, $borrowernumber, $cookie ); +my $deleted = $input->param('deleted'); +my $submitted = $input->param('submitted'); + +if ( C4::Context->preference("AnonSuggestions") ) { + ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-suggestions.tmpl", + query => $input, + type => "opac", + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), + } + ); + if ( !$$suggestion{suggestedby} ) { + $$suggestion{suggestedby} = C4::Context->preference("AnonymousPatron"); + } +} +else { + ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-suggestions.tmpl", + query => $input, + type => "opac", + authnotrequired => 0, + } + ); +} +if ($allsuggestions){ + delete $$suggestion{suggestedby}; +} +else { + $$suggestion{suggestedby} ||= $borrowernumber unless ($allsuggestions); +} +# warn "bornum:",$borrowernumber; + +my $suggestions_loop = + &SearchSuggestion( $suggestion); +if ( $op eq "add_confirm" ) { + if (@$suggestions_loop>=1){ + #some suggestion are answering the request Donot Add } - $op='else'; + else { + $$suggestion{'suggesteddate'}=C4::Dates->today; + $$suggestion{'branchcode'}= $input->param('branch') || C4::Context->userenv->{"branch"}; + &NewSuggestion($suggestion); + # empty fields, to avoid filter in "SearchSuggestion" + $$suggestion{$_}='' foreach qw; + $suggestions_loop = + &SearchSuggestion( $suggestion ); + } + $op = 'else'; + print $input->redirect("/cgi-bin/koha/opac-suggestions.pl?op=else&submitted=1"); + exit; } -my $suggestions_loop= &searchsuggestion($borrowernumber,$author,$title,$publishercode,$status,$suggestedbyme); -$template->param(suggestions_loop => $suggestions_loop, - title => $title, - author => $author, - publishercode => $publishercode, - status => $status, - suggestedbyme => $suggestedbyme, - "op_$op" => 1, +if ( $op eq "delete_confirm" ) { + my @delete_field = $input->param("delete_field"); + foreach my $delete_field (@delete_field) { + &DelSuggestion( $borrowernumber, $delete_field ); + } + $op = 'else'; + print $input->redirect("/cgi-bin/koha/opac-suggestions.pl?op=else&deleted=1"); + exit; +} +map{ $_->{'branchcodesuggestedby'}=GetBranchInfo($_->{'branchcodesuggestedby'})->[0]->{'branchname'}} @$suggestions_loop; +my $supportlist=GetSupportList(); +foreach my $support(@$supportlist){ + if ($$support{'imageurl'}){ + $$support{'imageurl'}= getitemtypeimagelocation( 'opac', $$support{'imageurl'} ); + } + else { + delete $$support{'imageurl'} + } +} + +foreach my $suggestion(@$suggestions_loop) { + if($suggestion->{'suggestedby'} == $borrowernumber) { + $suggestion->{'showcheckbox'} = $borrowernumber; + } else { + $suggestion->{'showcheckbox'} = 0; + } + if($suggestion->{'patronreason'}){ + $suggestion->{'patronreason'} = GetKohaAuthorisedValueLib("OPAC_SUG",$suggestion->{'patronreason'},1); + } +} + +my $patron_reason_loop = GetAuthorisedValues("OPAC_SUG"); + +# Is the person allowed to choose their branch +if ( C4::Context->preference("AllowPurchaseSuggestionBranchChoice") ) { + my ( $borr ) = GetMemberDetails( $borrowernumber ); + +# pass the pickup branch along.... + my $userbranch = ''; + if (C4::Context->userenv && C4::Context->userenv->{'branch'}) { + $userbranch = C4::Context->userenv->{'branch'}; + } + my $branch = $input->param('branch') || $borr->{'branchcode'} || $userbranch || '' ; + +# make branch selection options... + my $branchloop = GetBranchesLoop($branch); + $template->param( branchloop => $branchloop ); +} + +$template->param( + %$suggestion, + itemtypeloop=> $supportlist, + suggestions_loop => $suggestions_loop, + patron_reason_loop => $patron_reason_loop, + showall => $allsuggestions, + "op_$op" => 1, + suggestionsview => 1, ); + output_html_with_http_headers $input, $cookie, $template->output; +