From c8468a92029af19ced6d1454ed4c5c3ae30aca34 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 12 Mar 2020 15:09:02 +0100 Subject: [PATCH] Bug 5103: Refactor the code to avoid repetition Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize --- catalogue/MARCdetail.pl | 12 ++++-------- cataloguing/additem.pl | 15 +++++++-------- opac/opac-MARCdetail.pl | 13 +++++-------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/catalogue/MARCdetail.pl b/catalogue/MARCdetail.pl index 32b51e81f2..44bc8d0801 100755 --- a/catalogue/MARCdetail.pl +++ b/catalogue/MARCdetail.pl @@ -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; } diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index 0a7fb2505d..0bfeae72f5 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -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; diff --git a/opac/opac-MARCdetail.pl b/opac/opac-MARCdetail.pl index 0c4b2c7771..b835f1bdea 100755 --- a/opac/opac-MARCdetail.pl +++ b/opac/opac-MARCdetail.pl @@ -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; } -- 2.39.5