From 23ee00353a67ad205f3f4e9105abd2f570ac427b Mon Sep 17 00:00:00 2001 From: Lyon3 Team Date: Tue, 20 Sep 2016 12:13:23 +0200 Subject: [PATCH 1/2] Bug 17317 ILSDI - Getavailability method with id_type=bib implementation --- C4/ILSDI/Services.pm | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm index ccf283d..77646eb 100644 --- a/C4/ILSDI/Services.pm +++ b/C4/ILSDI/Services.pm @@ -134,19 +134,32 @@ sub GetAvailability { my $msg; my $biblioitem = ( GetBiblioItemByBiblioNumber( $id, undef ) )[0]; if ($biblioitem) { - + my $biblioitemnumber = $biblioitem->{'biblioitemnumber'}; + my $items = (GetItemsByBiblioitemnumber($biblioitemnumber))[0]; + + # We loop over the items to clean them + my $itemnumber; + foreach my $item (@$items) { + $itemnumber=$item->{'itemnumber'}; + my ( $biblionumber, $status, $msg, $location ) = _availability($itemnumber); + $out .= " \n"; + $out .= " \n"; + $out .= " \n"; + $out .= " \n"; + $out .= " \n"; + $out .= " " . $itemnumber . "\n"; + $out .= " " . $status . "\n"; + if ($msg) { $out .= " " . $msg . "\n"; } + if ($location) { $out .= " " . $location . "\n"; } + $out .= " \n"; + $out .= " \n"; + $out .= " \n"; + $out .= " \n"; + } } else { $status = "unknown"; $msg = "Error: could not retrieve availability for this ID"; } - $out .= " \n"; - $out .= " \n"; - $out .= " \n"; - $out .= " " . $id . "\n"; - $out .= " " . $status . "\n"; - $out .= " " . $msg . "\n"; - $out .= " \n"; - $out .= " \n"; } } $out .= "\n"; -- 2.1.4 From c1dafa4a6403561541a6861bd4d257a336944e17 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 30 Sep 2016 14:50:16 +0200 Subject: [PATCH 2/2] Perfomance Improvement: - Use of GetItemnumbersForBiblio instead of GetItemsByBiblioitemnumber (thx Jonathan Druart) --- C4/ILSDI/Services.pm | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm index 77646eb..e2dce95 100644 --- a/C4/ILSDI/Services.pm +++ b/C4/ILSDI/Services.pm @@ -132,19 +132,15 @@ sub GetAvailability { } else { my $status; my $msg; - my $biblioitem = ( GetBiblioItemByBiblioNumber( $id, undef ) )[0]; - if ($biblioitem) { - my $biblioitemnumber = $biblioitem->{'biblioitemnumber'}; - my $items = (GetItemsByBiblioitemnumber($biblioitemnumber))[0]; - + my $items = GetItemnumbersForBiblio($id); + if ($items) { + # Open XML + $out .= " \n"; + $out .= " \n"; + $out .= " \n"; # We loop over the items to clean them - my $itemnumber; - foreach my $item (@$items) { - $itemnumber=$item->{'itemnumber'}; + foreach my $itemnumber (@$items) { my ( $biblionumber, $status, $msg, $location ) = _availability($itemnumber); - $out .= " \n"; - $out .= " \n"; - $out .= " \n"; $out .= " \n"; $out .= " \n"; $out .= " " . $itemnumber . "\n"; @@ -153,9 +149,10 @@ sub GetAvailability { if ($location) { $out .= " " . $location . "\n"; } $out .= " \n"; $out .= " \n"; - $out .= " \n"; - $out .= " \n"; } + # Close XML + $out .= " \n"; + $out .= " \n"; } else { $status = "unknown"; $msg = "Error: could not retrieve availability for this ID"; -- 2.1.4