Bug 11677: Use zebra not-onloan-count index for availability limit
authorTomas Cohen Arazi <tomascohen@theke.io>
Mon, 12 Aug 2019 13:43:35 +0000 (10:43 -0300)
committerFridolin Somers <fridolin.somers@biblibre.com>
Thu, 5 Sep 2019 13:08:23 +0000 (15:08 +0200)
commit1fe12aef4d4c676c4a291615e3d5248dd8501014
tree8630c40b7fc8630befede807a4fbd6375295ec34
parentb4858cac96aa0dfad0450cbe72e6b60cbe583779
Bug 11677: Use zebra not-onloan-count index for availability limit

This uses the work from bug 18098 to use the count of not-onloan items to
determine availability.

It keeps the allrecords,AlwaysMatches='' portion of the query so it still catches
records with the tested indexed missing.
These shouldn't exist except in the case of missing data, but kept for future use as well as
it has no negative impact and minimizes the change made.

Note that availability in this sense means not check out and not lost. Transfers, holds, and not for loan statuses
should probably have indexes built in the same way as bug 18098 (there are related FIXMEs in the code)

This updates the export_records file used for testing - adding three records with a not-onloan-count (999$x) of 1,
but marking the item on the third record lost to prevent its return

To test:
   1 - make sure SearchEngine pref is set to 'Zebra'
   2 - Do a search on the OPAC that returns some records
   3 - Find a record in those results with more than one 1 item, and checkout 1 leaving 1 (or more) available
   4 - Find another record with only 1 item, check that item out
   5 - Limit opac search to available items - both records disappear
   6 - Apply patch
   7 - Restart all the things
   8 - Repeat search
   9 - First record should show, but no second
  10 - Mark other items of first record as lost, return items on second record
  11 - Repeat search, first record should not be in results, second should
  12 - prove -v t/db_dependent/Search.t

Signed-off-by: Hayley Mapley <hayleymapley@catalyst.net.nz>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit d4468c5f33f03cbd616527a558c1b67670089642)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
C4/Search.pm
t/db_dependent/Search.t
t/db_dependent/data/marc21/zebraexport/biblio/exported_records