[Koha] API for circulation interfaces

Tonnesen Steve tonnesen at cmsd.bc.ca
Thu Jan 11 08:20:19 NZDT 2001


Here is a proposed list of functions necessary to generate arbitrary
circulation interfaces.  Comments requested.

Is this an appropriate forum for programming discussion?



Program API for circulation interfaces:

====================
getpatroninformation
====================
Subroutine returns a hash reference with all patron information.  Can be called
with either borrowernumber or cardnumber.

($env, $patroninformation) = getpatroninformation($env,$borrowernumber,$cardnumber)


=============
currentissues
=============

Returns a hash reference (itemnumber => duedate)

($env, $currentissues) = currentissues($env, $borrowernumber);


==================
getiteminformation
==================

Subroutine returns a hash reference with all item information.  Can be called
with either itemnumber or barcode.

($env, $iteminformation) = getiteminformation($env,$itemnumber,$barcode)


============
findborrower
============

Subroutine returns an array reference containing a list of borrowernumbers that match $key.  $key could be a cardnumber or a partial last name.

($env, $borrowernumber) = findborrower($env, $key)


=========
issuebook
=========

This subroutine may or may not generate additional questions that must be answered.

($env, $itemnumber, $rejected, $question, $questionnumber, $defaultanswer, $responses) =
    issuebook($env,$borrowernumber,$barcode)

Subroutine must handle errors, some that block issuing, some that must be
approved before issuing.

If $rejected is not null, it will contain a message detailing the reason for
rejection.  Possible responses are listed below, prepended with 'Error:'.
Alternatively, $rejected may just be '-1' in which case the issue should be
rejected with no message displayed to the user.  This might happen if the
answer to a question resulted in a rejection.

Error: Invalid barcode _____
Error: Invalid borrowernumber ____
Error: Item is restricted  [$item->{'notforloan'}==1]
Error: Item withdrawn [$item->{'withdrawn'}==1]
Error: Restricted Item (and borrower not allowed to check out)
    [$item->{'restricted'}==1]
Error: Reference item not for loan [$item->{'itemtype'} eq 'REF']
    [Circulation::Renewals::renewstatus]
Error: Issued to this patron, no renewals. 


If $question is not null, it will contain a YesNo question that should be
asked.  $defaultanswer will contain 'Y' or 'N'.  $questionnumber will contain a
unique integer for each question that might be asked.  Interface code will
generate a hash reference ($responses) with the responsees to each question
asked and then recall issuebook() until the issue is accepted or rejected.

Question: Already issued to this patron and reserved to ___, renew?  default N
Question: Already issued to this patron, renew?
    [$newdate=C4::Circulation::Renewals::renewbook()]
Question: Already issued to patron ___, mark as returned?
    [returnrecord()]

calculate any charges   [calc_charges()] and [createcharge()]



==========
returnbook
==========

Subroutine for returning a book.  $message may contain an arbitrary message to display to the user (maybe should be an array reference for multiple messages?).

($env, $itemnumber, $borrowernumber, $message, $overduefees) = returnbook($env,$barcode)

Message: Reserved for collection at branch _______
Calculate any overdue fees (not in current Circulation code)

[UpdateStats]









More information about the Koha mailing list