From d8e5f0cd9d5926fb3b72e47852eac6b6c4f59be9 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 19 Nov 2014 08:16:17 -0500 Subject: [PATCH] Bug 13298 - Holds ratios report ignores ordered items The holds ratio report ignores ordered items. This could cause a library to inadvertently order more copies of a title than they actually need. An option should be added to count ordered items ( i.e. any negative notforloan value ). Test Plan: 1) Apply this patch 2) Create a record with two items, one regular, one ordered. 3) Place 3 holds on the item 4) Run the reserve ratios report, by default you should see this record 5) Check the new 'include ordered' checkbox, rerun the report 6) Note that record is no longer displayed Signed-off-by: Heather Braum Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi --- circ/reserveratios.pl | 11 ++++-- .../prog/en/modules/circ/reserveratios.tt | 39 ++++++++++++------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/circ/reserveratios.pl b/circ/reserveratios.pl index 9585660e71..724a4b91ff 100755 --- a/circ/reserveratios.pl +++ b/circ/reserveratios.pl @@ -33,9 +33,10 @@ use C4::Biblio qw/GetMarcBiblio GetRecordValue GetFrameworkCode/; use C4::Acquisition qw/GetOrdersByBiblionumber/; my $input = new CGI; -my $startdate = $input->param('from'); -my $enddate = $input->param('to'); -my $ratio = $input->param('ratio'); +my $startdate = $input->param('from'); +my $enddate = $input->param('to'); +my $ratio = $input->param('ratio'); +my $include_ordered = $input->param('include_ordered'); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -90,6 +91,7 @@ if ($enddate) { push @query_params, format_date_in_iso($enddate); } +my $nfl_comparison = $include_ordered ? '<=' : '='; my $strsth = "SELECT reservedate, reserves.borrowernumber as borrowernumber, @@ -116,7 +118,7 @@ my $strsth = LEFT JOIN items ON items.biblionumber=reserves.biblionumber LEFT JOIN biblio ON reserves.biblionumber=biblio.biblionumber WHERE - notforloan = 0 AND damaged = 0 AND itemlost = 0 AND withdrawn = 0 + notforloan $nfl_comparison 0 AND damaged = 0 AND itemlost = 0 AND withdrawn = 0 $sqldatewhere "; @@ -177,6 +179,7 @@ $template->param( from => $startdate, to => $enddate, ratio => $ratio, + include_ordered => $include_ordered, reserveloop => \@reservedata, ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tt index b12ffc3c98..5583fd833c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tt @@ -89,20 +89,31 @@

Refine results:

-
  1. -
  2. -
  3. - -
  4. -
  5. - -
+
    +
  1. + + +
  2. + +
  3. + + [% IF include_ordered %] + + [% ELSE %] + + [% END %] +
  4. + +
  5. + + +
  6. + +
  7. + + +
  8. +
(inclusive)
-- 2.39.2