From 063664c3d49c310f26849bdc5d03e66b45532eed Mon Sep 17 00:00:00 2001
From: Fridolyn SOMERS <fridolyn.somers@biblibre.com>
Date: Fri, 25 Oct 2013 11:44:26 +0200
Subject: [PATCH] Bug 11139 - opac-topissues does not work with CCODE

When OPAC most populars uses collection code, it does not work.
There are never results.

This patch corrects two points:
 - SQL query uses 'ccode' as collection code authorised values category, it is CCODE uppercase
 - The constraint category='CCODE' must be inside join detween items and authorised_values, in this case items.ccode may be NULL

Test plan :
On a catalogue where items.ccode is defined and uses CCODE authorised values :
- Set syspref AdvancedSearchTypes = ccode
- Go to opac-topissues.pl
- If no results, select "No limit" in "of the last:" and submit
=> You get results
- Select in results a biblio and remove items.ccode from all its items
- Refresh opac-topissues.pl (check "All collections" is selected in "Limit to:")
=> The biblio is still in results
---
 opac/opac-topissues.pl | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/opac/opac-topissues.pl b/opac/opac-topissues.pl
index cdb572a..0ddb03f 100755
--- a/opac/opac-topissues.pl
+++ b/opac/opac-topissues.pl
@@ -86,10 +86,12 @@ if($advanced_search_types eq 'ccode'){
                     FROM biblio
                     LEFT JOIN items USING (biblionumber)
                     LEFT JOIN biblioitems USING (biblionumber)
-                    LEFT JOIN authorised_values ON items.ccode = authorised_values.authorised_value
+                    LEFT JOIN authorised_values ON (
+                        authorised_values.category = 'CCODE'
+                        AND items.ccode = authorised_values.authorised_value
+                    )
                     WHERE 1
                     $whereclause
-                    AND authorised_values.category = 'ccode' 
                     GROUP BY biblio.biblionumber
                     HAVING tot >0
                     ORDER BY tot DESC
-- 
1.8.3.2