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

(-)a/C4/Utils/DataTables/Members.pm (-13 / +13 lines)
Lines 54-60 sub search { Link Here
54
54
55
    # split on coma
55
    # split on coma
56
    $searchmember =~ s/,/ /g if $searchmember;
56
    $searchmember =~ s/,/ /g if $searchmember;
57
    my @where_strs_or;
58
    my $searchfields = {
57
    my $searchfields = {
59
        standard => 'surname,firstname,othernames,cardnumber',
58
        standard => 'surname,firstname,othernames,cardnumber',
60
        email => 'email,emailpro,B_email',
59
        email => 'email,emailpro,B_email',
Lines 65-85 sub search { Link Here
65
        sort1 => 'sort1',
64
        sort1 => 'sort1',
66
        sort2 => 'sort2',
65
        sort2 => 'sort2',
67
    };
66
    };
68
    for my $searchfield ( split /,/, $searchfields->{$searchfieldstype} ) {
67
    foreach my $term ( split / /, $searchmember) {
69
        foreach my $term ( split / /, $searchmember) {
68
        next unless $term;
70
            next unless $term;
69
        $searchmember =~ s/\*/%/g; # * is replaced with % for sql
71
            $searchmember =~ s/\*/%/g; # * is replaced with % for sql
70
        $term .= '%' # end with anything
72
            $term .= '%' # end with anything
71
            if $term !~ /%$/;
73
                if $term !~ /%$/;
72
        $term = "%$term" # begin with anythin unless start_with
74
            $term = "%$term" # begin with anythin unless start_with
73
            if $term !~ /^%/
75
                if $term !~ /^%/
74
                and $searchtype eq "contain";
76
                    and $searchtype eq "contain";
75
        my @where_strs_or;
76
        for my $searchfield ( split /,/, $searchfields->{$searchfieldstype} ) {
77
            push @where_strs_or, "borrowers." . $dbh->quote_identifier($searchfield) . " LIKE ?";
77
            push @where_strs_or, "borrowers." . $dbh->quote_identifier($searchfield) . " LIKE ?";
78
            push @where_args, $term;
78
            push @where_args, $term;
79
        }
79
        }
80
81
        push @where_strs, '('. join (' OR ', @where_strs_or) . ')'
82
            if @where_strs_or;
80
    }
83
    }
81
    push @where_strs, '('. join (' OR ', @where_strs_or) . ')'
82
        if @where_strs_or;
83
84
84
    my $where;
85
    my $where;
85
    $where = " WHERE " . join (" AND ", @where_strs) if @where_strs;
86
    $where = " WHERE " . join (" AND ", @where_strs) if @where_strs;
86
- 

Return to bug 12595