|
Lines 26-32
use C4::Utils::DataTables qw( dt_get_params );
Link Here
|
| 26 |
use C4::Utils::DataTables::Members qw( search ); |
26 |
use C4::Utils::DataTables::Members qw( search ); |
| 27 |
use Koha::DateUtils qw( output_pref dt_from_string ); |
27 |
use Koha::DateUtils qw( output_pref dt_from_string ); |
| 28 |
use Koha::Patrons; |
28 |
use Koha::Patrons; |
| 29 |
use Data::Dumper; |
|
|
| 30 |
use Time::Piece; |
29 |
use Time::Piece; |
| 31 |
use JSON::XS qw( ); |
30 |
use JSON::XS qw( ); |
| 32 |
use HTML::Entities qw( encode_entities ); |
31 |
use HTML::Entities qw( encode_entities ); |
|
Lines 77-94
if ( $searchmember
Link Here
|
| 77 |
} if $member; |
76 |
} if $member; |
| 78 |
} |
77 |
} |
| 79 |
|
78 |
|
| 80 |
# Perform the patrons search |
79 |
my $filterable_results; |
| 81 |
$results = C4::Utils::DataTables::Members::search( |
80 |
if ($searchmember ne $first_query) { |
| 82 |
{ |
81 |
# Perform the patrons search |
| 83 |
searchmember => $first_query, |
82 |
$results = C4::Utils::DataTables::Members::search( |
| 84 |
firstletter => $firstletter, |
83 |
{ |
| 85 |
categorycode => $categorycode, |
84 |
searchmember => $first_query, |
| 86 |
branchcode => $branchcode, |
85 |
firstletter => $firstletter, |
| 87 |
searchtype => $searchtype, |
86 |
categorycode => $categorycode, |
| 88 |
searchfieldstype => $searchfieldstype, |
87 |
branchcode => $branchcode, |
| 89 |
dt_params => \%dt_params, |
88 |
searchtype => $searchtype, |
| 90 |
} |
89 |
searchfieldstype => $searchfieldstype, |
| 91 |
) unless $results; |
90 |
dt_params => \%dt_params, |
|
|
91 |
} |
| 92 |
) unless $results; |
| 93 |
my $value_to_display = $dt_params{'iDisplayLength'}; |
| 94 |
$dt_params{'iDisplayLength'} = -1; |
| 95 |
|
| 96 |
# Retreive all patrons matching the $first_query value. These will be filtered |
| 97 |
$filterable_results = C4::Utils::DataTables::Members::search( |
| 98 |
{ |
| 99 |
searchmember => $first_query, |
| 100 |
firstletter => $firstletter, |
| 101 |
categorycode => $categorycode, |
| 102 |
branchcode => $branchcode, |
| 103 |
searchtype => $searchtype, |
| 104 |
searchfieldstype => $searchfieldstype, |
| 105 |
dt_params => \%dt_params, |
| 106 |
} |
| 107 |
) unless $filterable_results; |
| 108 |
} else { |
| 109 |
# Perform the patrons search |
| 110 |
$results = C4::Utils::DataTables::Members::search( |
| 111 |
{ |
| 112 |
searchmember => $first_query, |
| 113 |
firstletter => $firstletter, |
| 114 |
categorycode => $categorycode, |
| 115 |
branchcode => $branchcode, |
| 116 |
searchtype => $searchtype, |
| 117 |
searchfieldstype => $searchfieldstype, |
| 118 |
dt_params => \%dt_params, |
| 119 |
} |
| 120 |
) unless $results; |
| 121 |
} |
| 92 |
|
122 |
|
| 93 |
# It is not recommanded to use the has_permission param if you use the pagination |
123 |
# It is not recommanded to use the has_permission param if you use the pagination |
| 94 |
# The filter is done AFTER requested the data |
124 |
# The filter is done AFTER requested the data |
|
Lines 115-127
$results = C4::Utils::DataTables::Members::search(
Link Here
|
| 115 |
} |
145 |
} |
| 116 |
my $date_format = C4::Context->preference("dateformat"); |
146 |
my $date_format = C4::Context->preference("dateformat"); |
| 117 |
|
147 |
|
| 118 |
if ($searchmember) { |
148 |
if ($searchmember ne $first_query) { |
| 119 |
my @filtered_patron_list; |
149 |
my @filtered_patron_list; |
| 120 |
my $count; |
150 |
my $count; |
| 121 |
for my $patron ( @{ $results->{patrons} } ) { |
151 |
for my $patron ( @{ $filterable_results->{patrons} } ) { |
| 122 |
my $match; |
152 |
my $match; |
| 123 |
for my $value (values $patron) { |
153 |
for my $value (values $patron) { |
| 124 |
warn $value; |
|
|
| 125 |
my $lc_patron_value = lc $value; |
154 |
my $lc_patron_value = lc $value; |
| 126 |
my $lc_searchmember = lc $searchmember; |
155 |
my $lc_searchmember = lc $searchmember; |
| 127 |
|
156 |
|
|
Lines 138-151
$results = C4::Utils::DataTables::Members::search(
Link Here
|
| 138 |
|
167 |
|
| 139 |
} |
168 |
} |
| 140 |
} |
169 |
} |
| 141 |
warn $lc_patron_value; |
|
|
| 142 |
warn $lc_searchmember; |
| 143 |
if ($searchtype eq "start_with") { |
170 |
if ($searchtype eq "start_with") { |
| 144 |
#Find a match starting with the start of a value in the patron record |
171 |
#Find a match starting with the start of a value in the patron record |
| 145 |
if (index($lc_patron_value, $lc_searchmember) == 0) { |
172 |
if (index($lc_patron_value, $lc_searchmember) == 0) { |
| 146 |
$match = 1; |
173 |
$match = 1; |
| 147 |
warn $lc_patron_value; |
|
|
| 148 |
warn $lc_searchmember; |
| 149 |
} |
174 |
} |
| 150 |
} else { |
175 |
} else { |
| 151 |
if (($lc_patron_value) =~ /($lc_searchmember)/) { |
176 |
if (($lc_patron_value) =~ /($lc_searchmember)/) { |
|
Lines 159-165
$results = C4::Utils::DataTables::Members::search(
Link Here
|
| 159 |
} |
184 |
} |
| 160 |
} |
185 |
} |
| 161 |
$results->{patrons} = \@filtered_patron_list; |
186 |
$results->{patrons} = \@filtered_patron_list; |
| 162 |
$results->{iTotalDisplayRecords} = scalar( @filtered_patron_list ); |
187 |
if ($searchmember ne $first_query) { |
|
|
188 |
$results->{iTotalDisplayRecords} = scalar @{$results->{patrons}}; |
| 189 |
} |
| 163 |
} |
190 |
} |
| 164 |
|
191 |
|
| 165 |
my $date_format = C4::Context->preference("dateformat"); |
192 |
my $date_format = C4::Context->preference("dateformat"); |
| 166 |
- |
|
|