From 95e0a2fad6e5e93b8b7fec5ad290d9076e7360cc 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' 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 --- circ/reserveratios.pl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/circ/reserveratios.pl b/circ/reserveratios.pl index bd51b7c..4564b19 100755 --- a/circ/reserveratios.pl +++ b/circ/reserveratios.pl @@ -83,6 +83,11 @@ push @query_params, output_pref({ dt => $startdate, dateformat => 'iso' }) ; $sqldatewhere .= " AND reservedate <= ?"; push @query_params, output_pref({ dt => $enddate, dateformat => 'iso' }); +my $include_aqorders_qty = + C4::Context->preference('AcqCreateItem') eq 'receiving' + ? '+ COALESCE(aqorders.quantity, 0) - COALESCE(aqorders.quantityreceived, 0)' + : q{}; + my $nfl_comparison = $include_ordered ? '<=' : '='; my $strsth = "SELECT reservedate, @@ -107,10 +112,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 + LEFT JOIN aqorders ON reserves.biblionumber=aqorders.biblionumber WHERE notforloan $nfl_comparison 0 AND damaged = 0 AND itemlost = 0 AND withdrawn = 0 $sqldatewhere -- 2.1.4