X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=labels%2Flabel-item-search.pl;h=eeb46f8f9cc31174c66f672bb45405f1c9e78edf;hb=c6721b2fceb47f4599d092b6473323b687f9669f;hp=c95bdf0fb96b97efc77785fec82fd77ea9b83e6b;hpb=aa16f1229c3978575324889c1c056b2851d75b41;p=koha_fer diff --git a/labels/label-item-search.pl b/labels/label-item-search.pl index c95bdf0fb9..eeb46f8f9c 100755 --- a/labels/label-item-search.pl +++ b/labels/label-item-search.pl @@ -13,18 +13,16 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; use warnings; use vars qw($debug $cgi_debug); use CGI; -use HTML::Template::Pro; use List::Util qw( max min ); -use Sys::Syslog qw(syslog); use POSIX qw(ceil); use C4::Auth qw(get_template_and_user); @@ -35,7 +33,7 @@ use C4::Search qw(SimpleSearch); use C4::Biblio qw(TransformMarcToKoha); use C4::Items qw(GetItemInfosOf get_itemnumbers_of); use C4::Koha qw(GetItemTypes); # XXX subfield_is_koha_internal_p -use C4::Labels::Lib qw(html_table); +use C4::Creators::Lib qw(html_table); use C4::Debug; BEGIN { @@ -68,10 +66,12 @@ my $display_columns = [ {_add => {label => "Add Item", link_fi ]; if ( $op eq "do_search" ) { + my $QParser; + $QParser = C4::Context->queryparser if (C4::Context->preference('UseQueryParser')); $idx = $query->param('idx'); $ccl_textbox = $query->param('ccl_textbox'); if ( $ccl_textbox && $idx ) { - $ccl_query = "$idx=$ccl_textbox"; + $ccl_query = "$idx:$ccl_textbox"; } $datefrom = $query->param('datefrom'); @@ -79,23 +79,34 @@ if ( $op eq "do_search" ) { if ($datefrom) { $datefrom = C4::Dates->new($datefrom); - $ccl_query .= ' and ' if $ccl_textbox; - $ccl_query .= - "acqdate,st-date-normalized,ge=" . $datefrom->output("iso"); + if ($QParser) { + $ccl_query .= ' && ' if $ccl_textbox; + $ccl_query .= + "acqdate(" . $datefrom->output("iso") . '-)'; + } else { + $ccl_query .= ' and ' if $ccl_textbox; + $ccl_query .= + "acqdate,st-date-normalized,ge=" . $datefrom->output("iso"); + } } if ($dateto) { $dateto = C4::Dates->new($dateto); - $ccl_query .= ' and ' if ( $ccl_textbox || $datefrom ); - $ccl_query .= "acqdate,st-date-normalized,le=" . $dateto->output("iso"); + if ($QParser) { + $ccl_query .= ' && ' if ( $ccl_textbox || $datefrom ); + $ccl_query .= "acqdate(-" . $dateto->output("iso") . ')'; + } else { + $ccl_query .= ' and ' if ( $ccl_textbox || $datefrom ); + $ccl_query .= "acqdate,st-date-normalized,le=" . $datefrom->output("iso"); + } } my $offset = $startfrom > 1 ? $startfrom - 1 : 0; ( $error, $marcresults, $total_hits ) = SimpleSearch( $ccl_query, $offset, $resultsperpage ); - if (scalar($marcresults) > 0) { - $show_results = scalar @$marcresults; + if (!defined $error && @{$marcresults} ) { + $show_results = @{$marcresults}; } else { $debug and warn "ERROR label-item-search: no results from SimpleSearch"; @@ -128,7 +139,8 @@ if ($show_results) { foreach my $item ( keys %$item_results ) { #DEBUG Notes: Build an array element 'item' of the correct bib (results) hash which contains item-specific data... if ($item_results->{$item}->{'biblionumber'} eq $results_set[$i]->{'biblionumber'}) { - my $item_data->{'_item_number'} = $item_results->{$item}->{'itemnumber'}; + my $item_data; + $item_data->{'_item_number'} = $item_results->{$item}->{'itemnumber'}; $item_data->{'_item_call_number'} = ($item_results->{$item}->{'itemcallnumber'} ? $item_results->{$item}->{'itemcallnumber'} : 'NA'); $item_data->{'_date_accessioned'} = $item_results->{$item}->{'dateaccessioned'}; $item_data->{'_barcode'} = ( $item_results->{$item}->{'barcode'} ? $item_results->{$item}->{'barcode'} : 'NA'); @@ -140,7 +152,7 @@ if ($show_results) { } else { # FIXME: Some error trapping code needed - syslog("LOG_ERR", "labels/label-item-search.pl : No item numbers retrieved for biblio number: %s", $biblionumber); + warn sprintf('No item numbers retrieved for biblio number: %s', $biblionumber); } } @@ -251,5 +263,4 @@ else { } # Print the page -$template->param( DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); output_html_with_http_headers $query, $cookie, $template->output;