Revert "Fixing LP#1203734 - "Show Last Few Circulations" interface not counting archi...
authorChris Sharp <csharp@georgialibraries.org>
Mon, 10 Nov 2014 13:04:13 +0000 (08:04 -0500)
committerChris Sharp <csharp@georgialibraries.org>
Sat, 19 Nov 2016 12:38:02 +0000 (07:38 -0500)
This reverts commit 4978ead0608a0c45a7e0f0c77380d0548a80e1e1.

Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm

Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm

index f5e3279..f95338f 100644 (file)
@@ -13,6 +13,46 @@ 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,