@@ -, +, @@ --- C4/Items.pm | 16 ++++++++++++---- .../prog/en/modules/catalogue/itemsearch.tt | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) --- a/C4/Items.pm +++ a/C4/Items.pm @@ -1451,6 +1451,7 @@ sub SearchItems { LEFT JOIN biblio ON biblio.biblionumber = items.biblionumber LEFT JOIN biblioitems ON biblioitems.biblioitemnumber = items.biblioitemnumber LEFT JOIN biblio_metadata ON biblio_metadata.biblionumber = biblio.biblionumber + LEFT JOIN issues ON issues.itemnumber = items.itemnumber WHERE 1 }; if (defined $where_str and $where_str ne '') { @@ -1463,10 +1464,17 @@ sub SearchItems { my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns; push @columns, Koha::Database->new()->schema()->resultset('Biblio')->result_source->columns; push @columns, Koha::Database->new()->schema()->resultset('Biblioitem')->result_source->columns; - my $sortby = (0 < grep {$params->{sortby} eq $_} @columns) - ? $params->{sortby} : 'itemnumber'; - my $sortorder = (uc($params->{sortorder}) eq 'ASC') ? 'ASC' : 'DESC'; - $query .= qq{ ORDER BY $sortby $sortorder }; + push @columns, Koha::Database->new()->schema()->resultset('Issue')->result_source->columns; + + if ( $params->{sortby} eq 'availability' ) { + my $sortorder = (uc($params->{sortorder}) eq 'ASC') ? 'ASC' : 'DESC'; + $query .= qq{ ORDER BY onloan $sortorder, damaged $sortorder, withdrawn $sortorder, notforloan $sortorder, itemlost $sortorder }; + } else { + my $sortby = (0 < grep {$params->{sortby} eq $_} @columns) + ? $params->{sortby} : 'itemnumber'; + my $sortorder = (uc($params->{sortorder}) eq 'ASC') ? 'ASC' : 'DESC'; + $query .= qq{ ORDER BY $sortby $sortorder }; + } my $rows = $params->{rows}; my @limit_args; --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt @@ -337,7 +337,7 @@ + ' ' + _("Withdrawn status") + '' + ' ' + _("Checkouts") + '' + ' ' + _("Availability") + '' - + ' ' + _("Due date") + '' + + ' ' + _("Due date") + '' + ' ' + ' ' var table = '' @@ -495,7 +495,7 @@ { 'sName': 'withdrawn' }, { 'sName': 'issues' }, { 'sName': 'availability' }, - { 'sName': 'duedate' }, + { 'sName': 'date_due' }, { 'sName': 'actions', 'bSortable': false } ], "sPaginationType": "full_numbers", --