From 86a8e267bf7903765b1181682ded5543667bf498 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 3 Nov 2014 17:55:00 -0500 Subject: [PATCH] LP#1203734 copy circ counts include anon. circs Circ counts displayed on "Show Last Few Circulations" (XUL) includes active, anonymized, and legacy circulations (via cstore) Signed-off-by: Bill Erickson Signed-off-by: Chris Sharp --- .../perlmods/lib/OpenILS/Application/Circ.pm | 26 ++++++++---- .../Application/Storage/Publisher/asset.pm | 40 ------------------- 2 files changed, 19 insertions(+), 47 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm index c82a695075..4ed6bf0fd8 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm @@ -742,17 +742,29 @@ __PACKAGE__->register_method( /); sub circ_count { - my( $self, $client, $copyid, $range ) = @_; + my( $self, $client, $copyid ) = @_; + + my $count = new_editor()->json_query({ + select => { + circbyyr => [{ + column => 'count', + transform => 'sum', + aggregate => 1 + }] + }, + from => 'circbyyr', + where => {'+circbyyr' => {copy => $copyid}} + })->[0]->{count}; - return $U->simplereq( - 'open-ils.storage', - 'open-ils.storage.asset.copy.circ_count', - $copyid, $range - ); + return { + total => { + when => 'total', + count => $count + } + }; } - __PACKAGE__->register_method( method => 'fetch_notes', authoritative => 1, diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm index 4dc3e47cb1..435f104f1d 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm @@ -13,46 +13,6 @@ my $log = 'OpenSRF::Utils::Logger'; use MARC::Record; use MARC::File::XML ( BinaryEncoding => 'UTF-8' ); -sub circ_count { - my $self = shift; - my $client = shift; - my $copy = shift; - my $granularity = shift; - - my $c_table = action::circulation->table; - - if (lc($granularity) eq 'year') { - $granularity = ", to_char(xact_start, 'YYYY') as when"; - } elsif (lc($granularity) eq 'month') { - $granularity = ", to_char(xact_start, 'YYYY-MM') as when"; - } elsif (lc($granularity) eq 'day') { - $granularity = ", to_char(xact_start, 'YYYY-MM-DD') as when"; - } else { - $granularity = ", 'total' as when"; - } - - my $SQL = <<" SQL"; - SELECT COUNT(*) as count $granularity - FROM $c_table - WHERE target_copy = ? - SQL - - - if ($granularity !~ /total/o) { - $SQL .= ' GROUP BY 2 ORDER BY 2'; - } - - $log->debug("Circ count SQL [$SQL]", DEBUG); - - return action::circulation->db_Main->selectall_hashref($SQL, 'when', {}, $copy); -} -__PACKAGE__->register_method( - method => 'circ_count', - api_name => 'open-ils.storage.asset.copy.circ_count', - argc => 1, -); - - #our $_default_subfield_map = { # call_number => $cn, # barcode => $bc, -- 2.43.2