X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FInput.pm;h=ba304607a716cefcd1eecb9ebdfd645394880029;hb=7668e19c9593da570cffb5cd4640fe175d739328;hp=41be2fb5957db43f874e774b83e341fc8d2f99c5;hpb=64daee549541d8dc7c763426f417bdfe97f085bc;p=koha.git diff --git a/C4/Input.pm b/C4/Input.pm index 41be2fb595..ba304607a7 100644 --- a/C4/Input.pm +++ b/C4/Input.pm @@ -28,7 +28,7 @@ use CGI; use vars qw($VERSION @ISA @EXPORT); # set the version for version checking -$VERSION = 0.01; +$VERSION = 3.07.00.049; =head1 NAME @@ -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; @@ -155,6 +170,6 @@ __END__ =head1 AUTHOR -Koha Development Team +Koha Development Team =cut