pull list: difference between displayed and printed list

Bug #1858698 reported by Galen Charlton
38
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Evergreen
Won't Fix
Medium
Unassigned

Bug Description

The web staff client's hold pull list can display holds that are not included in the printout when the "Print Full List" button is clicked.

In particular, if a patron whose hold is capturable has a standing penalty that blocks CAPTURE, the standing penalty's org_depth will influence whether the hold is displayed on the grid or not. The grid does a fielder query of the ahopl IDL class, which in turn does the following to exclude patrons that have a standing penalty:

        LEFT JOIN config.standing_penalty csp
            ON (
                csp.id = ausp.standing_penalty AND
                csp.block_list LIKE '%CAPTURE%' AND (
                    (csp.org_depth IS NULL AND ahr.pickup_lib = ausp.org_unit) OR
                    (csp.org_depth IS NOT NULL AND ahr.pickup_lib IN (
                        SELECT id FROM actor.org_unit_descendants(ausp.org_unit, csp.org_depth))
                    )
                )
            )
  ...
        WHERE

  ...
            csp.id IS NULL AND

However, the method that is used to print pull lists fetches the list using open-ils.circ.hold_pull_list.fleshed.stream, which ultimately does *not* query ahopl. Instead, it uses a query that contains:

            LEFT JOIN actor.usr_standing_penalty ausp
                ON ( au.id = ausp.usr AND ( ausp.stop_date IS NULL OR ausp.stop_date > NOW() ) )
            LEFT JOIN config.standing_penalty csp
                ON ( csp.id = ausp.standing_penalty AND csp.block_list LIKE '%CAPTURE%' )
            $addl_join
          WHERE hm.target_copy = ?
  ...
            AND csp.id IS NULL

Consequently, if the patron has *any* active CAPTURE-blocking standing penalty, the hold will not show up on the printed list, whereas the displayed list can include it if the standing penalty's depth is not in range of the pickup library or the penalty has a NULL depth and the pickup library is not the same as the penalty's OU.

This discrepancy should be sorted out, possibly in favor of having open-ils.circ.hold_pull_list.fleshed query ahopl or at least treat the penalty depth in the same way that ahopl does.

Evergreen 3.1+

Galen Charlton (gmc)
Changed in evergreen:
importance: Undecided → Medium
tags: added: holds
Revision history for this message
Erica Rohlfs (erohlfs) wrote :

Confirming this behavior in version 3.7

Changed in evergreen:
status: New → Confirmed
Dan Briem (dbriem)
tags: added: circ-holds printing
removed: holds
Revision history for this message
Galen Charlton (gmc) wrote :

Marking this as won't fix - only the Dojo and AngularJS hold pull list interfaces used ahopl, but they've since been supplanted by the Angular pull list in all supported versions of Evergreen.

Changed in evergreen:
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.