What's wrong: ------------- The current behavior in the inventory tool for item statuses is wrong on two points: 1) "item not scanned" status: when calling GetItemsForInventory, datelastseen should be used when "compare barcodes list to result" is checked. Otherwise, when loading multiple barcodes files for the same inventory, many items will be marked as "item not scanned" when loading the last barcode file ("compare barcodes list to result" checked) even though they were scanned. 2) "wrong place" status: when searching for wrongly placed items, we should only check for the location (callnumbers, location and branch). To fix this, A new call to GetItemsForInventory has been made with location filters only. Otherwise, any item with a different itemtype for instance will be marked as wrong place even if the location is correct. Test plan: ---------- Providing a strict and precise test plan is quite hard, as it is strongly dependant of your database, but you can check as follow: "item not scanned" status: 1) Split a barcode file in two. 2) Load the first barcode file without checking "compare barcodes list to result". 3) Load the second barcode file with "compare barcodes list to result" checked. 4) Check in the csv report that you have a lot of scanned items with the "item not scanned" status. Then apply the patch, do the same, and check that the false "item not scanned" statuses are gone. "wrong place" status: 1) Load a barcode file with barcode matching an item that has a correct location, but a different itemtype than what you're looking for. 2) Check in the results that this item will be marked as "change item status" and "wrong place". Then apply the patch, do the same, and check that the only status for this item is "change item status", which is correct. Remarks: -------- I'm expecting concerns about the fact that GetItemsForInventory is now called twice instead of once, but keep in mind that inventory is a quite rare operation. Also, I did not manage to find a more efficient way to fix this wrong behavior, suggestions welcome.
Created attachment 29976 [details] [review] Inventory: fix "wrong place" and "item not scanned"
Afraid we don't have anyone using this feature, so I'm not really in the best position to sign-off on it. Maybe a mail to the dev list might stir some interest?
Patch tested with a sandbox, by sonia.bouis@univ-lyon3.fr <2>
Created attachment 34236 [details] [review] Bug 12567: Make catalog statistics wizard publication year work for MARC21 Publication year was useless for MARC21, as it was using the biblioitems.publicationyear (UNIMARC) instead of biblio.copyrightdate (MARC21). This patch tries to fix the search options to work for both MARC flavours. To test: In Reports > Statistics wizards > Catalog: - Test the publication year search options on a UNIMARC and a MARC21 installation. - Make sure search results make sense for both. Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> The changes are fine with me, but this script is certainly not bug free. Also note that all its SQL should be moved out according to our coding guidelines. When doing so, a rewrite would be appropriate. Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com> Signed-off-by: sonia.bouis@univ-lyon3.fr <2>
Sonia, did you want to signoff this patch?
no, I didn't sign off, it was the "sandbox bug"
Created attachment 35859 [details] [review] BZ12631: Inventory: fix "wrong place" and "item not scanned" "item not scanned": when calling GetItemsForInventory, datelastseen should be used when "compare barcodes list to result" is checked. Otherwise, when loading multiple barcodes files for the same inventory, many items will be marked as "item not scanned" when loading the last barcode file ("compare barcodes list to result" checked) even though they were scanned. "wrong place": when searching for wrongly placed items, we should only check for the location (callnumbers, location and branch). To fix this, A new call to GetItemsForInventory has been made with location filters only. Otherwise, any item with a different itemtype for instance will be marked as wrong place even if the location is correct. Test plan: "item not scanned" status: 1) Split a barcode file in two. 2) Load the first barcode file without checking "compare barcodes list to result". 3) Load the second barcode file with "compare barcodes list to result" checked. 4) Check in the csv report that you have a lot of scanned items with the "item not scanned" status. Then apply the patch, do the same, and check that the false "item not scanned" statuses are gone. "wrong place" status: 1) Load a barcode file with barcode matching an item that has a correct location, but a different itemtype than what you're looking for. 2) Check in the results that this item will be marked as "change item status" and "wrong place". Then apply the patch, do the same, and check that the only status for this item is "change item status", which is correct. Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
(In reply to Brendan Gallagher from comment #7) > Created attachment 35859 [details] [review] [review] > BZ12631: Inventory: fix "wrong place" and "item not scanned" > > "item not scanned": when calling GetItemsForInventory, datelastseen should > be used when "compare barcodes list to result" is checked. > > Otherwise, when loading multiple barcodes files for the same inventory, many > items will be marked as "item not scanned" when loading the last barcode > file > ("compare barcodes list to result" checked) even though they were scanned. > > "wrong place": when searching for wrongly placed items, we should only check > for the location (callnumbers, location and branch). To fix this, A new call > to GetItemsForInventory has been made with location filters only. > > Otherwise, any item with a different itemtype for instance will be marked as > wrong place even if the location is correct. > > Test plan: > > "item not scanned" status: > > 1) Split a barcode file in two. > 2) Load the first barcode file without checking "compare barcodes list to > result". > 3) Load the second barcode file with "compare barcodes list to result" > checked. > 4) Check in the csv report that you have a lot of scanned items with the > "item > not scanned" status. > > Then apply the patch, do the same, and check that the false "item not > scanned" > statuses are gone. > > "wrong place" status: > > 1) Load a barcode file with barcode matching an item that has a correct > location, but a different itemtype than what you're looking for. > 2) Check in the results that this item will be marked as "change item status" > and "wrong place". > > Then apply the patch, do the same, and check that the only status for this > item is "change item status", which is correct. > > Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com> I recently had a support ticket that dealt with inventory, so I easily had a few copies of barcodes. I split into two and followed the test plan. Excellent timing.
Created attachment 36082 [details] [review] [PASSED QA] Bug 12631: Inventory: fix "wrong place" and "item not scanned" "item not scanned": when calling GetItemsForInventory, datelastseen should be used when "compare barcodes list to result" is checked. Otherwise, when loading multiple barcodes files for the same inventory, many items will be marked as "item not scanned" when loading the last barcode file ("compare barcodes list to result" checked) even though they were scanned. "wrong place": when searching for wrongly placed items, we should only check for the location (callnumbers, location and branch). To fix this, A new call to GetItemsForInventory has been made with location filters only. Otherwise, any item with a different itemtype for instance will be marked as wrong place even if the location is correct. Test plan: "item not scanned" status: 1) Split a barcode file in two. 2) Load the first barcode file without checking "compare barcodes list to result". 3) Load the second barcode file with "compare barcodes list to result" checked. 4) Check in the csv report that you have a lot of scanned items with the "item not scanned" status. Then apply the patch, do the same, and check that the false "item not scanned" statuses are gone. "wrong place" status: 1) Load a barcode file with barcode matching an item that has a correct location, but a different itemtype than what you're looking for. 2) Check in the results that this item will be marked as "change item status" and "wrong place". Then apply the patch, do the same, and check that the only status for this item is "change item status", which is correct. Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Patch pushed to master. Thanks for the pastis Matthias!
Pushed to 3.18.x will be in 3.18.5
Pushed to 3.16.x, will be in 3.16.9
Pushed to 3.14, will be in 3.14.15.