Bug 15422: Correct calculation of holds ratio report
See comment 1 for a detailed explanation of current calculations and
needed calculations
Also removes an unnecessary variable
To test:
1 - Place 4 holds on a biblio with one item
2 - go to /cgi-bin/koha/circ/reserveratios.pl (Circulation->Holds
ratios)
3 - Run with 'Hold ratio'=3, it says order 1, ok
4 - Run with HR=4, it says order 1, wrong
5 - Run with HR=2, it syas order 2, wrong
6 - Run with HR=.5, it syas order 4, wrong
7 - Apply patch
8 - Run with HR=3, order 1, OK
9 - Run with HR=4, item does not appear (0 to order), OK
10 - Run with HR=2, order 1, OK
11 - Run with HR=.5, order 7, OK
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
018bcce2f7
commit
c47e4736f2
|
|
@ -151,12 +151,11 @@ $template->param(sql => $strsth);
|
|||
my $sth = $dbh->prepare($strsth);
|
||||
$sth->execute(@query_params);
|
||||
|
||||
my $ratio_atleast1 = ($ratio >= 1) ? 1 : 0;
|
||||
my @reservedata;
|
||||
while ( my $data = $sth->fetchrow_hashref ) {
|
||||
my $thisratio = $data->{reservecount} / $data->{itemcount};
|
||||
my $ratiocalc = ($thisratio / $ratio);
|
||||
($thisratio / $ratio) >= 1 or next; # TODO: tighter targeting -- get ratio limit into SQL using HAVING clause
|
||||
my $ratiocalc = $data->{reservecount}/$ratio - $data->{itemcount};
|
||||
$ratiocalc >= 1 or next; # TODO: tighter targeting -- get ratio limit into SQL using HAVING clause
|
||||
push(
|
||||
@reservedata,
|
||||
{
|
||||
|
|
@ -180,7 +179,7 @@ while ( my $data = $sth->fetchrow_hashref ) {
|
|||
itype => [split('\|', $data->{l_itype})],
|
||||
reservecount => $data->{reservecount},
|
||||
itemcount => $data->{itemcount},
|
||||
ratiocalc => sprintf( "%.0d", $ratio_atleast1 ? ( $thisratio / $ratio ) : $thisratio ),
|
||||
ratiocalc => sprintf( "%.0d", $ratiocalc ),
|
||||
thisratio => sprintf( "%.2f", $thisratio ),
|
||||
thisratio_atleast1 => ( $thisratio >= 1 ) ? 1 : 0,
|
||||
listcall => [split('\|', $data->{listcall})]
|
||||
|
|
@ -194,7 +193,6 @@ for my $rd ( @reservedata ) {
|
|||
}
|
||||
|
||||
$template->param(
|
||||
ratio_atleast1 => $ratio_atleast1,
|
||||
todaysdate => $todaysdate,
|
||||
from => $startdate,
|
||||
to => $enddate,
|
||||
|
|
|
|||
Loading…
Reference in New Issue