@@ -, +, @@
when IndependentBranches enabled
---
C4/Suggestions.pm | 15 +++++---
.../prog/en/modules/suggestion/suggestion.tt | 30 ++++++++-------
suggestion/suggestion.pl | 45 +++++++++++++++++-----
3 files changed, 62 insertions(+), 28 deletions(-)
--- a/C4/Suggestions.pm
+++ a/C4/Suggestions.pm
@@ -131,25 +131,30 @@ sub SearchSuggestion {
}
}
+ my $userenv = C4::Context->userenv;
# filter on user branch
if ( C4::Context->preference('IndependentBranches') ) {
- my $userenv = C4::Context->userenv;
- if ($userenv) {
- if ( !C4::Context->IsSuperLibrarian() && !$suggestion->{branchcode} )
+ if ( !C4::Context->IsSuperLibrarian() && $userenv )
{
push @sql_params, $$userenv{branch};
push @query, q{
AND (suggestions.branchcode=? OR suggestions.branchcode='')
};
+ }else{
+ if ( defined $suggestion->{branchcode} && $suggestion->{branchcode} ) {
+ unless ( $suggestion->{branchcode} eq '__ANY__' ) {
+ push @sql_params, $suggestion->{branchcode};
+ push @query, qq{ AND suggestions.branchcode=? };
+ }
+ }
}
- }
} else {
if ( defined $suggestion->{branchcode} && $suggestion->{branchcode} ) {
unless ( $suggestion->{branchcode} eq '__ANY__' ) {
push @sql_params, $suggestion->{branchcode};
push @query, qq{ AND suggestions.branchcode=? };
}
- }
+ }
}
# filter on nillable fields
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
@@ -715,10 +715,12 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
[% ELSE %]
[% END %]
- [% IF ( displayby == "branchcode" ) %]
-
- [% ELSE %]
-
+ [% IF ( IndependentBranches == 0 ) || (SuperLibrarian) %]
+ [% IF ( displayby == "branchcode" ) %]
+
+ [% ELSE %]
+
+ [% END %]
[% END %]
[% IF ( displayby == "itemtype" ) %]
@@ -837,15 +839,17 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
[% IF ( budgetid_loo.selected ) %] [% ELSE %][% END %]
[% END %]
-
-
+ [% IF (IndependentBranches == 0 ) %]
+
+
+ [% END %]
--- a/suggestion/suggestion.pl
+++ a/suggestion/suggestion.pl
@@ -94,6 +94,8 @@ my $tabcode = $input->param('tabcode');
# filter informations which are not suggestion related.
my $suggestion_ref = $input->Vars;
+my $IndependentBranches;
+my $SuperLibrarian;
# get only the columns of Suggestion
my $schema = Koha::Database->new()->schema;
@@ -117,6 +119,23 @@ my ( $template, $borrowernumber, $cookie, $userflags ) = get_template_and_user(
$borrowernumber = $input->param('borrowernumber') if ( $input->param('borrowernumber') );
$template->param('borrowernumber' => $borrowernumber);
+#Check if IndependentBranches syspref is enabled and if it is then return IndependentBranches variable of 1 so library
+#filtering does not occur in suggestion.tt
+if ( Koha::Config::SysPrefs->find( 'IndependentBranches')->value) {
+ $IndependentBranches = 1;
+ $template->param(
+ IndependentBranches => $IndependentBranches
+ );
+}
+
+if (C4::Context->IsSuperLibrarian()) {
+ $SuperLibrarian =1;
+ $template->param(
+ SuperLibrarian => $SuperLibrarian
+ );
+}
+
+#
#########################################
## Operations
##
@@ -225,7 +244,7 @@ elsif ( $op eq 'show' ) {
}
if ($op=~/else/) {
$op='else';
-
+
$displayby||="STATUS";
delete $$suggestion_ref{'branchcode'} if($displayby eq "branchcode");
# distinct values of display by
@@ -245,29 +264,35 @@ if ($op=~/else/) {
my $reasonsloop = GetAuthorisedValues("SUGGEST");
foreach my $criteriumvalue ( @criteria_dv ) {
# By default, display suggestions from current working branch
- unless ( exists $$suggestion_ref{'branchcode'} ) {
- $$suggestion_ref{'branchcode'} = C4::Context->userenv->{'branch'};
+
+ if ( $IndependentBranches && !$SuperLibrarian) {
+ unless ( $$suggestion_ref{'branchcode'} ) {
+ $$suggestion_ref{'branchcode'} = C4::Context->userenv->{'branch'};
+ }
}
+
my $definedvalue = defined $$suggestion_ref{$displayby} && $$suggestion_ref{$displayby} ne "";
next if ( $definedvalue && $$suggestion_ref{$displayby} ne $criteriumvalue );
$$suggestion_ref{$displayby} = $criteriumvalue;
my $suggestions = &SearchSuggestion($suggestion_ref);
+
+ my $count = 0;
foreach my $suggestion (@$suggestions) {
if ($suggestion->{budgetid}){
my $bud = GetBudget( $suggestion->{budgetid} );
$suggestion->{budget_name} = $bud->{budget_name} if $bud;
}
+ $count++;
}
push @allsuggestions,{
- "suggestiontype"=>$criteriumvalue||"suggest",
- "suggestiontypelabel"=>GetCriteriumDesc($criteriumvalue,$displayby)||"",
- "suggestionscount"=>scalar(@$suggestions),
- 'suggestions_loop'=>$suggestions,
- 'reasonsloop' => $reasonsloop,
- };
-
+ "suggestiontype"=>$criteriumvalue||"suggest",
+ "suggestiontypelabel"=>GetCriteriumDesc($criteriumvalue,$displayby)||"",
+ "suggestionscount"=>scalar(@$suggestions),
+ 'suggestions_loop'=>$suggestions,
+ 'reasonsloop' => $reasonsloop,
+ };
delete $$suggestion_ref{$displayby} unless $definedvalue;
}
--