elsif ( @$tags[$i] eq "thesaurus" ) {
$attr = " \@attr 1=Subject-heading-thesaurus ";
}
- else { # Assume any if no index was specified
+ elsif ( @$tags[$i] eq "all" ) {
$attr = " \@attr 1=Any ";
}
+ else { # Use the index passed in params
+ $attr = " \@attr 1=" . @$tags[$i] . " ";
+ }
} #if @$tags[$i]
else { # Assume any if no index was specified
$attr = " \@attr 1=Any ";
if ($QParser) {
$op = '&&';
} else {
- $op = 'and';
+ $op = 'AND';
}
my $query='at:'.$authtypecode.' ';
my $filtervalues=qr([\001-\040\Q!'"`#$%&*+,-./:;<=>?@(){[}_|~\E\]]);
my $newtag = $tags_new && @$tags_new
? _merge_newtag( $tag, $tags_new )
: $tag;
+ my $controlled_ind = $authto->controlled_indicators({ record => $MARCto, biblio_tag => $newtag });
my $field_to = MARC::Field->new(
$newtag,
- $field->indicator(1),
- $field->indicator(2),
+ $controlled_ind->{ind1} // $field->indicator(1),
+ $controlled_ind->{ind2} // $field->indicator(2),
9 => $mergeto, # Needed to create field, will be moved
);
my ( @prefix, @postfix );
foreach my $subfield ( @prefix, @record_to, @postfix ) {
$field_to->add_subfields($subfield->[0] => $subfield->[1]);
}
+ if( exists $controlled_ind->{sub2} ) { # thesaurus info
+ if( defined $controlled_ind->{sub2} ) {
+ # Add or replace
+ $field_to->update( 2 => $controlled_ind->{sub2} );
+ } else {
+ # Key alerts us here to remove $2
+ $field_to->delete_subfield( code => '2' );
+ }
+ }
# Move $9 to the end
$field_to->delete_subfield( code => '9' );
$field_to->add_subfields( 9 => $mergeto );