Koha/C4
Ian Walls 850b4eeab9 Bug 6151: Add AllowReturnToBranch system preference
In order to solve the issue of IndependantBranches being incompatible with HomeOrHoldingBranchReturn,
this patch changes the mechanism by which the question "can I return this material here?" is answered.  Before,
the conditions were "if IndependantBranches is on, and this branch isn't HomeOrHoldingBranchReturn for the item,
then no, otherwise yes".  Now, the question is answered by consulting CanBookBeReturned (new subroutine)

New system preference:  AllowReturnToBranch
Possible values:
  - anywhere (default for new installs, and for existing systems with IndependantBranches turned off)
  - homebranch
  - holdingbranch (which is also the issuing branch in all normal circumstances)
  - homeorholdingbranch (default for existing systems with IndependantBranches turned on)

New subroutine:  CanBookBeReturned
Input:  $item hash (from GetItems), and $branchcode
Output: 0 or 1 to indicate "allowed" or not, and an optional message if not allowed.  Message is the 'correct' branchcode
to return the material to

To Test:
1.  Install patch and new syspref
2.  Check that default value of the preference:
    - if IndependantBranches was OFF at install time, should be 'anywhere'
    - if IndependantBranches was ON at install time, should be 'homeorholdingbranch'

Case:  'anywhere'
1.  Checkout a Library A book at Library A.  Return at Library A should be successful
2.  Repeat step 1, returning to Library B.  Return should be successful
3.  Checkout a Library A book at Library B.  Return to A should be successful
4.  Repeat step 3 with Library B and Library C

Case: 'homebranch'
1.  Checkout a Library A book at Library A.  Return at Library A should be successful
2.  Repeat step 1, returning to Library B.  Return should FAIL (returning message to return at A)
3.  Checkout a Library A book at Library B.  Return to Library A should be successful
4.  Repeat step 3 with Library B and Library C.  Both should FAIL (returning message to return at A)

Case: 'holdingbranch'
1.  Checkout a Library A book at Library A.  Return at Library A should be successful
2.  Repeat step 1, returning to Library B.  Return should FAIL (returning message to return at A)
3.  Checkout a Library A book at Library B.  Return to A should FAIL (returning message to return at B)
4.  Repeat step 3 with Library B. Return should be successful
5.  Repeat step 3 with Library C. Return should FAIL (returning message to return at B)

