Created attachment 60812 [details] [review] Bug 18208: Add RecordProcessor filter to inject not onloan count to MARC records This patch adds a new filter for MARC records to be used with Koha::RecordProcessor. It's purpose is to inject the information about items not-onloan in a fixed subfield, 999$x. To test: - Apply the patch - Run: $ prove t/db_dependent/Koha/Filter/EmbedItemsAvailability.t => SUCCESS: Tests pass! - Sign off :-D Sponsored-by: ByWater Solutions
Created attachment 60815 [details] [review] Bug 18208: Add RecordProcessor filter to inject not onloan count to MARC records This patch adds a new filter for MARC records to be used with Koha::RecordProcessor. It's purpose is to inject the information about items not-onloan in a fixed subfield, 999$x. To test: - Apply the patch - Run: $ prove t/db_dependent/Koha/Filter/EmbedItemsAvailability.t => SUCCESS: Tests pass! - Sign off :-D Sponsored-by: ByWater Solutions Followed test plan, test passes OK Signed-off-by: Marc Véron <veron@veron.ch>
my $items = Koha::Items->search({ biblionumber => $biblionumber }); + + while ( my $item = $items->next ) { + $not_onloan_items++ + if not $item->onloan; + } Can't you combine that in one statement? In general: Do I understand correctly that this is not an optional filter? We will always save the not onloan count to 999$x? Can you also add some explanation on this report why we definitely need it? At this point we are not using it in the codebase. But if we should do after some time, would it feel good to rely on a field in the search engine when we can generate the count in one Koha::Items call ? No blockers, just convince me..
(In reply to Marcel de Rooy from comment #3) > my $items = Koha::Items->search({ biblionumber => $biblionumber }); > + > + while ( my $item = $items->next ) { > + $not_onloan_items++ > + if not $item->onloan; > + } > Can't you combine that in one statement? > > In general: Do I understand correctly that this is not an optional filter? > We will always save the not onloan count to 999$x? > Can you also add some explanation on this report why we definitely need it? > At this point we are not using it in the codebase. But if we should do after > some time, would it feel good to rely on a field in the search engine when > we can generate the count in one Koha::Items call ? > No blockers, just convince me.. The record will always inject that. And is going to be used on indexing only. See bug 18098. When it comes to filtering search results (records with available items this time) we need the index for being able to build the filtering query. We already do that but the query is not working, and this way writing the query seems straightfowrad. Just check if the index has a value higher than 0. Period. RecordProcessor filters should be used for lots of things (specially stuff done in C4::Biblios) like embedding items...
Created attachment 61964 [details] [review] Bug 18208: Add RecordProcessor filter to inject not onloan count to MARC records This patch adds a new filter for MARC records to be used with Koha::RecordProcessor. It's purpose is to inject the information about items not-onloan in a fixed subfield, 999$x. To test: - Apply the patch - Run: $ prove t/db_dependent/Koha/Filter/EmbedItemsAvailability.t => SUCCESS: Tests pass! - Sign off :-D Sponsored-by: ByWater Solutions Followed test plan, test passes OK Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 61965 [details] [review] Bug 18208: [QA Follow-up] Get count from Koha::Items Removes the loop by moving the onloan test to the query. Test plan: Run the test again. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Pushed to master for 17.05, thanks Tomas, Marcel!
This won't get ported back to 16.11.x as it is an enhancement.