- return $record;
-}
-
-
-sub generate_subfield_form {
- my ($tag, $subfieldtag, $value, $tagslib,$subfieldlib, $branches, $biblionumber, $temp, $loop_data, $i, $restrictededition) = @_;
-
- my $frameworkcode = &GetFrameworkCode($biblionumber);
-
- my %subfield_data;
- my $dbh = C4::Context->dbh;
-
- my $index_subfield = int(rand(1000000));
- if ($subfieldtag eq '@'){
- $subfield_data{id} = "tag_".$tag."_subfield_00_".$index_subfield;
- } else {
- $subfield_data{id} = "tag_".$tag."_subfield_".$subfieldtag."_".$index_subfield;
- }
-
- $subfield_data{tag} = $tag;
- $subfield_data{subfield} = $subfieldtag;
- $subfield_data{marc_lib} ="<span id=\"error$i\" title=\"".$subfieldlib->{lib}."\">".$subfieldlib->{lib}."</span>";
- $subfield_data{mandatory} = $subfieldlib->{mandatory};
- $subfield_data{repeatable} = $subfieldlib->{repeatable};
- $subfield_data{maxlength} = $subfieldlib->{maxlength};
-
- if ( ! defined( $value ) || $value eq '') {
- $value = $subfieldlib->{defaultvalue};
- if ( $value ) {
- # get today date & replace <<YYYY>>, <<MM>>, <<DD>> if provided in the default value
- my $today_dt = dt_from_string;
- my $year = $today_dt->strftime('%Y');
- my $month = $today_dt->strftime('%m');
- my $day = $today_dt->strftime('%d');
- $value =~ s/<<YYYY>>/$year/g;
- $value =~ s/<<MM>>/$month/g;
- $value =~ s/<<DD>>/$day/g;
- # And <<USER>> with surname (?)
- my $username=(C4::Context->userenv?C4::Context->userenv->{'surname'}:"superlibrarian");
- $value=~s/<<USER>>/$username/g;
- }
- } else {
- $value =~ s/"/"/g;
- }
-
- $subfield_data{visibility} = "display:none;" if (($subfieldlib->{hidden} > 4) || ($subfieldlib->{hidden} <= -4));
-
- my $pref_itemcallnumber = C4::Context->preference('itemcallnumber');
- if (!$value && $subfieldlib->{kohafield} eq 'items.itemcallnumber' && $pref_itemcallnumber) {
- my $CNtag = substr($pref_itemcallnumber, 0, 3);
- my $CNsubfield = substr($pref_itemcallnumber, 3, 1);
- my $CNsubfield2 = substr($pref_itemcallnumber, 4, 1);
- my $temp2 = $temp->field($CNtag);
- if ($temp2) {
- $value = join ' ', $temp2->subfield($CNsubfield) || q{}, $temp2->subfield($CNsubfield2) || q{};
- #remove any trailing space incase one subfield is used
- $value =~ s/^\s+|\s+$//g;
- }
- }
-
- if ($frameworkcode eq 'FA' && $subfieldlib->{kohafield} eq 'items.barcode' && !$value){
- my $input = new CGI;
- $value = $input->param('barcode');
- }
-
- if ( $subfieldlib->{authorised_value} ) {
- my @authorised_values;
- my %authorised_lib;
- # builds list, depending on authorised value...
- if ( $subfieldlib->{authorised_value} eq "branches" ) {
- foreach my $thisbranch (@$branches) {
- push @authorised_values, $thisbranch->{branchcode};
- $authorised_lib{$thisbranch->{branchcode}} = $thisbranch->{branchname};
- $value = $thisbranch->{branchcode} if $thisbranch->{selected} && !$value;
- }
- }
- elsif ( $subfieldlib->{authorised_value} eq "itemtypes" ) {
- push @authorised_values, "" unless ( $subfieldlib->{mandatory} );
- my $itemtypes = Koha::ItemTypes->search_with_localization;
- while ( my $itemtype = $itemtypes->next ) {
- push @authorised_values, $itemtype->itemtype;
- $authorised_lib{$itemtype->itemtype} = $itemtype->translated_description;
- }
-
- unless ( $value ) {
- my $itype_sth = $dbh->prepare("SELECT itemtype FROM biblioitems WHERE biblionumber = ?");
- $itype_sth->execute( $biblionumber );
- ( $value ) = $itype_sth->fetchrow_array;
- }
-
- #---- class_sources
- }
- elsif ( $subfieldlib->{authorised_value} eq "cn_source" ) {
- push @authorised_values, "" unless ( $subfieldlib->{mandatory} );
-
- my $class_sources = GetClassSources();
- my $default_source = C4::Context->preference("DefaultClassificationSource");
-
- foreach my $class_source (sort keys %$class_sources) {
- next unless $class_sources->{$class_source}->{'used'} or
- ($value and $class_source eq $value) or
- ($class_source eq $default_source);
- push @authorised_values, $class_source;
- $authorised_lib{$class_source} = $class_sources->{$class_source}->{'description'};
- }
- $value = $default_source unless ($value);
-
- #---- "true" authorised value
- }
- else {
- push @authorised_values, qq{} unless ( $subfieldlib->{mandatory} );
- my $av = GetAuthorisedValues( $subfieldlib->{authorised_value} );
- for my $r ( @$av ) {
- push @authorised_values, $r->{authorised_value};
- $authorised_lib{$r->{authorised_value}} = $r->{lib};
- }
- }