[% USE raw %] [% USE To %] [% USE Asset %] [% USE JSON.Escape %] [% USE Koha %] [% USE KohaDates %] [% USE Branches %] [% USE Categories %] [% USE ItemTypes %] [% USE AuthorisedValues %] [% USE Price %] [% USE TablesSettings %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] [% UNLESS ( multi_hold ) %] Place a hold on [% INCLUDE 'biblio-title-head.inc' %] › Holds › Circulation › Koha [% ELSE %] Confirm holds › Holds › Circulation › Koha [% END %] [% INCLUDE 'doc-head-close.inc' %] [% INCLUDE 'header.inc' %] [% INCLUDE 'circ-search.inc' %] [% UNLESS ( multi_hold ) %] [% ELSE %] [% END # UNLESS multi_hold %]
[% IF ( multi_hold || nobiblio ) # No sidebar menu when placing multiple holds or biblio not found %]
[% ELSE %]
[% END %]
[% IF ( nobiblio ) %]
[%IF (multi_hold) %] Cannot place hold: one or more records don't exist. [% ELSE %] Cannot place hold: this record doesn't exist. [% END %]
[% END %] [% IF ( noitems ) %]
[%IF (multi_hold) %] Cannot place hold: one or more records without items attached. [% ELSE %] Cannot place hold: this record has no items attached. [% END %]
[% END %] [% IF ( messagetransfert ) %]

Hold found for ([% nextreservtitle | html %]), please transfer

Hold placed by : [% nextreservsurname | html %] [% nextreservfirstname | html %] at : [% branchname | html %] , Please transfer this item.

[% END %] [% UNLESS ( nobiblio ) %] [% UNLESS ( multi_hold ) %]

Place a hold on [% INCLUDE 'biblio-title.inc' link = 1 %]

[% ELSE %]

Confirm holds

[% END %] [% END %] [% UNLESS club OR patron OR patron.borrowernumber OR noitems OR nobiblio %] [% IF ( messageborrower ) %]

Patron not found

No patron with this name, please, try another

[% END %] [% IF ( messageclub ) %]

Club not found

No club with this name, please, try another

[% END %]
[% IF clubcount %] [% ELSE %] [% END %]
Enter patron card number or partial name:
[% IF multi_hold %] [% ELSE %] [% END %]
[% IF borrowers %] [% INCLUDE 'circ-patron-search-results.inc' destination = "holds" %] [% END %]
[% IF clubcount %]
Enter club ID or partial name:
[% IF multi_hold %] [% ELSE %] [% END %]
[% IF clubs %] [% INCLUDE 'clubs-table.inc' destination = "holds" %] [% END %]
[% END %]
[% ELSIF club %]
Hold details
[% IF ( multi_hold ) %] [% FOREACH biblioloo IN biblioloop %] [% END %] [% ELSE %] [% END # /IF multi_hold %]
  1. Club: [% club.name | html %]
  2. Description: [% club.description | html %]

Members

    [% FOREACH member IN members %] [% SET patron = member.patron %]
  1. [% IF member.exceeded_maxreserves %]
    Too many holds: Patron can only place a maximum of [% maxreserves | html %] total holds.
    [% END %] [% IF ( member.expiry ) %]
    Account has expired
    [% END %] [% IF patron.is_debarred %]
    Patron has restrictions
    [% END %] [% IF amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') %]
    Patron has outstanding fines: [% member.amount_outstanding | $Price %]
    [% END %] [% IF ( member.diffbranch ) %]
    Pickup library is different. Patron's home library: ([% Branches.GetName(patron.branchcode) | html %] / [% patron.branchcode | html %] )
    [% END %]
  2. [% END %]
[% UNLESS ( multi_hold ) %]
[% ELSE %] [% UNLESS ( item_level_itypes ) %] [% END %] [% FOREACH biblioloo IN biblioloop %] [% IF ( biblioloo.warn ) %] [% ELSE %] [% END %] [% END %] [% UNLESS ( item_level_itypes ) %] [% END %] [% END # /FOREACH biblioloo %]
  TitleItem typePriority Information
[% UNLESS ( biblioloo.warn ) %] [% IF ( biblioloo.warn ) %] [% END %] [% biblioloo.itypename | html %] [% biblioloo.rank | html %] [% IF ( biblioloo.checked_previously ) %] Patron has previously checked out this title
[% END %] [% IF ( biblioloo.alreadyres ) %]
    [% ELSE %] [% IF ( biblioloo.none_avail || biblioloo.noitems ) %]
      [% END %] [% END %] [% IF ( biblioloo.alreadyres ) %]
    • [% patron.firstname | html %] [% patron.surname | html %] already has a hold on this item
    • [% END %] [% IF ( biblioloo.none_avail || biblioloo.noitems ) %]
    • No items are available to be placed on hold
    • [% END %] [% IF ( biblioloo.alreadyres ) %]
    [% ELSE %] [% IF ( biblioloo.none_avail || biblioloo.noitems ) %]
[% END %] [% END %]
[% END %]
[% ELSIF NOT ( noitems || nobiblio ) # /UNLESS patron %] [% IF ( checked_previously && !multi_hold ) %]
  • Patron has previously checked out this title
[% END %] [% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
[% UNLESS ( multi_hold ) %]

Cannot place hold

[% ELSE # UNLESS multi_hold %]

Cannot place hold on some items

[% IF (no_reserves_allowed ) %]
  • No holds allowed: [% patron.firstname | html %] [% patron.surname | html %] cannot place holds on some of these title's items.
  • [% ELSIF ( exceeded_maxreserves ) %]
  • Too many holds: [% patron.firstname | html %] [% patron.surname | html %] can place [% new_reserves_allowed | html %] of the requested [% new_reserves_count | html %] holds for a maximum of [% maxreserves | html %] total holds.
  • [% ELSIF ( exceeded_holds_per_record ) %] [% FOREACH biblioloo IN biblioloop %] [% IF (biblioloo.tooManyHoldsForThisRecord) %]
  • Too many holds for [% biblioloo.title | html %]: [% patron.firstname | html %] [% patron.surname | html %] can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.
  • [% END %] [% END %] [% END # /IF exceeded_maxreserves %] [% END # /UNLESS multi_hold %]
    [% END # /IF ( exceeded_maxreserves || ... %] [% IF ( expiry || diffbranch || patron.is_debarred || ( amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') ) ) %]
    [% END # /IF expiry || diffbranch ... %] [% IF ( messageborrower ) %]

    Patron not found:

    Name or barcode not found. Please try an other

    [% END %]
    Hold details
    [% IF ( multi_hold ) %] [% FOREACH biblioloo IN biblioloop %] [% END %] [% ELSE %] [% END # /IF multi_hold %]
    1. Patron: [% IF ( patron.borrowernumber ) %] [% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %]) [% ELSE %] Not defined yet [% END %]
    2. [% UNLESS ( multi_hold ) %]
    3. Estimated priority: [% fixedRank | html %]
    4. [% END %]
    5. [% UNLESS ( multi_hold ) %] [% FOREACH pickup_location IN multi_pickup_locations %] [% END %] [% END %]
    6. [% UNLESS ( multi_hold ) %] [% IF Koha.Preference('AllowHoldItemTypeSelection') %]
    7. [% END %] [% END # /UNLESS multi_hold %] [% IF ( reserve_in_future ) %]
    8. [% END %]
    9. [% UNLESS ( multi_hold ) %]
    10. [% IF force_hold_level == 'item' %] [% ELSIF force_hold_level == 'record' %] [% ELSE %] [% END %]
    11. [% IF remaining_holds_for_record > 1 %]
    12. [% ELSE %] [% END %] [% END # /UNLESS multi_hold %]
    13. A non priority hold doesn't prevent a current checkout from renewing
    [% UNLESS ( multi_hold ) %]
    [% IF ( patron.borrowernumber ) %] [% IF ( override_required ) %] [% ELSIF ( none_available ) %] [% ELSE %] [% END %] [% END %]
    [% FOREACH bibitemloo IN bibitemloop %]
      [% UNLESS ( item_level_itypes ) %]
    1. Item type: [% bibitemloo.description | html %]
    2. [% END %] [% IF ( bibitemloo.publicationyear ) %]
    3. Publication year: [% bibitemloo.publicationyear | html %]
    4. [% END %]

    Place a hold on a specific item [% IF bibitemloo.force_hold_level == 'item' %] (Required) [% END %]

    [% IF ( item_level_itypes ) %] [% END %] [% IF itemdata_ccode %] [% END %] [% IF itemdata_enumchron %] [% END %] [% SET selected = 0 %] [% FOREACH itemloo IN bibitemloo.itemloop %] [% UNLESS ( itemloo.hide ) %] [% IF ( item_level_itypes ) %] [% END %] [% IF itemdata_ccode %] [% END %] [% IF itemdata_enumchron %] [% END %] [% IF ( itemloo.onloan ) %] [% END # / UNLESS itemloo.hide %] [% END # /FOREACH itemloo %]
    HoldItem typeBarcode Home library Last locationCollectionCall number Copy numberVol no.Information Allowed pickup locations
    [% IF itemloo.force_hold_level == 'record' # Patron has placed a record level hold previously for this record %] Hold must be record level [% ELSIF ( itemloo.available ) %] [% ELSIF ( itemloo.override ) %] [% ELSE %] [% IF itemloo.not_holdable %] [% IF itemloo.not_holdable == 'damaged' %] Item damaged [% ELSIF itemloo.not_holdable == 'ageRestricted' %] Age restricted [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %] Exceeded max holds per record [% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %] Daily hold limit reached for patron [% ELSIF itemloo.not_holdable == 'tooManyReserves' %] Too many holds [% ELSIF itemloo.not_holdable == 'notReservable' %] Not holdable [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %] Patron is from different library [% ELSIF itemloo.not_holdable == 'branchNotInHoldGroup' %] Cannot place hold from patron's library [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %] Patron already has hold for this item [% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %] Cannot be transferred to pickup library [% ELSIF itemloo.not_holdable == 'pickupNotInHoldGroup' %] Only pickup locations within the same hold group are allowed [% ELSIF itemloo.not_holdable == 'noReservesAllowed' %] No reserves are allowed on this item [% ELSIF itemloo.not_holdable == 'libraryNotPickupLocation' %] Library is not a pickup location [% ELSIF itemloo.not_holdable == 'no_valid_pickup_location' %] No valid pickup location [% ELSE %] [% itemloo.not_holdable | html %] [% END %] [% END %] [% END # /IF itemloo.force_hold_level %] [% UNLESS ( noItemTypeImages ) %] [% IF ( itemloo.imageurl ) %]
    [% END %] [% END %] [% itemloo.itypename | html %]
    [% itemloo.barcode | html %] [% Branches.GetName( itemloo.homebranch ) | html %] [% Branches.GetName( itemloo.holdingbranch ) | html %] [% IF ( itemloo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemloo.ccode ) | html %][% END %] [% itemloo.itemcallnumber | html %] [% IF ( itemloo.copynumber ) %][% itemloo.copynumber | html %][% ELSE %] [% END %] [% itemloo.enumchron | html %] Due [% itemloo.date_due | $KohaDates as_due_date => 1 %] [% ELSE %] [% IF ( itemloo.transfertwhen ) %] In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %], to [% Branches.GetName( itemloo.transfertto ) | html %], since [% itemloo.transfertwhen | html %] [% END %] [% END %] [% IF ( itemloo.reservedate ) %] [% IF ( itemloo.nocancel ) %] Can't be cancelled when item is in transit [% ELSE %] [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %] [% IF ( itemloo.canreservefromotherbranches ) %] for [% itemloo.ReservedFor.firstname | html %] [% itemloo.ReservedFor.surname | html %] [% END %] [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] [% Branches.GetName( itemloo.ExpectedAtLibrary ) | html %] since [% IF ( itemloo.waitingdate ) %] [% itemloo.waitingdate | $KohaDates %] [% ELSE %] [% IF ( itemloo.reservedate ) %] [% itemloo.reservedate | html %] [% END %] [% END %]. Cancel hold [% END # /IF itemloo.nocancel %] [% ELSE %] Not on hold [% END # /IF itemloo.reservedate %] [% IF itemloo.item_level_holds == "N" %]
    Item level hold not allowed from OPAC [% ELSIF itemloo.item_level_holds == "F" %]
    Item level hold forced from OPAC [% END %] [% IF ( itemloo.itemlost ) %] [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => itemloo.itemlost ) | html %] [% END %] [% IF ( itemloo.damaged ) %] [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => itemloo.damaged ) | html %] [% END %] [% IF ( itemloo.withdrawn ) %] [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => itemloo.withdrawn ) | html %] [% END %] [% IF ( itemloo.notforloan ) %] Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemloo.notforloan ) | html %]) [% END %]
    [% IF (itemloo.pickup_locations_count > 0) %] [% END %]
    [% IF ( bibitemloo.hiddencount ) %]

    Show all items ([% bibitemloo.hiddencount | html %] hidden)

    [% END # /IF bibitemloo.hiddencount %] [% END # /FOREACH bibitemloo %] [% ELSE # /UNLESS multi_hold %] [% UNLESS ( item_level_itypes ) %] [% END %] [% FOREACH biblioloo IN biblioloop %] [% IF ( biblioloo.warn ) %] [% ELSE %] [% END %] [% END %] [% UNLESS ( item_level_itypes ) %] [% END %] [% END # /FOREACH biblioloo %]
      TitleItem typePriority Information Pickup location
    [% UNLESS ( biblioloo.warn ) %] [% IF ( biblioloo.warn ) %] [% END %] [% biblioloo.itypename | html %] [% biblioloo.rank | html %] [% IF ( biblioloo.checked_previously ) %] Patron has previously checked out this title
    [% END %] [% IF ( biblioloo.alreadyres ) %]
      [% ELSE %] [% IF ( biblioloo.none_avail || biblioloo.noitems ) %]
        [% END %] [% END %] [% IF ( biblioloo.alreadyres ) %]
      • [% patron.firstname | html %] [% patron.surname | html %] already has a hold on this item
      • [% END %] [% IF ( biblioloo.none_avail || biblioloo.noitems ) %]
      • No items are available to be placed on hold
      • [% END %] [% IF ( biblioloo.alreadyres ) %]
      [% ELSE %] [% IF ( biblioloo.none_avail || biblioloo.noitems ) %]
    [% END %] [% END %]
    [% UNLESS ( biblioloo.none_avail || biblioloo.noitems ) %] [% END %]
    [% END # /UNLESS multi_hold %]
    [% IF ( patron AND patron.borrowernumber ) %] [% IF ( override_required ) %] [% ELSIF ( none_available ) %] [% ELSE %] [% IF ( multi_hold ) %] [% ELSE %] [% END %] [% END %] [% END # /IF patron %]
    [% END %] [% UNLESS ( patron ) %] [% IF ( reserveloop ) %]
    [% IF ( multi_hold ) %] [% END %] [% IF enqueued %]

    The job has been enqueued! It will be processed as soon as possible.

    View detail of the enqueued job

    [% END %]

    Existing holds

    [% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %] [% IF hold_cancellation %] [% END %]
    [% FOREACH biblioloo IN biblioloop %] [% IF ( biblioloo.reserveloop ) %] [% IF ( multi_hold ) %]

    [% biblioloo.title | html %]

    [% END %] [% IF Koha.Preference('HoldsSplitQueue') == 'branch' %] [% SET branchcodes = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% branchcodes.push( h.branchcode ) %] [% END %] [% branchcodes = branchcodes.unique %] [% FOREACH b IN branchcodes.sort %] [% SET holds_by_branch = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% IF h.branchcode == b %] [% holds_by_branch.push( h ) %] [% END %] [% END %]
    [% Branches.GetName( b ) | html %] [% INCLUDE holds_table.inc holds=holds_by_branch %]
    [% END # /FOREACh b %] [% ELSIF Koha.Preference('HoldsSplitQueue') == 'itemtype' %] [% SET itemtypes = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] [% itemtypes.push( hold_itemtype ) %] [% END %] [% itemtypes = itemtypes.unique %] [% FOREACH i IN itemtypes.sort %] [% SET holds_by_itemtype = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] [% IF hold_itemtype == i %] [% holds_by_itemtype.push( h ) %] [% END %] [% END %]
    [% IF i %] [% ItemTypes.GetDescription( i ) | html %] [% ELSE %] Any item type [% END %] [% INCLUDE holds_table.inc holds=holds_by_itemtype %]
    [% END # /FOREACH i %] [% ELSIF Koha.Preference('HoldsSplitQueue') == 'branch_itemtype' %] [% SET branchcodes = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% branchcodes.push( h.branchcode ) %] [% END %] [% branchcodes = branchcodes.unique %] [% FOREACH b IN branchcodes.sort %]
    [% Branches.GetName( b ) | html %] [% SET holds_by_branch = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% IF h.branchcode == b %] [% holds_by_branch.push( h ) %] [% END %] [% END %] [% SET itemtypes = [] %] [% FOREACH h IN holds_by_branch %] [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] [% itemtypes.push( hold_itemtype ) %] [% END %] [% itemtypes = itemtypes.unique %] [% FOREACH i IN itemtypes.sort %] [% IF i %]

    [% ItemTypes.GetDescription( i ) | html %]

    [% ELSE %]

    Any item type

    [% END %] [% SET holds_by_itemtype = [] %] [% FOREACH h IN holds_by_branch %] [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] [% IF hold_itemtype == i %] [% holds_by_itemtype.push( h ) %] [% END %] [% END %] [% INCLUDE holds_table.inc holds=holds_by_itemtype %] [% END %]
    [% END # /FOREACH b %] [% ELSE %] [% INCLUDE holds_table.inc holds=biblioloo.reserveloop %] [% END # /IF HoldsSplitQueue %] [% END # /IF biblioloo.reserveloop %] [% END # FOREACH biblioloo %]
    [% END # IF reserveloop %] [% END # UNLESS patron %]
    [% IF ( multi_hold || nobiblio ) # No sidebar menu when placing multiple holds or biblio not found %]
    [% ELSE %]
    [% END %]
    [% MACRO jsinclude BLOCK %] [% INCLUDE 'datatables.inc' %] [% INCLUDE 'calendar.inc' %] [% INCLUDE 'columns_settings.inc' %] [% Asset.js("lib/hc-sticky.js") | $raw %] [% Asset.js("js/circ-patron-search-results.js") | $raw %] [% INCLUDE 'select2.inc' %] [% END %] [% INCLUDE 'intranet-bottom.inc' %]