Bug 5103: Refactor the code to avoid repetition
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 12 Mar 2020 14:09:02 +0000 (15:09 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 16 Mar 2020 10:56:45 +0000 (10:56 +0000)
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

catalogue/MARCdetail.pl
cataloguing/additem.pl
opac/opac-MARCdetail.pl

index 32b51e8..44bc8d0 100755 (executable)
@@ -297,14 +297,10 @@ foreach my $field (@fields) {
 
         $norequests = 0 if  $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.notforloan' and $subf[$i][1] == 0;
 
-        if ( $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.dateaccessioned' ||
-             $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.onloan' ||
-             $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.datelastseen' ||
-             $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.datelastborrowed' ||
-             $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.replacementpricedate'
-        ){
-            $item->{$subf[$i][0]} = output_pref({ dt => dt_from_string( $item->{$subf[$i][0]} ), dateonly => 1 });
-        }
+        my $kohafield = $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield};
+        $item->{ $subf[$i][0] } = output_pref( { str => $item->{ $subf[$i][0] }, dateonly => 1 } )
+          if grep { $kohafield eq $_ }
+              qw( items.dateaccessioned items.onloan items.datelastseen items.datelastborrowed items.replacementpricedate );
     }
     push @item_loop, $item if $item;
 }
index 0a7fb25..0bfeae7 100755 (executable)
@@ -865,14 +865,13 @@ for my $row ( @big_array ) {
             $item_field->{field} = '';
         }
 
-        my ($tmpa, $dateaccessioned) = &GetMarcFromKohaField( "items.dateaccessioned" );
-        my ($tmpb, $onloan) = &GetMarcFromKohaField( "items.onloan" );
-        my ($tmpc, $datelastseen) = &GetMarcFromKohaField( "items.datelastseen" );
-        my ($tmpd, $datelastborrowed) = &GetMarcFromKohaField( "items.datelastborrowed" );
-        my ($tmpe, $replacementpricedate) = &GetMarcFromKohaField( "items.replacementpricedate" );
-        if ( $key eq $dateaccessioned || $key eq $onloan || $key eq $datelastseen || $key eq $datelastborrowed || $key eq $replacementpricedate ){
-            # date accessioned || on loan || date last seen || date last borrowed || replacement price date
-            $item_field->{field} = output_pref({ dt => dt_from_string( $row->{$key} ), dateonly => 1 });
+        for my $kohafield (
+            qw( items.dateaccessioned items.onloan items.datelastseen items.datelastborrowed items.replacementpricedate )
+          )
+        {
+            my ( undef, $subfield ) = GetMarcFromKohaField($kohafield);
+            next unless $key eq $subfield;
+            $item_field->{field} = output_pref( { str => $row->{$key}, dateonly => 1 } );
         }
 
         push @item_fields, $item_field;
index 0c4b2c7..b835f1b 100755 (executable)
@@ -313,14 +313,11 @@ foreach my $field (@fields) {
                 $subf[$i][1], '', $tagslib, '', 'opac' );
         }
 
-        if ( $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.dateaccessioned' ||
-            $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.onloan' ||
-            $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.datelastseen' ||
-            $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.datelastborrowed' ||
-            $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.replacementpricedate'
-        ){
-            $item->{$subf[$i][0]} = output_pref({ dt => dt_from_string( $item->{$subf[$i][0]} ), dateonly => 1 });;
-        }
+        my $kohafield = $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield};
+        $item->{ $subf[$i][0] } = output_pref( { str => $item->{ $subf[$i][0] }, dateonly => 1 } )
+          if grep { $kohafield eq $_ }
+              qw( items.dateaccessioned items.onloan items.datelastseen items.datelastborrowed items.replacementpricedate );
+
     }
     push @item_loop, $item if $item;
 }