<<

EXAMPLE

 our %item_db = (
    '1565921879' => {
        title => "Perl 5 desktop reference",
        id => '1565921879',
        sip_media_type => '001',
        magnetic_media => 0,
        hold_queue => [],
    },
    '0440242746' => {
        title => "The deep blue alibi",
        id => '0440242746',
        sip_media_type => '001',
        magnetic_media => 0,
        hold_queue => [
            {
            itemnumber => '823',
            priority => '1',
            reservenotes => undef,
            reservedate => '2008-10-09',
            found => undef,
            rtimestamp => '2008-10-09 11:15:06',
            biblionumber => '406',
            borrowernumber => '756',
            branchcode => 'CPL'
            }
        ],
    },
    '660' => {
        title => "Harry Potter y el cáliz de fuego",
        id => '660',
        sip_media_type => '001',
        magnetic_media => 0,
        hold_queue => [],
    },
);

new

Missing POD for new.

next_hold

Missing POD for next_hold.

hold_patron_id

Missing POD for hold_patron_id.

hold_patron_name

Missing POD for hold_patron_name.

hold_patron_bcode

Missing POD for hold_patron_bcode.

destination_loc

Missing POD for destination_loc.

status_update

Missing POD for status_update.

pending_queue

Missing POD for pending_queue.

hold_attached

Missing POD for hold_attached.

barcode_is_borrowernumber

Missing POD for barcode_is_borrowernumber.

build_additional_item_fields_string

This method builds the part of the sip message for additional item fields to send in the item related message responses

build_additional_item_fields_string

Missing POD for build_additional_item_fields_string.

build_custom_field_string

This method builds the part of the sip message for custom item fields as defined in the sip config

build_custom_field_string

Missing POD for build_custom_field_string.

format

This method uses a template to build a string from a Koha::Item object If errors are encountered in processing template we log them and return nothing

format

Missing POD for format.

NAME

ILS::Item - Portable Item status object class for SIP

SYNOPSIS

    use ILS;
    use ILS::Item;

    # Look up item based on item_id
    my $item = new ILS::Item $item_id;

    # Basic object access methods
    $item_id    = $item->id;
    $title      = $item->title_id;
    $media_type = $item->sip_media_type;
    $bool       = $item->magnetic_media;
    $locn       = $item->permanent_location;
    $locn       = $item->current_location;
    $props      = $item->sip_item_props;
    $owner      = $item->owner;
    $str        = $item->sip_circulation_status;
    $bool       = $item->available;
    @hold_queue = $item->hold_queue;
    $pos        = $item->hold_queue_position($patron_id);
    $due        = $item->due_date;
    $pickup     = $item->hold_pickup_date;
    $recall     = $item->recall_date;
    $fee        = $item->fee;
    $currency   = $item->fee_currency;
    $type       = $item->sip_fee_type;
    $mark       = $item->sip_security_marker;
    $msg        = $item->screen_msg;
    $msg        = $item->print_line;

    # Operations on items
    $status = $item->status_update($item_props);

DESCRIPTION

An ILS::Item object holds the information necessary to circulate an item in the library's collection. It does not need to be a complete bibliographic description of the item; merely basic human-appropriate identifying information is necessary (that is, not the barcode, but just a title, and maybe author).

For the most part, ILS::Items are not operated on directly, but are passed to ILS methods as part of a transaction. That is, rather than having an item check itself in:

    $item->checkin;

the code tells the ILS that the item has returned:

    $ils->checkin($item_id);

Similarly, patron's don't check things out (a la, $patron->checkout($item)), but the ILS checks items out to patrons. This means that the methods that are defined for items are, almost exclusively, methods to retrieve information about the state of the item.

$item_id = $item->id

Return the item ID, or barcode, of $item.

$title = $item->title_id

Return the title, or some other human-relevant description, of the item.

$media_type = $item->media_type

Return the SIP-defined media type of the item. The specification provides the following definitions:

    000 Other
    001 Book
    002 Magazine
    003 Bound journal
    004 Audio tape
    005 Video tape
    006 CD/CDROM
    007 Diskette
    008 Book with diskette
    009 Book with CD
    010 Book with audio tape

The SIP server does not use the media type code to alter its behavior at all; it merely passes it through to the self-service terminal. In particular, it does not set indicators related to whether an item is magnetic, or whether it should be desensitized, based on this return type. The $item->magnetic_media method will be used for that purpose.

magnetic_media

Is the item some form of magnetic media (eg, a video or a book with an accompanying floppy)? This method will not be called unless

    $ils->supports('magnetic media')

returns true.

If this method is defined, it is assumed to return either true or false for every item. If the magnetic media indication is not supported by the ILS, then the SIP server will indicate that all items are 'Unknown'.

$locn = $item->permanent_location

Where does this item normally reside? The protocol specification is not clear on whether this is the item's "home branch", or a location code within the branch, merely stating that it is, "The location where an item is normally stored after being checked in."

$locn = $item->current_location

According to the protocol, "[T]he current location of the item. [A checkin terminal] could set this field to the ... system terminal location on a Checkin message."

$props = $item->sip_item_props

Returns "item properties" associated with the item. This is an (optional) opaque string that is passed between the self-service terminals and the ILS. It can be set by the terminal, and should be stored in the ILS if it is.

$owner = $item->owner

The spec says, "This field might contain the name of the institution or library that owns the item."

$str = $item->sip_circulation_status

Returns a two-character string describing the circulation status of the item, as defined in the specification:

    01 Other
    02 On order
    03 Available
    04 Charged
    05 Charged; not to be recalled until earliest recall date
    06 In process
    07 Recalled
    08 Waiting on hold shelf
    09 Waiting to be re-shelved
    10 In transit between library locations
    11 Claimed returned
    12 Lost
    13 Missing
$bool = $item->available

Is the item available? That is, not checked out, and not on the hold shelf?

@hold_queue = $item->hold_queue

Returns a list of the $patron_ids of the patrons that have outstanding holds on the item.

$pos = $item->hold_queue_position($patron_id)

Returns the location of $patron_id in the hold queue for the item, with '1' indicating the next person to receive the item. A return status of '0' indicates that $patron_id does not have a hold on the item.

$date = $item->recall_date =item $date = $item->hold_pickup_date

These functions all return the corresponding date as a standard SIP-format timestamp:

    YYYYMMDDZZZZHHMMSS

Where the 'Z' characters indicate spaces.

$date = $item->due_date

Returns the date the item is due. The format for this timestamp is not defined by the specification, but it should be something simple for a human reader to understand.

$fee = $item->fee

The amount of the fee associated with borrowing this item.

$currency = $item->fee_currency

The currency in which the fee type above is denominated. This field is the ISO standard 4217 three-character currency code. It is highly unlikely that many systems will denominate fees in more than one currency, however.

$type = $item->sip_fee_type

The type of fee being charged, as defined by the SIP protocol specification:

    01 Other/unknown
    02 Administrative
    03 Damage
    04 Overdue
    05 Processing
    06 Rental
    07 Replacement
    08 Computer access charge
    09 Hold fee
$mark = $item->sip_security_marker

The type of security system with which the item is tagged:

    00 Other
    01 None
    02 3M Tattle-tape
    03 3M Whisper tape
$msg = $item->screen_msg
$msg = $item->print_line

The usual suspects.

<<