From bcbe443af43132295461c86dd868c3bff023f53c Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Mon, 7 Mar 2016 14:04:44 +0000 Subject: [PATCH] Bug 15997 - Hold Ratios for ordered items doesn't count orders where AcqCreateItem is set to 'receiving' MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Currently, the hold ratios script only counts on order items where the record item is created at the time the order is placed, and not if the item is created when the item is received. Test Plan: 1) Set AcqCreateItem to recieving 2) Run the hold ratios report with "include ordered" checked 3) From aquisitions, order some additional items for the record 4) Re-run the hold ratios report, not there is no change in the ratio for that record 5) Apply this patch 6) Re-run the hold ratios reporat again, the ratio should now have changed Signed-off-by: Srdjan Signed-off-by: Jonathan Druart Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com (cherry picked from commit 7e1ccbd6069658540dd352f63ade3ef7b19de282) Signed-off-by: Julian Maurice (cherry picked from commit 26f05afd0b66b4903e6c41a3e21150c34d024b2c) Signed-off-by: Frédéric Demians --- circ/reserveratios.pl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/circ/reserveratios.pl b/circ/reserveratios.pl index 96756742b3..9a1ba3e4f4 100755 --- a/circ/reserveratios.pl +++ b/circ/reserveratios.pl @@ -91,6 +91,16 @@ if ($enddate) { push @query_params, format_date_in_iso($enddate); } +my $include_aqorders_qty = + C4::Context->preference('AcqCreateItem') eq 'receiving' + ? '+ COALESCE(aqorders.quantity, 0) - COALESCE(aqorders.quantityreceived, 0)' + : q{}; + +my $include_aqorders_qty_join = + C4::Context->preference('AcqCreateItem') eq 'receiving' + ? 'LEFT JOIN aqorders ON reserves.biblionumber=aqorders.biblionumber' + : q{}; + my $nfl_comparison = $include_ordered ? '<=' : '='; my $strsth = "SELECT reservedate, @@ -115,10 +125,11 @@ my $strsth = biblio.title, biblio.author, count(DISTINCT reserves.borrowernumber) as reservecount, - count(DISTINCT items.itemnumber) as itemcount + count(DISTINCT items.itemnumber) $include_aqorders_qty as itemcount FROM reserves LEFT JOIN items ON items.biblionumber=reserves.biblionumber LEFT JOIN biblio ON reserves.biblionumber=biblio.biblionumber + $include_aqorders_qty_join WHERE notforloan $nfl_comparison 0 AND damaged = 0 AND itemlost = 0 AND withdrawn = 0 $sqldatewhere -- 2.39.5