Bugzilla – Attachment 6532 Details for
Bug 7311
Error when records have UNIMARC 461$0 or 773$0 for something other than bibnumber
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7311: Only run analytics code if analytics are enabled
Bug-7311-Only-run-analytics-code-if-analytics-are-.patch (text/plain), 3.87 KB, created by
Jared Camins-Esakov
on 2011-12-02 13:49:48 UTC
(
hide
)
Description:
Bug 7311: Only run analytics code if analytics are enabled
Filename:
MIME Type:
Creator:
Jared Camins-Esakov
Created:
2011-12-02 13:49:48 UTC
Size:
3.87 KB
patch
obsolete
>From 371f70abd94728335e0b09407141466adb430a43 Mon Sep 17 00:00:00 2001 >From: Jared Camins-Esakov <jcamins@cpbibliography.com> >Date: Fri, 2 Dec 2011 08:27:45 -0500 >Subject: [PATCH] Bug 7311: Only run analytics code if analytics are enabled >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit >Content-Type: text/plain; charset="UTF-8" > >With the addition of the code from Bug 5528 (easy analytic record workflows), >UNIMARC 461$0 and MARC21/NORMARC 773$0 have special meanings. When you import >a record that uses those subfields for different data, you will get an error >in /cataloguing/additem.pl. A check should be added to be sure that >EasyAnalyticalRecords is enabled before trying to handle the 461$0/773$0 as >bib numbers for analytics. > >Thanks to Frère Sébastien Marie for spotting this issue. >--- > cataloguing/additem.pl | 48 ++++++++++++++++++++++++++---------------------- > 1 files changed, 26 insertions(+), 22 deletions(-) > >diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl >index 4442ed3..03a50bf 100755 >--- a/cataloguing/additem.pl >+++ b/cataloguing/additem.pl >@@ -544,21 +544,23 @@ C4::Biblio::EmbedItemsInMarcBiblio($temp, $biblionumber); > my @fields = $temp->fields(); > > >-my @hostitemnumbers; >-my $analyticfield = '773'; >-if ($marcflavour eq 'MARC21' || $marcflavour eq 'NORMARC') { >- $analyticfield = '773'; >-} elsif ($marcflavour eq 'UNIMARC') { >- $analyticfield = '461'; >-} >-foreach my $hostfield ($temp->field($analyticfield)){ >- if ($hostfield->subfield('0')){ >- my $hostrecord = GetMarcBiblio($hostfield->subfield('0'), 1); >- my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber', GetFrameworkCode($hostfield->subfield('0')) ); >- foreach my $hostitem ($hostrecord->field($itemfield)){ >- if ($hostitem->subfield('9') eq $hostfield->subfield('9')){ >- push (@fields, $hostitem); >- push (@hostitemnumbers, $hostfield->subfield('9')); >+if (C4::Context->preference('EasyAnalyticalRecords')) { >+ my @hostitemnumbers; >+ my $analyticfield = '773'; >+ if ($marcflavour eq 'MARC21' || $marcflavour eq 'NORMARC') { >+ $analyticfield = '773'; >+ } elsif ($marcflavour eq 'UNIMARC') { >+ $analyticfield = '461'; >+ } >+ foreach my $hostfield ($temp->field($analyticfield)){ >+ if ($hostfield->subfield('0')){ >+ my $hostrecord = GetMarcBiblio($hostfield->subfield('0'), 1); >+ my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber', GetFrameworkCode($hostfield->subfield('0')) ); >+ foreach my $hostitem ($hostrecord->field($itemfield)){ >+ if ($hostitem->subfield('9') eq $hostfield->subfield('9')){ >+ push (@fields, $hostitem); >+ push (@hostitemnumbers, $hostfield->subfield('9')); >+ } > } > } > } >@@ -596,18 +598,20 @@ foreach my $field (@fields) { > } > } > $this_row{itemnumber} = $subfieldvalue if ($field->tag() eq $itemtagfield && $subfieldcode eq $itemtagsubfield); >- foreach my $hostitemnumber (@hostitemnumbers){ >- if ($this_row{itemnumber} eq $hostitemnumber){ >- $this_row{hostitemflag} = 1; >- $this_row{hostbiblionumber}= GetBiblionumberFromItemnumber($hostitemnumber); >- last; >- } >- } >+ if (C4::Context->preference('EasyAnalyticalRecords')) { >+ foreach my $hostitemnumber (@hostitemnumbers){ >+ if ($this_row{itemnumber} eq $hostitemnumber){ >+ $this_row{hostitemflag} = 1; >+ $this_row{hostbiblionumber}= GetBiblionumberFromItemnumber($hostitemnumber); >+ last; >+ } >+ } > > # my $countanalytics=GetAnalyticsCount($this_row{itemnumber}); > # if ($countanalytics > 0){ > # $this_row{countanalytics} = $countanalytics; > # } >+ } > > } > if (%this_row) { >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7311
:
6531
|
6532
|
6533