From d1a339b98bb4d8d283a7868c2c613f154407c51d Mon Sep 17 00:00:00 2001
From: Olli-Antti Kivilahti <olli-antti.kivilahti@jns.fi>
Date: Thu, 2 Jan 2014 10:21:49 +0200
Subject: [PATCH] [PASSED QA] Bug 11466 - Purchase suggestion itemtypes, only
 default available if AdvancedSearchTypes not equal 'itemtypes'

--------------
-- Synopsis --
--------------

When system preference AdvancedSearchTypes has other values than 'itemtypes',
for ex 'itemtypes|loc', itemtypes selection in opac-suggestions.pl
is not populated with available itemtypes.

This patch fixes the issue by broadening the strict comparison of
($advanced_search_types eg 'itemtypes') #fails 'itemtypes|loc'
to
($advanced_search_types =~ 'itemtypes') #succeeds 'itemtypes|loc'

Unit tests included

---------------
-- Test plan --
---------------

REPLICATING THE ISSUE
1. Set system preference  AdvancedSearchTypes to itemtypes|loc
2. Go to opac-suggestions.pl and observe Item type <select> dropdown list
2.1. List should have only the default value

AFTER APPLYING THIS PATCH
1. Set system preference  AdvancedSearchTypes to itemtypes|loc
2. Go to opac-suggestions.pl and observe Item type <select> dropdown list
2.1. List should have itemtypes available for selection

Thanks for testing!
You are awesome!
gg

Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Tests worked as expected. Placed a suggestion and saw the whole
list of item types, chose one, saved, checked staff and it loaded
as expected. Changed item type in staff and it applied in both
views.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works as described, passes all tests including new regression tests.
Restores old functionality.
---
 C4/Koha.pm                   |  2 +-
 t/db_dependent/Suggestions.t | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/C4/Koha.pm b/C4/Koha.pm
index 4202957..ca71807 100644
--- a/C4/Koha.pm
+++ b/C4/Koha.pm
@@ -189,7 +189,7 @@ build a HTML select with the following code :
 
 sub GetSupportList{
 	my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes");
-	if (!$advanced_search_types or $advanced_search_types eq 'itemtypes') {  
+    if (!$advanced_search_types or $advanced_search_types =~ /itemtypes/) {
 		my $query = qq|
 			SELECT *
 			FROM   itemtypes
diff --git a/t/db_dependent/Suggestions.t b/t/db_dependent/Suggestions.t
index f285929..51c21b8 100644
--- a/t/db_dependent/Suggestions.t
+++ b/t/db_dependent/Suggestions.t
@@ -9,10 +9,11 @@ use Data::Dumper;
 
 use C4::Suggestions;
 
-use Test::More tests =>9;
+use Test::More tests =>12;
 
 BEGIN {
     use_ok('C4::Suggestions');
+    use_ok('C4::Koha');
 }
 
 my ($suggestionid, $suggestion, $status, $biblionumber);
@@ -26,3 +27,12 @@ ok($suggestion= GetSuggestionFromBiblionumber( $biblionumber ), "GetSuggestionFr
 ok($suggestion= GetSuggestionInfoFromBiblionumber( $biblionumber ), "GetSuggestionInfoFromBiblionumber OK");
 ok(@{SearchSuggestion( {STATUS=>'STALLED'} )}>0, "SearchSuggestion Status OK");
 
+## Bug 11466, making sure GetSupportList() returns itemtypes, even if AdvancedSearchTypes has multiple values
+C4::Context->set_preference("AdvancedSearchTypes", 'itemtypes|loc|ccode');
+my $itemtypes = C4::Koha::GetSupportList();
+ok(scalar @$itemtypes, "Purchase suggestion itemtypes collected, multiple AdvancedSearchTypes");
+
+C4::Context->set_preference("AdvancedSearchTypes", 'itemtypes');
+$itemtypes = C4::Koha::GetSupportList();
+ok(scalar @$itemtypes, "Purchase suggestion itemtypes collected, default AdvancedSearchTypes");
+##EO Bug 11466
\ No newline at end of file
-- 
1.8.3.2