@@ -, +, @@ 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; } --