X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FInput.pm;h=ba304607a716cefcd1eecb9ebdfd645394880029;hb=87564a834b885188ee0e6fde800775b403d2e1c0;hp=2e84dc2a3e51e2091118eb40d764008a78239e3e;hpb=b93e6df3a1b7051bc92220cf6bd829c2229bfa70;p=koha_fer diff --git a/C4/Input.pm b/C4/Input.pm index 2e84dc2a3e..ba304607a7 100644 --- a/C4/Input.pm +++ b/C4/Input.pm @@ -119,33 +119,48 @@ Returns NULL if no authorised values found =cut sub buildCGIsort { - my ($name,$input_name,$data) = @_; - my $dbh=C4::Context->dbh; - my $query=qq{SELECT * FROM authorised_values WHERE category=? order by lib}; - my $sth=$dbh->prepare($query); - $sth->execute($name); - my $CGISort; - if ($sth->rows>0){ - my @values; - my %labels; - - for (my $i =0;$i<$sth->rows;$i++){ - my $results = $sth->fetchrow_hashref; - push @values, $results->{authorised_value}; - $labels{$results->{authorised_value}}=$results->{lib}; - } - $CGISort= CGI::scrolling_list( - -name => $input_name, - -id => $input_name, - -values => \@values, - -labels => \%labels, - -default=> $data, - -size => 1, - -multiple => 0); - } - $sth->finish; - return $CGISort; + my ( $name, $input_name, $data ) = @_; + my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : ""; + + my $dbh=C4::Context->dbh; + my $query = qq{ + SELECT * + FROM authorised_values + }; + $query .= qq{ + LEFT JOIN authorised_values_branches ON ( id = av_id ) + } if $branch_limit; + $query .= qq{ + WHERE category = ? + }; + $query .= qq{ AND ( branchcode = ? OR branchcode IS NULL )} if $branch_limit; + $query .= qq{ GROUP BY lib ORDER BY lib}; + + my $sth=$dbh->prepare($query); + $sth->execute( $name, $branch_limit ? $branch_limit : () ); + my $CGISort; + if ($sth->rows>0){ + my @values; + my %labels; + + for (my $i =0;$i<$sth->rows;$i++){ + my $results = $sth->fetchrow_hashref; + push @values, $results->{authorised_value}; + $labels{$results->{authorised_value}}=$results->{lib}; + } + $CGISort= CGI::scrolling_list( + -name => $input_name, + -id => $input_name, + -values => \@values, + -labels => \%labels, + -default=> $data, + -size => 1, + -multiple => 0); + } + $sth->finish; + return $CGISort; } + END { } # module clean-up code here (global destructor) 1;