(bug #3950) only show on shelf items
[koha.git] / C4 / Record.pm
index ee04d3d..25df9ad 100644 (file)
@@ -487,7 +487,7 @@ sub marcrecord2csv {
        my $marcfield = $_->{field};
 
        # Remove any blank char that might have unintentionally insered into the tag name
-       $marcfield =~ s/\s+// 
+       $marcfield =~ s/\s+//g; 
 
        # If it is a subfield
        if (index($marcfield, '$') > 0) {
@@ -517,8 +517,19 @@ sub marcrecord2csv {
            foreach (@fields) {
                my $value;
 
-               # Getting authorised value
-               $value = defined $authvalues->{$_->as_string} ? $authvalues->{$_->as_string} : $_->as_string;
+               # If it is a control field
+               if ($_->is_control_field) {
+                   $value = defined $authvalues->{$_->as_string} ? $authvalues->{$_->as_string} : $_->as_string;
+               } else {
+
+                   # If it is a field, we gather all subfields, joined by the subfield separator
+                   my @subvaluesarray;
+                   my @subfields = $_->subfields;
+                   foreach my $subfield (@subfields) {
+                       push (@subvaluesarray, defined $authvalues->{$subfield->[1]} ? $authvalues->{$subfield->[1]} : $subfield->[1]);
+                   }
+                   $value = join ($subfieldseparator, @subvaluesarray);
+               }
 
                # Field processing
                eval $fieldprocessing if ($fieldprocessing);