Case: 'homeorholdingbranch'
1.  Checkout a Library A book at Library A.  Return at Library A should be successful
2.  Repeat step 1, returning to Library B.  Return should FAIL (returning message to return at A)
3.  Checkout a Library A book at Library B.  Return to A should be successful
4.  Repeat step 3 with Library B. Return should be successful
5.  Repeat step 3 with Library C. Return should FAIL (returning message to return at A)

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2012-09-17 19:17:41 +02:00
..
AuthoritiesMarc Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Barcodes Bug 8524 follow-up: fix Javascript syntax error 2012-08-31 17:42:48 +02:00
ClassSortRoutine Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Creators Bug 6448 [3/3] EAN-13 barcode labels 2012-08-02 18:41:36 +02:00
External Bug 8679 [REVISED] Remove usage of Amazon API 2012-08-29 16:05:29 +02:00
Form Talking Tech Support - Phase I - Followup - Fix Messaging Preferences 2012-06-10 17:46:58 +02:00
Heading Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
ILSDI Bug 7299 pass itemnumber in ILSDI holditem service 2012-07-06 18:34:36 +02:00
Installer Bug 8649: Add unit test for C4::Search 2012-09-13 11:55:39 +02:00
Labels Bug 6448 [3/3] EAN-13 barcode labels 2012-08-02 18:41:36 +02:00
Linker Bug 8447: Make sure we have enough subfields for broader_headings 2012-09-14 14:56:48 +02:00
Members Bug 7955: Followup : Check the syspref value (avoid sql injection) 2012-08-01 16:06:38 +02:00
OAI Bug 6440: Implement OAI-PMH Sets 2012-03-20 11:38:26 +01:00
Output Fix FSF address in directory C4/ 2010-03-16 20:17:56 -04:00
Patroncards Bug 8315 - remove use C4::* version 2012-07-13 14:17:20 +02:00
Reports Bug 8622: Fix theme fallback 2012-09-05 11:39:14 +02:00
Search Bug 5385: POD Cleanups (part 1) 2010-11-12 10:06:55 +13:00
SIP Bug 8271 teach SIPServer.pm to set its own lib path 2012-07-06 18:28:11 +02:00
Utils Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
VirtualShelves Bug 8719: Private lists always sorted by title 2012-09-14 11:30:29 +02:00
Accounts.pm Bug 7671 : add a real primary key accountlines_id in accountlines 2012-09-15 07:31:58 +02:00
Acquisition.pm Bug 7583: Cancel a receipt 2012-09-13 18:29:20 +02:00
Auth.pm Bug 8679 [REVISED] Remove usage of Amazon API 2012-08-29 16:05:29 +02:00
Auth_cas_servers.yaml.orig Bug 5630 CAS improvements 2011-10-13 10:49:49 +13:00
Auth_with_cas.pm Bug 8279: CAS Debugging improvements 2012-06-27 18:05:02 +02:00
Auth_with_ldap.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
AuthoritiesMarc.pm Bug 8743: ZOOM error when merging authority change to biblios 2012-09-14 15:46:19 +02:00
BackgroundJob.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Barcodes.pm Bug 6448 [2/3] Barcodes::EAN13 autoBarcode 2012-08-02 18:41:44 +02:00
Biblio.pm Bug 8071: link between bib and authorities with the authid 2012-09-14 13:29:14 +02:00
Bookseller.pm Bug 8223 - Properly format SQL query in C4::Bookseller::GetBookSeller 2012-06-20 11:12:29 +02:00
Boolean.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Branch.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Breeding.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Budgets.pm Bug 7304: More permissions for budgets 2012-06-27 16:25:44 +02:00
Calendar.pm Bug 7477: Followup: Fix perlcritic issues 2012-03-19 18:16:40 +01:00
Category.pm Bug 4330 : Adding copyright headers and fixing FSF addresses 2012-05-28 17:54:25 +02:00
Charset.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Circulation.pm Bug 6151: Add AllowReturnToBranch system preference 2012-09-17 19:17:41 +02:00
ClassSortRoutine.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
ClassSource.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Context.pm Revert "Bug 8089: Use Koha::Cache for all caching" 2012-09-12 14:12:41 +02:00
Contract.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Creators.pm Bug 8315 - remove use C4::* version 2012-07-13 14:17:20 +02:00
Csv.pm Bug 7986: Export issues for patron 2012-09-13 17:58:30 +02:00
Dates.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Debug.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Heading.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
HoldsQueue.pm bug_5911: Transport Cost Matrix 2012-09-12 14:49:25 +02:00
Images.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
ImportBatch.pm Bug 7329 [Followup] : when reverting an import, keep matching biblionumber in batch table, if items are not deleted because they are issued. 2012-06-20 09:38:01 +02:00
ImportExportFramework.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Input.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Installer.pm Bug 8315 - remove use C4::* version 2012-07-13 14:17:20 +02:00
ItemCirculationAlertPreference.pm Bug 4330 : Adding copyright headers and fixing FSF addresses 2012-05-28 17:54:25 +02:00
Items.pm Bug 8329 - GetLostItems in C4::Items.pm has a SELECT * Provided a smaller list based on reports/itemlost.tt 2012-08-29 15:34:01 +02:00
ItemType.pm Bug 4330 : Adding copyright headers and fixing FSF addresses 2012-05-28 17:54:25 +02:00
Koha.pm Bug 4173 - Statuses not appearing in the OPAC 2012-09-14 16:37:16 +02:00
Labels.pm Bug 8315 - remove use C4::* version 2012-07-13 14:17:20 +02:00
Languages.pm Revert "Bug 8089: Use Koha::Cache for all caching" 2012-09-12 14:12:41 +02:00
Letters.pm Bug 8378 - <fine> syntax not working on overdues anymore 2012-09-14 17:52:25 +02:00
Linker.pm Bug 7284: Fix unit test broken by erroneous POD 2012-03-08 15:24:18 +01:00
Log.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Maintainance.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Matcher.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Members.pm Bug 8017 reduce manipulation of GetAllIssues return 2012-09-13 18:51:45 +02:00
Message.pm Bug 4330 : Adding copyright headers and fixing FSF addresses 2012-05-28 17:54:25 +02:00
NewsChannels.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Output.pm Bug 8622: Fix theme fallback 2012-09-05 11:39:14 +02:00
Overdues.pm [PATCH] bug_7420: Added overduefinescap to issuingrules 2012-07-25 18:33:20 +02:00
Patroncards.pm Bug 8315 - remove use C4::* version 2012-07-13 14:17:20 +02:00
Print.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Ratings.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Record.pm Bug 7986: Export issues for patron 2012-09-13 17:58:30 +02:00
Reports.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Reserves.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Review.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Ris.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
RotatingCollections.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Scheduler.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Scrubber.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Search.pm Bug 7690: hidelostitems not working in Normal Display 2012-09-17 18:39:08 +02:00
Serials.pm Bug 6655 - Sorting order of serial issues in OPAC 2012-08-02 12:09:33 +02:00
Service.pm POD Cleanups 2010-06-09 08:38:59 -04:00
ShelfBrowser.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
SMS.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
SocialData.pm bug 7470 follow-up, fix POD doc 2012-03-26 17:53:28 +02:00
SQLHelper.pm Revert "Bug 8089: Use Koha::Cache for all caching" 2012-09-12 14:12:41 +02:00
Stats.pm Bug 4118 - Add Collection Code to Statistics Table 2012-09-13 18:42:46 +02:00
Suggestions.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Tags.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Templates.pm Bug 8623: Move YUI out of prog 2012-09-05 12:04:13 +02:00
TmplToken.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
TmplTokenType.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
TTParser.pm Bug 5327 : Follow up for TTParser test 2012-07-12 16:06:21 +02:00
UploadedFile.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
Utils.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
VirtualShelves.pm Bug 8706 - Private lists can be accessed by anyone 2012-09-05 15:29:51 +02:00
XISBN.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00
XSLT.pm Bug 8622: Fix theme fallback 2012-09-05 11:39:14 +02:00
Z3950.pm Bug 7941 : Fix version numbers in modules 2012-06-11 17:29:38 +02:00