X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=reports%2Fborrowers_stats.pl;h=4b700c1c19c5411d78cefb7d3027029c804b5ef5;hb=refs%2Fheads%2Fkoha_ffzg;hp=a7e656fdd4c7a530d754b18b784786080c3f0a3e;hpb=a3a2dbb8cda01f9dc6fb3f3ed015998794869719;p=koha.git diff --git a/reports/borrowers_stats.pl b/reports/borrowers_stats.pl index a7e656fdd4..4b700c1c19 100755 --- a/reports/borrowers_stats.pl +++ b/reports/borrowers_stats.pl @@ -23,15 +23,16 @@ use List::MoreUtils qw/uniq/; use C4::Auth; use C4::Context; -use C4::Branch; # GetBranches use C4::Koha; -use Koha::DateUtils; use C4::Acquisition; use C4::Output; use C4::Reports; use C4::Circulation; use C4::Members::AttributeTypes; +use Koha::AuthorisedValues; +use Koha::DateUtils; +use Koha::Libraries; use Koha::Patron::Categories; use Date::Calc qw( @@ -65,9 +66,6 @@ my $output = $input->param("output"); my $basename = $input->param("basename"); our $sep = $input->param("sep"); $sep = "\t" if ($sep and $sep eq 'tabulation'); -my $selected_branch; # = $input->param("?"); - -our $branches = GetBranches; my ($template, $borrowernumber, $cookie) = get_template_and_user({template_name => $fullreportname, @@ -121,13 +119,6 @@ if ($do_it) { my $req; my $patron_categories = Koha::Patron::Categories->search({}, {order_by => ['description']}); $template->param( patron_categories => $patron_categories ); - my @branchloop; - foreach (sort {$branches->{$a}->{branchname} cmp $branches->{$b}->{branchname}} keys %$branches) { - my $line = {branchcode => $_, branchname => $branches->{$_}->{branchname} || 'UNKNOWN'}; - $line->{selected} = 'selected' if ($selected_branch and $selected_branch eq $_); - push @branchloop, $line; - } - $template->param(BRANCH_LOOP => \@branchloop); $req = $dbh->prepare("SELECT DISTINCTROW zipcode FROM borrowers WHERE zipcode IS NOT NULL AND zipcode <> '' ORDER BY zipcode"); $req->execute; $template->param( ZIP_LOOP => $req->fetchall_arrayref({})); @@ -135,7 +126,7 @@ if ($do_it) { $req->execute; $template->param( SORT1_LOOP => $req->fetchall_arrayref({})); $req = $dbh->prepare("SELECT DISTINCTROW sort2 AS value FROM borrowers WHERE sort2 IS NOT NULL AND sort2 <> '' ORDER BY sort2 LIMIT 200"); - # More than 200 items in a dropdown is not going to be useful anyway, and w/ 50,000 patrons we can destory DB performance. + # More than 200 items in a dropdown is not going to be useful anyway, and w/ 50,000 patrons we can destroy DB performance. $req->execute; $template->param( SORT2_LOOP => $req->fetchall_arrayref({})); @@ -238,10 +229,9 @@ sub calculate { } } + my @branchcodes = map { $_->branchcode } Koha::Libraries->search; ($status ) and push @loopfilter,{crit=>"Status", filter=>$status }; ($activity) and push @loopfilter,{crit=>"Activity",filter=>$activity}; - push @loopfilter,{debug=>1, crit=>"Branches",filter=>join(" ", sort keys %$branches)}; - push @loopfilter,{debug=>1, crit=>"(line, column)", filter=>"($line,$column)"}; # year of activity my ( $period_year, $period_month, $period_day )=Add_Delta_YM( Today(),-$period, 0); my $newperioddate=$period_year."-".$period_month."-".$period_day; @@ -260,12 +250,6 @@ sub calculate { $linefield = $line; } my $patron_categories = Koha::Patron::Categories->search({}, {order_by => ['categorycode']}); - push @loopfilter, - { - debug => 1, - crit => "Patron category", - filter => join( ", ", map { $_->categorycode . ' (' . ( $_->description || 'NO_DESCRIPTION' ) . ')' } $patron_categories->as_list ), - }; my $strsth; my @strparams; # bind parameters for the query @@ -286,7 +270,6 @@ sub calculate { $strsth .= " AND $status='1' " if ($status); $strsth .=" order by $linefield"; - push @loopfilter, {sql=>1, crit=>"Query", filter=>$strsth}; my $sth = $dbh->prepare($strsth); $sth->execute(@strparams); while (my ($celvalue) = $sth->fetchrow) { @@ -333,7 +316,6 @@ sub calculate { $strsth2 .= " AND $status='1' " if ($status); $strsth2 .= " order by $colfield"; - push @loopfilter, {sql=>1, crit=>"Query", filter=>$strsth2}; my $sth2 = $dbh->prepare($strsth2); $sth2->execute(@strparams2); while (my ($celvalue) = $sth2->fetchrow) { @@ -414,8 +396,8 @@ sub calculate { $strcalc .= " AND attribute_$type.attribute LIKE '" . $filter . "' "; } } - $strcalc .= " AND borrowernumber in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'active'); - $strcalc .= " AND borrowernumber not in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'nonactive'); + $strcalc .= " AND borrowers.borrowernumber in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'active'); + $strcalc .= " AND borrowers.borrowernumber not in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "' AND borrowernumber IS NOT NULL)" if ($activity eq 'nonactive'); $strcalc .= " AND $status='1' " if ($status); $strcalc .= " GROUP BY "; @@ -430,7 +412,6 @@ sub calculate { $strcalc .= " $colfield "; } - push @loopfilter, {sql=>1, crit=>"Query", filter=>$strcalc}; my $dbcalc = $dbh->prepare($strcalc); (scalar(@calcparams)) ? $dbcalc->execute(@calcparams) : $dbcalc->execute(); @@ -542,7 +523,8 @@ sub patron_attributes_form { my @attribute_loop; foreach my $class ( sort keys %items_by_class ) { - my $lib = GetAuthorisedValueByCode( 'PA_CLASS', $class ) || $class; + my $av = Koha::AuthorisedValues->search({ category => 'PA_CLASS', authorised_value => $class }); + my $lib = $av->count ? $av->next->lib : $class; push @attribute_loop, { class => $class, items => $items_by_class{$class},