use C4::Dates;
use C4::Debug;
use MARC::File::XML;
+use List::MoreUtils qw/uniq/;
my $input = new CGI;
my $dbh = C4::Context->dbh;
}
}
if ( my $list=$input->param('barcodelist')){
- push my @barcodelist, split(/\s\n/, $list);
+ push my @barcodelist, uniq( split(/\s\n/, $list) );
foreach my $barcode (@barcodelist) {
# now, build the item form for entering a new item
my @loop_data =();
my $i=0;
-my $authorised_values_sth = $dbh->prepare("SELECT authorised_value,lib FROM authorised_values WHERE category=? ORDER BY lib");
+my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
+my $query = qq{SELECT authorised_value, lib 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, lib_opac};
+my $authorised_values_sth = $dbh->prepare( $query );
my $branches = GetBranchesLoop(); # build once ahead of time, instead of multiple times later.
}
else {
push @authorised_values, ""; # unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
- $authorised_values_sth->execute( $tagslib->{$tag}->{$subfield}->{authorised_value} );
+ $authorised_values_sth->execute( $tagslib->{$tag}->{$subfield}->{authorised_value}, $branch_limit ? $branch_limit : () );
while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) {
push @authorised_values, $value;
$authorised_lib{$value} = $lib;
$i++
}
} # -- End foreach tag
+$authorised_values_sth->finish;
+
# what's the next op ? it's what we are not in : an add if we're editing, otherwise, and edit.