View | Details | Raw Unified | Return to bug 21249
Collapse All | Expand All

(-)a/catalogue/search.pl (-14 / +16 lines)
Lines 420-440 my @nolimits = map uri_unescape($_), $cgi->multi_param('nolimit'); Link Here
420
my %is_nolimit = map { $_ => 1 } @nolimits;
420
my %is_nolimit = map { $_ => 1 } @nolimits;
421
@limits = grep { not $is_nolimit{$_} } @limits;
421
@limits = grep { not $is_nolimit{$_} } @limits;
422
422
423
my $branchfield = C4::Context->preference('AdvancedSearchBranchFieldToUse');
423
if ( $params->{'multibranchlimit'} ) {
424
424
    my $branchfield  = C4::Context->preference('AdvancedSearchBranchFieldToUse');
425
if($params->{'multibranchlimit'}) {
426
    my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
425
    my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
427
    my @libraries = $search_group->all_libraries;
426
    my @branchcodes  = map { $_->branchcode } $search_group->all_libraries;
428
427
429
    if ( $branchfield eq "homebranch") {
428
    if (@branchcodes) {
430
        my $multihomebranch = '('.join( " OR ", map { 'homebranch:     ' . $_->branchcode } @libraries ) .')';
429
        if ( $branchfield eq "homebranch" ) {
431
        push @limits, $multihomebranch if ( $multihomebranch ne '()');
430
            push @limits, sprintf "(%s)", join " or ", map { 'homebranch: ' . $_ } @branchcodes;
432
    } elsif ( $branchfield eq "holdingbranch") {
431
        }
433
        my $multiholdingbranch = '('.join( " OR ", map { 'holdingbranch: ' . $_->branchcode } @libraries ) .')';
432
        elsif ( $branchfield eq "holdingbranch" ) {
434
        push @limits, $multiholdingbranch if ( $multiholdingbranch ne '()');
433
            push @limits, sprintf "(%s)", join " or ", map { 'holdingbranch: ' . $_ } @branchcodes;
435
    } else {
434
        }
436
        my $multihomeandholdingbranch = '('.join( " OR ", map { 'homebranch: ' . $_->branchcode, 'holdingbranch: ' . $_->branchcode}  @libraries ) .')';
435
        else {
437
        push @limits, $multihomeandholdingbranch if ($multihomeandholdingbranch ne  '()');
436
            push @limits, sprintf "(%s or %s)",
437
              join( " or ", map { 'homebranch: ' . $_ } @branchcodes ),
438
              join( " or ", map { 'holdingbranch: ' . $_ } @branchcodes );
439
        }
438
    }
440
    }
439
}
441
}
440
442
(-)a/opac/opac-search.pl (-13 / +17 lines)
Lines 497-515 if (@searchCategories > 0) { Link Here
497
497
498
my $branchfield = C4::Context->preference('AdvancedSearchBranchFieldToUse');
498
my $branchfield = C4::Context->preference('AdvancedSearchBranchFieldToUse');
499
499
500
if($params->{'multibranchlimit'}) {
500
if ( $params->{'multibranchlimit'} ) {
501
    my $branchfield  = C4::Context->preference('AdvancedSearchBranchFieldToUse');
501
    my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
502
    my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
502
    my @libraries = $search_group->all_libraries;
503
503
504
    my @branchcodes  = map { $_->branchcode } $search_group->all_libraries;
504
    if ( $branchfield eq "homebranch" ) {
505
505
        my $multihomebranch = '('.join( " OR ", map { 'homebranch: ' . $_->branchcode } @libraries ) .')';
506
    if (@branchcodes) {
506
        push @limits, $multihomebranch if ( $multihomebranch ne '()');
507
        if ( $branchfield eq "homebranch" ) {
507
    } elsif ( $branchfield eq "holdingbranch") {
508
            push @limits, sprintf "(%s)", join " or ", map { 'homebranch: ' . $_ } @branchcodes;
508
        my $multiholdingbranch = '('.join( " OR ", map { 'holdingbranch: ' . $_->branchcode } @libraries ) .')';
509
        }
509
        push @limits, $multiholdingbranch if ( $multiholdingbranch ne '()');
510
        elsif ( $branchfield eq "holdingbranch" ) {
510
    } else {
511
            push @limits, sprintf "(%s)", join " or ", map { 'holdingbranch: ' . $_ } @branchcodes;
511
        my $multihomeandholdingbranch = '('.join( " OR ", map { 'homebranch: ' . $_->branchcode, 'holdingbranch: ' . $_->branchcode}  @libraries ) .')';
512
        }
512
        push @limits, $multihomeandholdingbranch if ($multihomeandholdingbranch ne  '()');
513
        else {
514
            push @limits, sprintf "(%s or %s)",
515
              join( " or ", map { 'homebranch: ' . $_ } @branchcodes ),
516
              join( " or ", map { 'holdingbranch: ' . $_ } @branchcodes );
517
        }
513
    }
518
    }
514
}
519
}
515
520
516
- 

Return to bug 21249