Bugzilla – Attachment 40255 Details for
Bug 14393
Add collection code filter to inventory
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[Signed-off] Bug 14393 - Add collection code filter to inventory
Signed-off-Bug-14393---Add-collection-code-filter-.patch (text/plain), 8.90 KB, created by
Marc Véron
on 2015-06-18 08:48:46 UTC
(
hide
)
Description:
[Signed-off] Bug 14393 - Add collection code filter to inventory
Filename:
MIME Type:
Creator:
Marc Véron
Created:
2015-06-18 08:48:46 UTC
Size:
8.90 KB
patch
obsolete
>From 63b4978a8508e4d67b57792c7ec8784031e52c27 Mon Sep 17 00:00:00 2001 >From: David Cook <dcook@prosentient.com.au> >Date: Wed, 17 Jun 2015 14:50:14 +1000 >Subject: [PATCH] [Signed-off] Bug 14393 - Add collection code filter to > inventory >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >This patch adds the ability to do inventory by collection. > >_TEST PLAN_ > >Before applying: >1) Go to "Tools > Inventory/stocktaking" >2) Note that there is no "Collection code:" option > >Optionally: >2b) You can create a Barcode file with a single barcode >2c) Don't select anything from "Select items you want to check" (or filter if you know >how to filter to make it faster... doesn't matter) >2d) Click "Submit" at the bottom of the screen >2e) Note that there is no "Collection code" column in the screen output or CSV output >(ie with/without the "Export to CSV file" box ticked before submitting) > >Apply the patch. > >After applying: >3) Note that there is a "Collection code" filter on the main inventory screen >4) Create a Barcode file with a single barcode for an item with a collection >and upload it using the "Choose file" button. >5) Select that item's collection code from the "Collection code" filter >6) Click "Submit" >7) Note that the screen output and the CSV output contains a "Collection code" column >(ie with/without the "Export to CSV file" box ticked before submitting) > >Followed test plan. Works as expected. >Signed-off-by: Marc Véron <veron@veron.ch> >--- > C4/Items.pm | 8 +++++++- > .../prog/en/modules/tools/inventory.tt | 19 +++++++++++++++++++ > tools/inventory.pl | 16 ++++++++++++---- > 3 files changed, 38 insertions(+), 5 deletions(-) > >diff --git a/C4/Items.pm b/C4/Items.pm >index d1a866b..cd87b76 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -1068,12 +1068,13 @@ sub GetItemsForInventory { > my $size = $parameters->{'size'} // ''; > my $statushash = $parameters->{'statushash'} // ''; > my $interface = $parameters->{'interface'} // ''; >+ my $ccode = $parameters->{'ccode'} // ''; > > my $dbh = C4::Context->dbh; > my ( @bind_params, @where_strings ); > > my $select_columns = q{ >- SELECT items.itemnumber, barcode, itemcallnumber, title, author, biblio.biblionumber, biblio.frameworkcode, datelastseen, homebranch, location, notforloan, damaged, itemlost, withdrawn, stocknumber >+ SELECT items.itemnumber, barcode, itemcallnumber, title, author, biblio.biblionumber, biblio.frameworkcode, datelastseen, homebranch, location, notforloan, damaged, itemlost, withdrawn, stocknumber, ccode > }; > my $select_count = q{SELECT COUNT(*)}; > my $query = q{ >@@ -1090,6 +1091,11 @@ sub GetItemsForInventory { > } > } > >+ if ($ccode){ >+ push @where_strings, 'ccode = ?'; >+ push @bind_params, $ccode; >+ } >+ > if ($minlocation) { > push @where_strings, 'itemcallnumber >= ?'; > push @bind_params, $minlocation; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt >index fdac5fa..a7f9a24 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt >@@ -14,6 +14,7 @@ function checkForm() { > if ( !( > $('#branchloop').val() || > $('#locationloop').val() || >+ $('#ccodeloop').val() || > $('#minlocation').val() || > $('#maxlocation').val() || > $('#statuses input:checked').length >@@ -163,6 +164,19 @@ $(document).ready(function(){ > </select> </li> > [% END %] > <li> >+ <label for="ccode">Collection code: </label> >+ <select id="ccodeloop" name="ccode"> >+ <option value="">Filter collection code</option> >+ [% FOREACH ccode_value IN ccode_list %] >+ [% IF (ccode == ccode_value) %] >+ <option value="[% ccode_value.authorised_value %]" selected="selected">[% ccode_value.lib %]</option> >+ [% ELSE %] >+ <option value="[% ccode_value.authorised_value %]">[% ccode_value.lib %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ <li> > <label for="minlocation">Item callnumber between: </label> > <input type="text" name="minlocation" id="minlocation" value="[% minlocation %]" /> (items.itemcallnumber) </li> > <li><label for="maxlocation">...and: </label> >@@ -231,6 +245,7 @@ $(document).ready(function(){ > <input type="hidden" name="location" value="[% location %]" /> > <input type="hidden" name="branchcode" value="[% branchcode %]" /> > <input type="hidden" name="datelastseen" value="[% datelastseen %]" /> >+ <input type="hidden" name="ccode" value="[% ccode %]" /> > > [% UNLESS compareinv2barcd %] > <div><a href="#" class="checkall">[Select all]</a> <a href="#" class="clearall">[Clear all]</a></div> >@@ -242,6 +257,7 @@ $(document).ready(function(){ > [% UNLESS compareinv2barcd %]<th>Seen</th>[% END %] > <th>Barcode</th> > <th>Library</th> >+ <th>Collection code</th> > <th>Title</th> > <th>Status</th> > <th>Lost</th> >@@ -267,6 +283,9 @@ $(document).ready(function(){ > [% result.location | html %] [% IF ( result.itemcallnumber ) %][[% result.itemcallnumber | html %]][% ELSE %][% END %] > </td> > <td> >+ [% result.ccode | html %] >+ </td> >+ <td> > <p><a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% result.biblionumber %]" class="openWin">[% result.title | html %]</a></p><p>[% result.author | html %]</p> > </td> > <td> >diff --git a/tools/inventory.pl b/tools/inventory.pl >index 63e1da1..494c34a 100755 >--- a/tools/inventory.pl >+++ b/tools/inventory.pl >@@ -52,6 +52,7 @@ my $branchcode = $input->param('branchcode') || ''; > my $branch = $input->param('branch'); > my $op = $input->param('op'); > my $compareinv2barcd = $input->param('compareinv2barcd'); >+my $ccode = $input->param('ccode'); > > my ( $template, $borrowernumber, $cookie ) = get_template_and_user( > { template_name => "tools/inventory.tt", >@@ -92,6 +93,10 @@ for my $fwk (keys %$frameworks){ > } > } > >+my $collection_authorised_value = C4::Koha::GetAuthValCode("items.ccode"); >+my $collections = C4::Koha::GetAuthorisedValues($collection_authorised_value) // []; >+$template->param( ccode_list => $collections ); >+ > my $statuses = []; > for my $statfield (qw/items.notforloan items.itemlost items.withdrawn items.damaged/){ > my $hash = {}; >@@ -138,7 +143,8 @@ $template->param( > branch => $branch, > datelastseen => $datelastseen, > compareinv2barcd => $compareinv2barcd, >- notforloanlist => $notforloanlist >+ notforloanlist => $notforloanlist, >+ ccode => $ccode, > ); > > my @notforloans; >@@ -253,9 +259,10 @@ if ( $markseen or $op ) { > size => undef, > statushash => $staton, > interface => 'staff', >+ ccode => $ccode, > } ); > >- # For the items that may be marked as "wrong place", we only check the location (callnumbers, location and branch) >+ # For the items that may be marked as "wrong place", we only check the location (callnumbers, location, ccode and branch) > ($wrongplacelist, $totalrecords) = GetItemsForInventory( { > minlocation => $minlocation, > maxlocation => $maxlocation, >@@ -269,6 +276,7 @@ if ( $markseen or $op ) { > size => undef, > statushash => undef, > interface => 'staff', >+ ccode => $ccode, > } ); > > } >@@ -382,7 +390,7 @@ if (defined $input->param('CSVexport') && $input->param('CSVexport') eq 'on'){ > my @translated_keys; > for my $key (qw / biblioitems.title biblio.author > items.barcode items.itemnumber >- items.homebranch items.location >+ items.homebranch items.location items.ccode > items.itemcallnumber items.notforloan > items.itemlost items.damaged > items.withdrawn items.stocknumber >@@ -394,7 +402,7 @@ if (defined $input->param('CSVexport') && $input->param('CSVexport') eq 'on'){ > $csv->combine(@translated_keys); > print $csv->string, "\n"; > >- my @keys = qw / title author barcode itemnumber homebranch location itemcallnumber notforloan lost damaged withdrawn stocknumber /; >+ my @keys = qw / title author barcode itemnumber homebranch location ccode itemcallnumber notforloan lost damaged withdrawn stocknumber /; > for my $item ( @results ) { > my @line; > for my $key (@keys) { >-- >1.7.10.4
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 14393
:
40209
|
40255
|
40958
|
44772
|
131025
|
131627
|
131628
|
132791
|
132792