From 572c3afef1a3b6dfe3ee4d841737170ee92b7e1f 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 Signed-off-by: Joy Nelson --- 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 af5b0da6ac..ab53d108d5 100755 --- a/catalogue/MARCdetail.pl +++ b/catalogue/MARCdetail.pl @@ -289,14 +289,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 71366c8df4..108010f2e6 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -862,14 +862,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 368093fe43..e2f70869df 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