X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=serials%2Fclaims.pl;h=6a71cc8ac3110b2eba0bd6a0edfdc5cba37905b4;hb=e8b2f04638ca4bcccf85d53f8c540c43b7615716;hp=e51148c7440a5cc8b914259e10e02550e2d1dfd5;hpb=fc2fe083fcc34742a1f80e3fb3df1ab4bd072ca1;p=koha.git diff --git a/serials/claims.pl b/serials/claims.pl index e51148c744..6a71cc8ac3 100755 --- a/serials/claims.pl +++ b/serials/claims.pl @@ -4,30 +4,32 @@ # 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. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; use warnings; -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; use C4::Serials; use C4::Acquisition; use C4::Output; -use C4::Bookseller qw( GetBookSeller ); use C4::Context; use C4::Letters; use C4::Branch; # GetBranches GetBranchesLoop +use C4::Koha qw( GetAuthorisedValues ); +use Koha::AdditionalField; +use C4::Csv qw( GetCsvProfiles ); my $input = CGI->new; @@ -36,11 +38,10 @@ my $op = $input->param('op'); my $claimletter = $input->param('claimletter'); my $supplierid = $input->param('supplierid'); my $suppliername = $input->param('suppliername'); -my $order = $input->param('order'); # open template first (security & userenv set here) my ($template, $loggedinuser, $cookie) -= get_template_and_user({template_name => 'serials/claims.tmpl', += get_template_and_user({template_name => 'serials/claims.tt', query => $input, type => 'intranet', authnotrequired => 0, @@ -51,54 +52,63 @@ my ($template, $loggedinuser, $cookie) # supplierlist is returned in name order my $supplierlist = GetSuppliersWithLateIssues(); for my $s (@{$supplierlist} ) { - $s->{count} = scalar GetLateOrMissingIssues($s->{id}, q{}, $order); + $s->{count} = scalar GetLateOrMissingIssues($s->{id}); if ($supplierid && $s->{id} == $supplierid) { $s->{selected} = 1; } } -my $letters = GetLetters('claimissues'); -my @letters; -foreach (keys %{$letters}){ - push @letters ,{code=>$_,name=> $letters->{$_}}; +my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription', searchable => 1 } ); +for my $field ( @$additional_fields ) { + if ( $field->{authorised_value_category} ) { + $field->{authorised_value_choices} = GetAuthorisedValues( $field->{authorised_value_category} ); + } } -my $letter=((scalar(@letters)>1) || ($letters[0]->{name}||$letters[0]->{code})); -my @missingissues; -my @supplierinfo; -if ($supplierid) { - @missingissues = GetLateOrMissingIssues($supplierid,$serialid,$order); - @supplierinfo=GetBookSeller($supplierid); +my $branchloop = GetBranchesLoop(); + +my @serialnums=$input->param('serialid'); +if (@serialnums) { # i.e. they have been flagged to generate claims + my $err; + eval { + $err = SendAlerts('claimissues',\@serialnums,$input->param("letter_code")); + if ( not ref $err or not exists $err->{error} ) { + UpdateClaimdateIssues(\@serialnums); + } + }; + if ( $@ ) { + $template->param(error_claim => $@); + } elsif ( ref $err and exists $err->{error} ) { + if ( $err->{error} eq "no_email" ) { + $template->param( error_claim => 'no_vendor_email' ); + } elsif ( $err->{error} =~ m|Bad or missing From address| ) { + $template->param( error_claim => 'no_loggedin_user_email' ); + } + } else { + $template->param( info_claim => 1 ); + } } -my $branchloop = GetBranchesLoop(); -unshift @$branchloop, {value=> 'all',name=>''}; +my $letters = GetLetters({ module => 'claimissues' }); -my $preview=0; -if($op && $op eq 'preview'){ - $preview = 1; -} else { - my @serialnums=$input->param('serialid'); - if (@serialnums) { # i.e. they have been flagged to generate claims - SendAlerts('claimissues',\@serialnums,$input->param("letter_code")); - my $cntupdate=UpdateClaimdateIssues(\@serialnums); - ### $cntupdate SHOULD be equal to scalar(@$serialnums) +my @missingissues; +if ($supplierid) { + @missingissues = GetLateOrMissingIssues($supplierid); + foreach my $issue (@missingissues) { + $issue->{cannot_claim} = 1 + unless C4::Serials::can_claim_subscription($issue); } } -$template->param('letters'=>\@letters,'letter'=>$letter); + $template->param( - order =>$order, suploop => $supplierlist, - phone => $supplierinfo[0]->{phone}, - booksellerfax => $supplierinfo[0]->{booksellerfax}, - bookselleremail => $supplierinfo[0]->{bookselleremail}, - preview => $preview, missingissues => \@missingissues, supplierid => $supplierid, claimletter => $claimletter, - supplierloop => \@supplierinfo, branchloop => $branchloop, - dateformat => C4::Context->preference("dateformat"), - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), + additional_fields_for_subscription => $additional_fields, + csv_profiles => C4::Csv::GetCsvProfiles( "sql" ), + letters => $letters, + (uc(C4::Context->preference("marcflavour"))) => 1 ); output_html_with_http_headers $input, $cookie, $template->output;