X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fhistsearch.pl;h=9261379493fccd46cd69961f26c4c240df852350;hb=f59484df2246c0ee11c5d44f2dca762908864fe8;hp=ff68599f45a877e118e5d2a6de3631ee92dec326;hpb=c8df6bdcc9fe2523a77c839270b31304d8e13ee5;p=koha.git diff --git a/acqui/histsearch.pl b/acqui/histsearch.pl index ff68599f45..9261379493 100755 --- a/acqui/histsearch.pl +++ b/acqui/histsearch.pl @@ -2,21 +2,21 @@ # This file is part of Koha. # +# Copyright 2004 Biblibre # Parts copyright 2011 Catalyst IT Ltd. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY 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, see . =head1 NAME @@ -51,82 +51,102 @@ to filter on ended date. use strict; #use warnings; FIXME - Bug 2505 -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; # get_template_and_user use C4::Output; use C4::Acquisition; -use C4::Dates; use C4::Debug; +use C4::Koha; +use Koha::DateUtils; my $input = new CGI; my $title = $input->param( 'title'); my $author = $input->param('author'); -my $isbn = $input->param('isbn'); +my $isbn = $input->param('isbn'); my $name = $input->param( 'name' ); +my $ean = $input->param('ean'); my $basket = $input->param( 'basket' ); +my $basketgroupname = $input->param('basketgroupname'); my $booksellerinvoicenumber = $input->param( 'booksellerinvoicenumber' ); -my $from_placed_on = $input->param('from'); -$from_placed_on = C4::Dates->new($from_placed_on) if $from_placed_on; -my $to_placed_on = $input->param('to'); -$to_placed_on = C4::Dates->new($to_placed_on) if $to_placed_on; +my $do_search = $input->param('do_search') || 0; +my $budget = $input->param( 'budget' ); +my $orderstatus = $input->param( 'orderstatus' ); +my $ordernumber = $input->param( 'ordernumber' ); +my $search_children_too = $input->param( 'search_children_too' ); +my @created_by = $input->multi_param('created_by'); + +my $from_placed_on = eval { dt_from_string( scalar $input->param('from') ) } || dt_from_string; +my $to_placed_on = eval { dt_from_string( scalar $input->param('to') ) } || dt_from_string; +unless ( $input->param('from') ) { + # Fill the form with year-1 + $from_placed_on->subtract( years => 1 ); +} my $dbh = C4::Context->dbh; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "acqui/histsearch.tmpl", + template_name => "acqui/histsearch.tt", query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { acquisition => 1 }, + flagsrequired => { acquisition => '*' }, debug => 1, } ); -my ( $from_iso, $to_iso, $d ); -if ( $d = $input->param('from') ) { - $from_iso = C4::Dates->new($d)->output('iso'); -} -if ( $d = $input->param('iso') ) { - $to_iso = C4::Dates->new($d)->output('iso'); -} - -my ( $order_loop, $total_qty, $total_price, $total_qtyreceived ); +my $order_loop; # If we're supplied any value then we do a search. Otherwise we don't. -my $do_search = $title || $author || $isbn || $name || $basket || $booksellerinvoicenumber || - $from_placed_on || $to_placed_on; if ($do_search) { - ( $order_loop, $total_qty, $total_price, $total_qtyreceived ) = GetHistory( + $order_loop = GetHistory( title => $title, author => $author, - isbn => $isbn, + isbn => $isbn, + ean => $ean, name => $name, - from_placed_on => $from_iso, - to_placed_on => $to_iso, + from_placed_on => output_pref( { dt => $from_placed_on, dateformat => 'iso', dateonly => 1 } ), + to_placed_on => output_pref( { dt => $to_placed_on, dateformat => 'iso', dateonly => 1 } ), basket => $basket, booksellerinvoicenumber => $booksellerinvoicenumber, + basketgroupname => $basketgroupname, + budget => $budget, + orderstatus => $orderstatus, + ordernumber => $ordernumber, + search_children_too => $search_children_too, + created_by => \@created_by, ); } -my $from_date = $from_placed_on ? $from_placed_on->output('syspref') : undef; -my $to_date = $to_placed_on ? $to_placed_on->output('syspref') : undef; +my $budgetperiods = C4::Budgets::GetBudgetPeriods; +my $bp_loop = $budgetperiods; +for my $bp ( @{$budgetperiods} ) { + my $hierarchy = C4::Budgets::GetBudgetHierarchy( $$bp{budget_period_id} ); + for my $budget ( @{$hierarchy} ) { + $$budget{budget_display_name} = sprintf("%s", ">" x $$budget{depth} . $$budget{budget_name}); + } + $$bp{hierarchy} = $hierarchy; +} $template->param( - suggestions_loop => $order_loop, - total_qty => $total_qty, - total_qtyreceived => $total_qtyreceived, - total_price => sprintf( "%.2f", $total_price ), + order_loop => $order_loop, numresults => $order_loop ? scalar(@$order_loop) : undef, title => $title, author => $author, - isbn => $isbn, + isbn => $isbn, + ean => $ean, name => $name, basket => $basket, booksellerinvoicenumber => $booksellerinvoicenumber, - from_placed_on => $from_date, - to_placed_on => $to_date, - DHTMLcalendar_dateformat=> C4::Dates->DHTMLcalendar(), - dateformat => C4::Dates->new()->format(), + basketgroupname => $basketgroupname, + ordernumber => $ordernumber, + search_children_too => $search_children_too, + from_placed_on => $from_placed_on, + to_placed_on => $to_placed_on, + orderstatus => $orderstatus, + budget_id => $budget, + bp_loop => $bp_loop, + search_done => $do_search, debug => $debug || $input->param('debug') || 0, + uc(C4::Context->preference("marcflavour")) => 1 ); output_html_with_http_headers $input, $cookie, $template->output;