From d0fcfbb1ae5b58153792b5ba93cbaed0a2d5a5ec Mon Sep 17 00:00:00 2001
From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Date: Thu, 29 Jun 2017 13:03:39 +0200
Subject: [PATCH] Bug 18149: Move CountUsage calls to Koha namespace

After the introduction of Koha::Authorities->get_usage_count with bug
9988, we can now replace the remaining occurrences of CountUsage.

At the same time we remove CountUsageChildren. This was an empty sub.
The typo get_count_usage in a subtest title is adjusted.

Test plan:
[1] Run t/db_dependent/Koha/Authorities.t
[2] Perform a search on authorities-home.pl and verify that you see
    plausible numbers for 'used in xx records'.
[3] Click on Details for one authority. See the same number?
[4] Do the same as in 2/3 for Authority search on OPAC.
[5] Remember the authid and enter this in the record numbers box on
    tools/batch_delete_records.pl. Select Authorities and click
    Continue. The next form shows a column "Used in". Do you see
    the same count again?
[6] Git grep CountUsage.
    You should see just one hit in a comment that can be kept in
    Koha/Authorities.pm.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
---
 C4/AuthoritiesMarc.pm             | 41 +--------------------------------------
 authorities/detail.pl             |  5 +++--
 opac/opac-authoritiesdetail.pl    |  4 ++--
 t/db_dependent/Koha/Authorities.t |  2 +-
 tools/batch_delete_records.pl     |  3 ++-
 5 files changed, 9 insertions(+), 46 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 8b9c6c1c8f..17cb955111 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -51,8 +51,6 @@ BEGIN {
     	&GetAuthority
     	&GetAuthorityXML
 
-    	&CountUsage
-    	&CountUsageChildren
     	&SearchAuthorities
     
         &BuildSummary
@@ -327,7 +325,7 @@ sub SearchAuthorities {
         ###
         if (! $skipmetadata) {
             for (my $z=0; $z<@finalresult; $z++){
-                my  $count=CountUsage($finalresult[$z]{authid});
+                my $count = Koha::Authorities->get_usage_count({ authid => $finalresult[$z]{authid} });
                 $finalresult[$z]{used}=$count;
             }# all $z's
         }
@@ -340,43 +338,6 @@ sub SearchAuthorities {
     return (\@finalresult, $nbresults);
 }
 
-=head2 CountUsage 
-
-  $count= &CountUsage($authid)
-
-counts Usage of Authid in bibliorecords. 
-
-=cut
-
-sub CountUsage {
-    my ($authid) = @_;
-        ### ZOOM search here
-        my $query;
-        $query= "an:".$authid;
-        # Should really be replaced with a real count call, this is a
-        # bad way.
-        my $searcher = Koha::SearchEngine::Search->new({index => $Koha::SearchEngine::BIBLIOS_INDEX});
-        my ($err,$res,$result) = $searcher->simple_search_compat($query,0,1);
-        if ($err) {
-            warn "Error: $err from search $query";
-            $result = 0;
-        }
-
-        return $result;
-}
-
-=head2 CountUsageChildren 
-
-  $count= &CountUsageChildren($authid)
-
-counts Usage of narrower terms of Authid in bibliorecords.
-
-=cut
-
-sub CountUsageChildren {
-  my ($authid) = @_;
-}
-
 =head2 GuessAuthTypeCode
 
   my $authtypecode = GuessAuthTypeCode($record);
diff --git a/authorities/detail.pl b/authorities/detail.pl
index 38af541a9b..22e0aaf590 100755
--- a/authorities/detail.pl
+++ b/authorities/detail.pl
@@ -178,7 +178,8 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user(
 
 my $authid = $query->param('authid');
 
-my $authtypecode = Koha::Authorities->find($authid)->authtypecode;
+my $authobj = Koha::Authorities->find($authid);
+my $authtypecode = $authobj ? $authobj->authtypecode: q{};
 $tagslib = &GetTagsLabels(1,$authtypecode);
 
 # Build list of authtypes for showing them
@@ -200,7 +201,7 @@ if (C4::Context->preference("AuthDisplayHierarchy")){
     $template->{VARS}->{'loophierarchies'} = GenerateHierarchy($authid);
 }
 
-my $count = CountUsage($authid);
+my $count = $authobj ? $authobj->get_usage_count : 0;
 
 # find the marc field/subfield used in biblio by this authority
 my $sth = $dbh->prepare("select distinct tagfield from marc_subfield_structure where authtypecode=?");
diff --git a/opac/opac-authoritiesdetail.pl b/opac/opac-authoritiesdetail.pl
index f46c5111f4..438ef809ea 100755
--- a/opac/opac-authoritiesdetail.pl
+++ b/opac/opac-authoritiesdetail.pl
@@ -77,14 +77,14 @@ if ( ! $record ) {
 }
 
 my $authority = Koha::Authorities->find( $authid );
-my $authtypecode = $authority->authtypecode;
+my $authtypecode = $authority ? $authority->authtypecode : q{};
 
 if ($display_hierarchy){
     $template->{VARS}->{'displayhierarchy'} = $display_hierarchy;
     $template->{VARS}->{'loophierarchies'} = GenerateHierarchy($authid);
 }
 
-my $count = CountUsage($authid);
+my $count = $authority ? $authority->get_usage_count : 0;
 
 my $authority_types = Koha::Authority::Types->search( {}, { order_by => ['authtypecode'] } );
 $template->param(
diff --git a/t/db_dependent/Koha/Authorities.t b/t/db_dependent/Koha/Authorities.t
index 501e62b2e9..9fa6c73b81 100644
--- a/t/db_dependent/Koha/Authorities.t
+++ b/t/db_dependent/Koha/Authorities.t
@@ -127,7 +127,7 @@ subtest 'Testing reporting_tag_xml in MergeRequest' => sub {
     );
 };
 
-subtest 'Trivial tests for get_count_usage and linked_biblionumbers' => sub {
+subtest 'Trivial tests for get_usage_count and linked_biblionumbers' => sub {
     plan tests => 5;
 
     # NOTE: We are not testing $searcher->simple_search_compat here. Suppose
diff --git a/tools/batch_delete_records.pl b/tools/batch_delete_records.pl
index a9ca2b30c6..0acaa8d5f7 100755
--- a/tools/batch_delete_records.pl
+++ b/tools/batch_delete_records.pl
@@ -28,6 +28,7 @@ use C4::Output;
 use C4::AuthoritiesMarc;
 use C4::Biblio;
 
+use Koha::Authorities;
 use Koha::Biblios;
 
 my $input = new CGI;
@@ -101,7 +102,7 @@ if ( $op eq 'form' ) {
             $authority = {
                 authid => $record_id,
                 summary => C4::AuthoritiesMarc::BuildSummary( $authority, $record_id ),
-                count_usage => C4::AuthoritiesMarc::CountUsage( $record_id ),
+                count_usage => Koha::Authorities->get_usage_count({ authid => $record_id }),
             };
             push @records, $authority;
         }
-- 
2.14.1