Bugzilla – Attachment 80894 Details for
Bug 21159
Update item shelving location (952$c) on checkout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 21159: Implementing syspref to enable blanking of item shelving location on issue.
Bug-21159-Implementing-syspref-to-enable-blanking-.patch (text/plain), 6.23 KB, created by
Alex Buckley
on 2018-10-19 01:35:26 UTC
(
hide
)
Description:
Bug 21159: Implementing syspref to enable blanking of item shelving location on issue.
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2018-10-19 01:35:26 UTC
Size:
6.23 KB
patch
obsolete
>From cd37afa568a2bd461f20520b16b8746562039c9c Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Mon, 13 Aug 2018 09:41:57 +1200 >Subject: [PATCH] Bug 21159: Implementing syspref to enable blanking of item > shelving location on issue. > >This patch builds upon the functionality implemented in bug 14576, >by allowing library staff to automatically change the item shelving >location of items which are circulated. > >In the case of this patch it automatically blanks the item shelving locations of items >when they are issued if the >BlankItemLocationOnCheckout syspref is enabled. > >t/db_dependent/Circulation/issue.t contains tests for >BlankItemLocationOnCheckout. > >Test plan: >1. Create a new biblio and associated item and set the value of the >shelving location for the item to 'CART' >2. Checkout the item to a user and notice that the status does not >change >3. Apply patches on bug report 14576, and this patch, and run ./updatedatabase.pl inside the koha shell >4. Now return the checked out item (when you updated the database you >added one new syspref: UpdateItemLocationOnCheckout which is off by default) >5. Check the item out again and notice the shelving location is not >changed, showing that when the UpdateItemLocationOnCheckout is not >enabled and the shelving location is not changed upon issue. >6. Enable the aforementioned syspref in the Administration->Global >system preferences->Circulation interface >7. Check out the item and notice the shelving location is changed to no >value, showing when the UpdateItemLocationOnCheckout syspref is enabled >it blanks the shelving location on the issue of an item. >8. Run t/db_dependent/Circulation/issue.t > >Sponsored-By: Toi Ohomai Institute of Technology, New Zealand >--- > C4/Circulation.pm | 5 +++++ > C4/Items.pm | 21 +++++++++++++++++ > .../en/modules/admin/preferences/circulation.pref | 6 +++++ > t/db_dependent/Circulation/issue.t | 26 +++++++++++++++++++++- > 4 files changed, 57 insertions(+), 1 deletion(-) > >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index 6aa727a..cc13311 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -1393,6 +1393,11 @@ sub AddIssue { > } > } > >+ if ( C4::Context->preference('UpdateItemLocationOnCheckout')) { >+ # UpdateItemLocationOnCheckout is on, set the value of the shelving location (items.location) to blank upon checkout >+ BlankShelvingLocation( $item->{itemnumber}); >+ } >+ > ModItem( > { > issues => $item->{'issues'}, >diff --git a/C4/Items.pm b/C4/Items.pm >index f8f8efa..c4e005a 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -49,6 +49,7 @@ BEGIN { > MoveItemFromBiblio > GetLastAcquisitions > CartToShelf >+ BlankShelvingLocation > GetAnalyticsCount > SearchItemsByField > SearchItems >@@ -184,6 +185,26 @@ sub CartToShelf { > } > } > >+=head2 BlankShelvingLocation >+ >+ BlankShelvingLocation($itemnumber); >+ >+Set the value of the shelving location to blank when an item is issued or returned. >+ >+This is called by C4::Circulation->AddIssue if the BlankItemLocationOnCheckout syspref is enabled >+ >+=cut >+ >+sub BlankShelvingLocation { >+ my ($itemnumber) = @_; >+ unless ($itemnumber) { >+ croak "Failed BlankShelvingLocation() - no itemnumber supplied"; >+ } >+ my $item = GetItem($itemnumber); >+ $item->{'location'} = ''; >+ ModItem($item, undef, $itemnumber); >+} >+ > =head2 AddItemFromMarc > > my ($biblionumber, $biblioitemnumber, $itemnumber) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index 87e25bf..337a17e 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -512,6 +512,12 @@ Circulation: > - <br>**Use of an _ALL_ rule will override/ignore any other values** > - <br>Each pair of values should be on a separate line. > - >+ - pref: UpdateItemLocationOnCheckout >+ choices: >+ yes: Blank >+ no: "Don't blank" >+ - Blank the 952$c (shelving location) field of item when it is issued. >+ - > - pref: UpdateNotForLoanStatusOnCheckin > type: textarea > class: code >diff --git a/t/db_dependent/Circulation/issue.t b/t/db_dependent/Circulation/issue.t >index 4f3ec3c..9eaf777 100644 >--- a/t/db_dependent/Circulation/issue.t >+++ b/t/db_dependent/Circulation/issue.t >@@ -17,7 +17,7 @@ > > use Modern::Perl; > >-use Test::More tests => 44; >+use Test::More tests => 46; > use DateTime::Duration; > > use t::lib::Mocks; >@@ -420,7 +420,31 @@ ok( $item2->{location} eq '' , q{UpdateItemLocationOnCheckin updates location va > ok( $item2->{permanent_location} eq '' , q{UpdateItemLocationOnCheckin does not update permanent_location from '' with setting "PROC: _PERM_" } ); > > >+my $itemnumber3; >+($biblionumber, $biblioitemnumber, $itemnumber3) = C4::Items::AddItem( >+ { >+ barcode => 'barcode_5', >+ itemcallnumber => 'callnumber5', >+ homebranch => $branchcode_1, >+ holdingbranch => $branchcode_1, >+ location => 'CART', >+ itype => $itemtype >+ }, >+ $biblionumber >+); >+ >+#BlankItemLocationOnCheckout >+t::lib::Mocks::mock_preference('UpdateItemLocationOnCheckout', 0); >+AddIssue($borrower_1, 'barcode_5', $daysago10, 0 , $today, 0); >+my $item3 = GetItem($itemnumber3); >+ok($item3->{location} eq 'CART', q{UpdateItemLocationOnCheckout does not update item shelving location value from 'CART' to '' when not enabled} ); > >+t::lib::Mocks::mock_preference('UpdateItemLocationOnCheckout', 1); >+if (C4::Context->preference('UpdateItemLocationOnCheckout') ) { >+ BlankShelvingLocation($itemnumber3); >+} >+$item3 = GetItem($itemnumber3); >+ok($item3->{location} eq '', q{UpdateItemLocationOnCheckout updates item shelving location value from 'CART' to '' when enabled} ); > > # Bug 14640 - Cancel the hold on checking out if asked > my $reserve_id = AddReserve($branchcode_1, $borrower_id1, $biblionumber, >-- >2.1.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 21159
:
77487
|
77549
|
77594
|
77775
|
77859
|
77869
|
77870
|
77871
|
80892
|
80893
|
80894
|
80895
|
87037
|
87038
|
87041
|
87693
|
87694
|
87695
|
139097
|
139098
|
139099
|
139103
|
139104
|
139105
|
139106
|
139107
|
139108
|
139109
|
139220
|
146602
|
146603
|
146604
|
146605
|
146606
|
146607
|
146608
|
154147
|
154148
|
154149
|
154150
|
154151
|
154152
|
155284
|
155285
|
155771
|
155772
|
155773
|
155774
|
158146
|
158147
|
158149
|
158150
|
158169
|
158170
|
158171
|
158172
|
158173
|
158521
|
158522