borrowers.address2, borrowers.city, borrowers.state, borrowers.zipcode,
borrowers.country, cardnumber, borrowers.dateexpiry,
borrowers.borrowernotes, borrowers.branchcode, borrowers.email,
- borrowers.userid, borrowers.dateofbirth,
+ borrowers.userid, borrowers.dateofbirth, borrowers.categorycode,
categories.description AS category_description, categories.category_type,
branches.branchname";
my $from = "FROM borrowers
<title>Koha › Circulation › Holds › Confirm holds</title>
[% END %]
[% INCLUDE 'doc-head-close.inc' %]
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'calendar.inc' %]
<script type="text/javascript">
// <![CDATA[
[% IF AutoResumeSuspendedHolds %]
$(".suspend_until_datepicker, .datepickerfrom, .datepickerto").datepicker("option", "minDate", 1);
[% END %]
+
+ var table = $("#table_borrowers").dataTable($.extend(true, {}, dataTablesDefaults, {
+ "aoColumnDefs": [
+ { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
+ ],
+ "aaSorting": [[ 2, "asc" ]],
+ "sDom": "t",
+ "iDisplayLength": -1
+ }));
+ $(table).find('tbody tr').filter(':has(:radio:checked)').end().click(function(event) {
+ $('#table_borrowers tbody tr').removeClass('selected');
+ $(this).addClass('selected');
+ if (event.target.type !== 'radio') {
+ $(':radio', this).attr('checked', 'true')
+ }
+ });
+
});
function check() {
$('#hold-request-form').preventDoubleFormSubmit();
-[% UNLESS ( borrowernumber || borrower_list || noitems ) %]
+[% UNLESS ( borrowernumber || borrowers || noitems ) %]
[% IF ( CircAutocompl ) %]
$( "#patron" ).autocomplete({
source: "/cgi-bin/koha/circ/ysearch.pl",
<div class="dialog alert"><h3>Patron not found</h3><p>No patron with this name, please, try another</p> </div>
[% END %]
<form id="holds_patronsearch" action="request.pl?biblionumber=[% biblionumber %]" method="post">
- [% UNLESS borrower_list %]
+ [% UNLESS borrowers %]
<fieldset class="brief">
<label for="patron">Patron: </label>
<div class="hint">Enter patron card number or partial name:</div>
</fieldset>
[% ELSE %]
<fieldset>
- <select size="7" name="borrowernumber">
- [% FOREACH borrower IN borrower_list %]
- <option value="[% borrower.borrowernumber %]">
-[% borrower.surname -%], [% borrower.firstname -%]
- ... ( [% borrower.cardnumber -%] - [% borrower.categorycode -%] - [% borrower.branchcode %]
-) ... [% borrower.address %]
- </option>
- [% END %]
- </select>
- <input type="hidden" name="biblionumber" value="[% biblionumber %]" /><fieldset class="action"><input type="submit" value="Select" /></fieldset></fieldset>
+ <table id="table_borrowers">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Name</th>
+ <th>Cardnumber</th>
+ <th>Category</th>
+ <th>Library</th>
+ <th>Address</th>
+ </tr>
+ </thead>
+ <tbody>
+ [% FOREACH borrower IN borrowers %]
+ <tr>
+ <td><input type="radio" name="borrowernumber" value="[% borrower.borrowernumber %]" /></td>
+ <td>[% borrower.surname %], [% borrower.firstname %]</td>
+ <td>[% borrower.cardnumber %]</td>
+ <td>[% borrower.categorycode %]</td>
+ <td>[% borrower.branchcode %]</td>
+ <td>[% borrower.address %]</td>
+ </tr>
+ [% END %]
+ </tbody>
+ </table>
+ <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
+ <fieldset class="action"><input type="submit" value="Select" /></fieldset>
+ </fieldset>
[% END %]
[% IF ( multi_hold ) %]
use C4::Koha;
use C4::Circulation;
use C4::Dates qw/format_date/;
+use C4::Utils::DataTables::Members;
use C4::Members;
use C4::Search; # enabled_staff_search_views
use Koha::DateUtils;
}
if ($findborrower) {
- my $borrowers = Search($findborrower, 'cardnumber');
-
- if ($borrowers && @$borrowers) {
- if ( @$borrowers == 1 ) {
- $borrowernumber_hold = $borrowers->[0]->{'borrowernumber'};
- }
- else {
- $template->param( borrower_list => sort_borrowerlist($borrowers));
- }
+ my $borrower = C4::Members::GetMember( cardnumber => $findborrower );
+ if ( $borrower ) {
+ $borrowernumber_hold = $borrower->{borrowernumber};
} else {
- $messageborrower = "'$findborrower'";
+ my $dt_params = { iDisplayLength => -1 };
+ my $results = C4::Utils::DataTables::Members::search(
+ {
+ searchmember => $findborrower,
+ dt_params => $dt_params,
+ }
+ );
+ my $borrowers = $results->{patrons};
+ if ( scalar @$borrowers == 1 ) {
+ $borrowernumber_hold = $borrower->[0]->{borrowernumber};
+ } elsif ( @$borrowers ) {
+ $template->param( borrowers => $borrowers );
+ } else {
+ $messageborrower = "'$findborrower'";
+ }
}
}