Bugzilla – Attachment 93583 Details for
Bug 14669
Search orders by managing library
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 14669: Add search option for managing library to orders search
Bug-14669-Add-search-option-for-managing-library-t.patch (text/plain), 8.87 KB, created by
Alex Sassmannshausen
on 2019-10-03 12:21:16 UTC
(
hide
)
Description:
Bug 14669: Add search option for managing library to orders search
Filename:
MIME Type:
Creator:
Alex Sassmannshausen
Created:
2019-10-03 12:21:16 UTC
Size:
8.87 KB
patch
obsolete
>From 028bee56563e977867cb18ff77bb05bb5d8a9445 Mon Sep 17 00:00:00 2001 >From: Katrin Fischer <katrin.fischer.83@web.de> >Date: Sat, 11 May 2019 21:08:11 +0000 >Subject: [PATCH] Bug 14669: Add search option for managing library to orders > search > >Currently the order search can't be limited by managing library. >The patch adds the search option to the order history search form >and a column for the managing library to the search results table. > >To test: >- Create some baskets with orders > - Set managing library for some, but also have some without >- Apply patch >- prove t/db_dependent/Acquisition.t >- Go to Aquisition > Orders search tab on top > Advanced search link >- Search for orders without limiting > Orders with and without managing library set should show up >- Limit search to a specific managing library >- Verify results match expectations >--- > C4/Acquisition.pm | 11 +++++- > acqui/histsearch.pl | 6 ++-- > .../prog/en/includes/filter-orders.inc | 8 +++++ > .../prog/en/modules/acqui/histsearch.tt | 5 ++- > t/db_dependent/Acquisition.t | 40 +++++++++++++++++++++- > 5 files changed, 65 insertions(+), 5 deletions(-) > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index 4122c5da27..75429e7e22 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -2276,6 +2276,7 @@ params: > budget > orderstatus (note that orderstatus '' will retrieve orders > of any status except cancelled) >+ managing_library > biblionumber > get_canceled_order (if set to a true value, cancelled orders will > be included) >@@ -2296,7 +2297,8 @@ returns: > 'ordernumber' => '1', > 'quantity' => 1, > 'quantityreceived' => undef, >- 'title' => 'The Adventures of Huckleberry Finn' >+ 'title' => 'The Adventures of Huckleberry Finn', >+ 'managing_library' => 'CPL' > } > > =cut >@@ -2322,6 +2324,7 @@ sub GetHistory { > my $ordernumber = $params{ordernumber}; > my $search_children_too = $params{search_children_too} || 0; > my $created_by = $params{created_by} || []; >+ my $managing_library = $params{managing_library}; > my $ordernumbers = $params{ordernumbers} || []; > my $additional_fields = $params{additional_fields} // []; > >@@ -2358,6 +2361,7 @@ sub GetHistory { > aqbasket.basketgroupid, > aqbasket.authorisedby, > concat( borrowers.firstname,' ',borrowers.surname) AS authorisedbyname, >+ branch as managing_library, > aqbasketgroups.name as groupname, > aqbooksellers.name, > aqbasket.creationdate, >@@ -2484,6 +2488,11 @@ sub GetHistory { > push @query_params, @$created_by; > } > >+ if ( $managing_library ) { >+ $query .= " AND aqbasket.branch = ? "; >+ push @query_params, $managing_library; >+ } >+ > if ( @$ordernumbers ) { > $query .= ' AND (aqorders.ordernumber IN ( ' . join (',', ('?') x @$ordernumbers ) . '))'; > push @query_params, @$ordernumbers; >diff --git a/acqui/histsearch.pl b/acqui/histsearch.pl >index 93bca344fd..1f097d828f 100755 >--- a/acqui/histsearch.pl >+++ b/acqui/histsearch.pl >@@ -89,15 +89,17 @@ my $filters = { > ordernumber => scalar $input->param('ordernumber'), > search_children_too => scalar $input->param('search_children_too'), > created_by => [ $input->multi_param('created_by') ], >+ managing_library => scalar $input->param('managing_library'), > }; >+ > 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->set_time_zone('floating')->subtract( years => 1 ); > } >-$filters->{from_placed_on} = output_pref( { dt => $from_placed_on, dateformat => 'iso', dateonly => 1 } ), >-$filters->{to_placed_on} = output_pref( { dt => $to_placed_on, dateformat => 'iso', dateonly => 1 } ), >+$filters->{from_placed_on} = output_pref( { dt => $from_placed_on, dateformat => 'iso', dateonly => 1 } ); >+$filters->{to_placed_on} = output_pref( { dt => $to_placed_on, dateformat => 'iso', dateonly => 1 } ); > my @additional_fields = Koha::AdditionalFields->search( { tablename => 'aqbasket', searchable => 1 } ); > $template->param( available_additional_fields => \@additional_fields ); > my @additional_field_filters; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/filter-orders.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/filter-orders.inc >index 8cc68b5df1..ec62b1af0c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/filter-orders.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/filter-orders.inc >@@ -1,4 +1,5 @@ > [% USE Koha %] >+[% USE Branches %] > [% USE KohaDates %] > <ol> > <li><label for="title">Title: </label> <input type="text" name="title" id="title" value="[% filters.title | html %]" /></li> >@@ -15,6 +16,13 @@ > <div id="basket_creators" style="float:left;"></div> > </div> > </li> >+ <li> >+ <label for="managing_library">Managing library: </label> >+ <select name="managing_library" id="managing_library"> >+ <option value="">Any library</option> >+ [% PROCESS options_for_libraries libraries => Branches.all(selected => '') %] >+ </select> >+ </li> > <li><label for="booksellerinvoicenumber ">Bookseller invoice no: </label> <input type="text" name="booksellerinvoicenumber" id="booksellerinvoicenumber" value="[% filters.booksellerinvoicenumber | html %]" /></li> > <li> > <label for="basketgroupname">Basket group:</label> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >index 8a227a144d..805a6d2c1d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >@@ -2,6 +2,7 @@ > [% USE Asset %] > [% USE KohaDates %] > [% USE ColumnsSettings %] >+[% USE Branches %] > [% SET footerjs = 1 %] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Acquisitions › [% IF ( order_loop ) %]Orders search › Search results[% ELSE %]Order search[% END %]</title> >@@ -38,7 +39,8 @@ > <th>Status</th> > <th>Basket</th> > <th>Basket creator</th> >- <th>Basket group</th> >+ <th>Basket group</th> >+ <th>Managing library</th> > <th>Invoice number</th> > <th class="anti-the">Summary</th> > <th>Vendor</th> >@@ -75,6 +77,7 @@ > > [% END %] > </td> >+ <td>[% Branches.GetName(order.managing_library) | html %]</td> > <td>[% IF ( order.invoicenumber ) %] > <a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% order.invoiceid | uri %]">[% order.invoicenumber | html %]</a> > [% ELSE %] >diff --git a/t/db_dependent/Acquisition.t b/t/db_dependent/Acquisition.t >index b6fe38d3e9..781a235ada 100755 >--- a/t/db_dependent/Acquisition.t >+++ b/t/db_dependent/Acquisition.t >@@ -19,7 +19,7 @@ use Modern::Perl; > > use POSIX qw(strftime); > >-use Test::More tests => 77; >+use Test::More tests => 78; > use t::lib::Mocks; > use Koha::Database; > use Koha::Acquisition::Basket; >@@ -838,4 +838,42 @@ subtest 'Test for get_rounded_price' => sub { > is( $rounded_result3, $round_down_price, "Price ($down_price) was correctly rounded ($rounded_result3)" ); > > }; >+ >+subtest 'GetHistory - managing library' => sub { >+ >+ plan tests => 1; >+ >+ my $orders = GetHistory(managing_library => 'CPL'); >+ >+ my $builder = t::lib::TestBuilder->new; >+ >+ my $order_basket1 = $builder->build({ source => 'Aqbasket', value => { branch => 'CPL' } }); >+ my $orderinfo1 ={ >+ basketno => $order_basket1->{basketno}, >+ rrp => 19.99, >+ replacementprice => undef, >+ quantity => 1, >+ quantityreceived => 0, >+ datereceived => undef, >+ datecancellationprinted => undef, >+ }; >+ my $order1 = $builder->build({ source => 'Aqorder', value => $orderinfo1 }); >+ >+ my $order_basket2 = $builder->build({ source => 'Aqbasket', value => { branch => 'LIB' } }); >+ my $orderinfo2 ={ >+ basketno => $order_basket2->{basketno}, >+ rrp => 19.99, >+ replacementprice => undef, >+ quantity => 1, >+ quantityreceived => 0, >+ datereceived => undef, >+ datecancellationprinted => undef, >+ }; >+ my $order2 = $builder->build({ source => 'Aqorder', value => $orderinfo2 }); >+ >+ my $history = GetHistory(managing_library => 'CPL'); >+ is( scalar( @$history), scalar ( @$orders ) +1, "GetHistory returns number of orders"); >+ >+}; >+ > $schema->storage->txn_rollback(); >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 14669
:
87477
|
89619
|
90262
|
92343
|
93583
|
93587
|
93669
|
93907