PRECONDITIONS| -------------+ UseBranchTranferLimits IPT -> CPL -> FFL -> IPT no transfers into KIR all tranfers to SPR -------------------------- --- reserve/request.pl --- -------------------------- CASE1: Some item's branch transfers denied Biblio1 Item's holdingbranch pickupbranch canReserve? CPL IPT 0 IPT IPT 1 IPT IPT 1 FFL IPT 1 No notifications shown, can place hold CASE2: All item's branch transfers denied Biblio1 Item's holdingbranch pickupbranch canReserve? CPL KIR 0 IPT KIR 0 IPT KIR 0 FFL KIR 0 Show "No transfers available notification", cannot place holds CASE3: Should be ok Biblio1 Item's holdingbranch pickupbranch canReserve? CPL SPR 1 IPT SPR 1 IPT SPR 1 FFL SPR 1 No notifications shown, can place hold CASE4: Multi_hold, some biblios have no transferrable Items. Biblio1 Item's holdingbranch pickupbranch canReserve? CPL IPT 1 IPT IPT 1 IPT IPT 1 FFL IPT 1 Biblio2 Item's holdingbranch pickupbranch canReserve? KIR IPT 1 CPL IPT 0 FFL IPT 1 FFL IPT 1 IPT IPT 1 IPT IPT 1 Biblio3 Item's holdingbranch pickupbranch canReserve? CPL IPT 0 CPL IPT 0 Red cross shown. Prompt user to choose another pickup location. Submitting impossible. CASE5: Multi_hold, no transferrable items whatsoever. Biblio1 Item's holdingbranch pickupbranch canReserve? CPL KIR 0 IPT KIR 0 IPT KIR 0 FFL KIR 0 Red cross shown. Biblio2 Item's holdingbranch pickupbranch canReserve? IPT KIR 0 CPL KIR 0 FFL KIR 0 FFL KIR 0 IPT KIR 0 IPT KIR 0 Red cross shown. Biblio3 Item's holdingbranch pickupbranch canReserve? CPL KIR 0 CPL KIR 0 Red cross shown. Prompt user to choose another pickup location. Submitting impossible. CASE6: Multi_hold, all transferrable. Biblio1 Item's holdingbranch pickupbranch canReserve? CPL SPR 1 IPT SPR 1 IPT SPR 1 FFL SPR 1 OK Biblio2 Item's holdingbranch pickupbranch canReserve? IPT SPR 1 CPL SPR 1 FFL SPR 1 FFL SPR 1 IPT SPR 1 IPT SPR 1 OK Biblio3 Item's holdingbranch pickupbranch canReserve? CPL SPR 1 CPL SPR 1 OK Submits OK CASE7: Drive it like you stole it! Couldn't forcifully submit the form to make a title-level reservation out of a Biblio which has no transferrable Items OR Make a POST-request from an external site. Forging biblionumbers- and selecteditems-lists and other used parameters. Trying a single biblio hold and a multi_hold. BranchTransferLimits are checked in business layer (reserve/placerequest.pl) as well after submitting the form. If branchTransferLimits fail in the business layer, an error is printed and no holds placed.