Commit graph

231 commits

Author SHA1 Message Date
91990d783a additional improvement to POD for CanBookBeIssued()
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-03-16 21:03:45 -04:00
Lars Wirzenius
ea06cc504b Fix pod documentation for CanBookBeIssued method to refer to the right variable.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-03-16 21:02:20 -04:00
Lars Wirzenius
7279f55b60 Fix FSF address in directory C4/
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-03-16 20:17:56 -04:00
Henri-Damien LAURENT
780cda46a2 UpdateDataBase for smart-rules modification
Members.pm :
Adding IsMemberBlocked
Circulation.pm :
Using IsMemberBlocked in order to implement finedays

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-30 11:22:21 +02:00
Henri-Damien LAURENT
3c741d2376 Smart Rules enhancements
Adding finedays and reservesallowed and renewalsallowed management in smart rules
Adding Clone Rules
Adding CanBookBeReserved and CanItemBeReserved in C4::Reserves
Manage Reservesallowed in opac and staff interface
Manage renewalsallowed in C4/Circulation.pm
Update Database follow

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-30 11:22:20 +02:00
dafb3e20da bug 3481 followup - improve CartToShelf
* added POD
* removed optional $barcode argument - in all cases,
  itemnumber is known, and we should stick with
  itemnumber when retrieving an existing item
* use ModItem to do the update so that indexer
  will know to reindex bib - otherwise, can't
  do an accurate search of items that are on
  the shelving cart.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 13:07:33 -04:00
Colin Campbell
e40e11ab0c bug 3481: Allow Item Temporary Locations for Processing and Shelving.
Allows temporary locations corresponding to 'in processing' and 'shelving'
so that newly-created items, and newly-returned items do not show
immediately as a available. Three new system preferences govern the usage
of these features.

NewItemsDefaultLocation. If system pref NewItemsDefaultLocation is set to a location code,
 all newly catalogued items will be set to the location set in this preference.
 Location code must be a valid LOC authorized value type.

InProcessingToShelvingCart. if the system pref InProcessingToShelvingCart is turned on,
any items run through returns.pl with a location code for 'PROC', will be modified to
have a new location code of 'CART'.

ReturnToShelvingCart.  If the syspref ReturnToShelvingCart is turned on,
all items returned other than confirmed holds will have a new location code of 'CART'.
Any item issued is automatically taken of the shelving cart.

Adds a cron script shelf_to_cart.pl which should be run hourly.
Updates all items with a location of CART to the item's permanent location.

The original location code is stored in the new items column 'permanent_location'.

Original Author: PTFS Contractor <dbavousett@ptfs.com>

This work co-sponsored by
  Middletown Township Public Library, Middletown, NJ USA  and
  East Brunswick Public Library, East Brunswick, NJ USA

Signed-off-by: Colin Campbell <colin.campbell@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 11:54:46 -04:00
5593a28164 implement bailing out of AddReturn if IndependantBranches is on
If IndependantBranches is ON and user attempts to return an
item at a library other than the item's home library, bail out.
This action, which was previously just a suggestion in the code,
is now required to ensure that the item doesn't get its
holdingbranch set to the library at which the attempt to return
the item was made.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 10:05:09 -04:00
15fbaea348 bug 3409 followup - fix use of $hbr
$hbr in this context is a branch code, not an
item field.

Also added use of C4::Debug;

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 10:05:09 -04:00
b59e016612 AddReturn now always updates holdingbranch
Prior to this patch, this was done only when returning
an item after it had been out on loan.  Even if the
item had not been on loan, the fact that it was checked
in means that it is now in fact at the new holding library.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 10:05:09 -04:00
223d1fa6e8 bug 3409 follow: fix crash if holdingbranch is undef
Make _GetCircControlBranch() default to the item's home library
in the case where it otherwise would have returned the item's
holding library but that field is null.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 10:05:09 -04:00
80820af3f6 bug 3409 followup: renamed _GetCirculationBranch
New name is  _GetCircControlBranch so as not to confuse
the library that a circulation transaction is taking
place at with the library that is supposed to control
circulation policy lookup.

Also fixed formatting errors in _GetCircControlBranch.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 10:05:09 -04:00
9dec888d78 bug 3409 followup: always set holdinglibrary to library last seen at
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 10:05:09 -04:00
Henri-Damien LAURENT
b00efc7295 Bug fix 3409 : Adding an internal function to C4::Circulation
This patch add the use of CircControl and HomeOrHoldingBranch for return and transfert rules.
* ItemHomeLibrary goes to item{HomeOrHoldingBranch}
* PatronLibrary goes to the borrower library
* PickupLibrary depends where the items was checked out, and the actual library.

This add a little improvment that does not re-request each time the circcontrol syspref.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 08:24:52 -04:00
Michael Hafen
2ace8cb33d bugfix invalid comparison to ceilingDueDate in CalcDateDue()
The comparison to check the ceilingDueDate is done in the syspref format,
which isn't a good comparison.  This changes to code so the comparison is done
using iso format.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-15 09:39:04 -04:00
Galen Charlton
99afd35871 bug 3435: added missing _ in _FixAccountForLostAndReturned
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-07-30 14:36:30 -04:00
Galen Charlton
d903e7531f bug 3435 followup: tweak AddReturn cleanup
We're returning issue information when available,
not just item information.  Fixes problem where
circ/returns.pl wasn't displaying the due date
and patron when returning a loan.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-07-30 11:29:45 -04:00
Joe Atzberger
51e8fc2cb6 bug 3435: AddReturn overhaul.
Required for SIP checkin implementation, but also for internal correctness.
AddReturn had too many things going on, with no guarantee of data being
available for the later calls.  At some point we started tacking on all the
branch transfer logic without testing edge cases.  In particular, $borrower
is not checked to be sure it is defined, considering the item may not have been
checked out so no borrower would be associated.  That means that CircControl
of "PatronLibrary" would be inaccurate, Circ Alerts will be totally confused
(untargeted), and the Fix... subs would fail.

Note that *many* errors are still present in _FixAccountForLostAndReturned, including
those where comments are added, such that it might behave strangely even with $borrower.

Renamed the internal subs with leading underscore, per convention.  Changed
the arguments to be scalars when only scalars are needed, not entire objects.
Added depth to WrongBranch message that includes Rightbranch.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-07-30 11:06:50 -04:00
Joe Atzberger
d313335cc3 Correct GetItemIssue to actually return undef if item not checked out.
Updated POD for correctness.
Replaced strftime + regexp w/ C4::Dates->today.
Also removed some sth->finish statements.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-07-22 11:15:04 -04:00
Galen Charlton
ea62d6e72f followup to AddReturn patch - fix test
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-07-22 10:15:32 -04:00
Ryan Higgins
e492747a6f Bug 2770 follwup : force AddRenewal obey circControl system preference [revised]
Also prevents infinite-length renewals by returning undef
if passed an invalid date instead of renewing with no due date.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-07-14 22:32:46 -04:00
Joe Atzberger
e8908c2f97 Returns reworking to handle empty GetItemIssue
Code cannot rely on issueinformation being populated.

Note there is room for better efficiency to have AddReturn also provide the
itemnumber (where existing) so that GetItemnumberFromBarcode is not called
at both levels.  Unfortunately there is discrepancy between this idea (for
efficiency) and the stated purpose of the $iteminformation object returned,
since $iteminformation is specifically the info from the issues table and
MUST be empty when the item was not in fact issued.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-06-24 09:44:39 -05:00
Galen Charlton
09279e2334 bug 2893: extend conditions handled by AllowNotForLoanOverride
Prior to this patch, turning AllowNotForLoanOverride on
allowed the circ operator to permit the loan of an
item who's individual not-for-loan flag was set, but did
not allow the loan of an item whose item type's not-for-loan
flag was set.  This patch extends the definition of the
system preference so that both cases are covered.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-06-19 06:01:27 -05:00
Galen Charlton
ea42477090 bug 3299: fix setting renewal due date explicitly
When renewing a loan from the patron details page, setting
the renewal due date now works again.  Broken by patch
for bug 2770.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-06-07 13:17:08 -05:00
Paul Poulain
6924e7d6b4 fix for 2997 : superlibrarian's ability to edit item/patron home branch affected if all other privileges are selected
Before this patch, we used to test for flags == 1, which was wrong when patron had all privileges.
This patch just adds a %2 to check that patron has superlibrarian privilege, and maybe something else we don't care.

I think I fixed it everywhere except in acquisition, that will be addressed by BibLibre new acquisition module.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-28 17:06:46 -05:00
Galen Charlton
6085209dd3 excised hard-coded reference to HLT
Note to Chris Cormack: I suspect the current ability
to override most circulation conditions is sufficient,
but if HLT still needs to establish a patron category
that can ignore issuingimpossible limitations, needs
to be done in a more flexible way.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 16:23:42 -05:00
Galen Charlton
5899badc3e fix to CanBookBeIssued()
Bail out if item does not exist - otherwise
subsequent checks can fail for lack of an
item branchcode.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 16:11:36 -05:00
Nahuel Angelinetti
314e818294 fix the previous patch to add a syspref that permit to choose the renewal period(day or date_due).
This patch just check the syspref and use it as base date of renew.

Signed-off-by: Henri-Damien LAURENT <henridamien.laurent@biblibre.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 15:20:09 -05:00
Nahuel Angelinetti
3587400ea7 change the date calc, to set the date_due to date_due+loanlength.
At the moment when you renew a document the date_due calculated is now+loanlength, but it's a bad thing, It should be
date_due+loanlength.
This patch do change Circulation.pm to use the date_due as renew base and add the loanlength to get the new date_due after
renewal.

Signed-off-by: Henri-Damien LAURENT <henridamien.laurent@biblibre.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 15:16:34 -05:00
Paul Poulain
d496e3111a fix for #988
When a borrower can't issue any book (issuingrules=0), the message should be
"this user can't issue book" and not "too many books already issued"wrong message

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 14:24:47 -05:00
Michael Hafen
0b50aecaf7 Tweak ceilingDueDate and CalcDateDue
This patch moves ceilingDueDate and ReturnBeforeExpiry checking into
CalcDateDue(), so the renewal due date is also calculated with those.

Also restores a check in CanBookBeIssued.  If the due date isn't given
call CalcDateDue and make sure it's not in the past.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 09:03:21 -05:00
Ryan Higgins
fa848a66f0 Bug 3179: Typo in C4::Circulation function call causes fatal error
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-01 07:16:15 -05:00
Nahuel ANGELINETTI
632955332d (bug #2750) Cannot return to another branch if the independantbranch option is set as ON
The code was modified to change the holding branch ONLY if the return to the right branch is done. If you set IndependantBranch to on, you must return the document to the HomeBranch.
And verify the return is done before show the message that allow to transfert the document to another branch.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-28 06:43:49 -05:00
Nahuel ANGELINETTI
43e4976806 (bug #2893) Allow loan forcing if a syspref is set
If the syspref 'AllowNotForLoanOverride'(YESNO) is set to YES, the librarian is able to force a loan on an item set as "not for
loan".
If the item is not for loan and the syspref is set to YES, koha will ask to the librarian if he really want to check-out it, else
do nothing.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-27 14:29:30 -05:00
Mason James
866df9ce97 BUG-3160: fixes 'itemlost' check on item return.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-24 20:41:53 -05:00
Michael Hafen
7d61fd62f5 New feature ceiling Due Date.
This adds a feature and system preference: ceilingDueDate.  If this is
set to a valid ( according to dateformat syspref ) date, then calculated
due dates will be less than this date.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-24 12:49:54 -05:00
Galen Charlton
684cea4309 bug 3049: display correct due date of renewed loans
The intranet item display provided by moredetail.pl
would display the original due date of the item, and
would thus be incorrect if the item had been renewed
and got a different due date.

The incorrect date was coming from items.onloan,
which AddIssue() sets to the due date.  This patch
fixes the bug in two ways:

[1] AddRenewal() now updates items.onloan with the
    correct due date.
[2] Two templates were updated to display the
    due date from (indirectly) issues.date_due
    instead of items.onloan, thus making it less
    likely that the wrong value will be displayed.

This patch does *not* update items.onloan to reflect
the correct due date.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-08 14:51:32 -05:00
koha
9c72711a2c This patch allows the Branch Transfer Limits feature to limit transfers either by itemtype ( like the original commit ) or collection code ( new feature ).
[Note inserted by RM: this patch is by Kyle Hall]

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-06 11:27:16 -06:00
Mason James
41cb983c3b fix for bug-2923, corrects renew status in SCO
- removes unneeded  HTML::Template::Pro
 - some indent/newline tidies

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-04 16:28:17 -06:00
John Beppu
b0ed658d3b bug 341: Use the Right Branch
When sending circulation alerts, use the branch that the
event happened on instead of $item->{homebranch}.

Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-04 14:00:46 -06:00
John Beppu
062bb9a804 bug 324: Setting to_address
- Enqueue the messages with a to_address.

Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-04 14:00:18 -06:00
John Beppu
39d0ed3635 Perl Modules
- C4::Letters:EnqueueLetter() is aware of new fields in message_queue table
- C4::Circulation::SendCirculationAlert() actually works
- C4::Category cleanup
- C4::ItemType cleanup
- C4::Message is a new module.
  It presents yet another way to interact with the message_queue.
  You can now take messages that have already been queued and modify
  their contents before they're sent out.

Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-04 13:58:03 -06:00
John Beppu
02fe630873 Sending Circulation Alerts part 1
- Added code to AddIssue to send an alert when appropriate.
- Added code to AddReturn to send an alert when appropriate.
- Added a sub called SendCirculationAlert() that DOESN'T ACTUALLY WORK YET.

Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-04 13:56:20 -06:00
Jesse Weaver
1301705150 Add holds policies
This adds holds policy creation support to smart rules and read support to
C4/Circulation.pm, and the two reservation pages. It also adds a system
preference, AllowHoldPolicyOverride, to control whether the staff can override
these policies.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-01-16 08:21:07 -06:00
Joe Atzberger
9dbd65da27 barcodedecode() did not always return barcode
This patch amends the function to return barcode, in particular when
filter is not defined.  It also adds an optional 2nd argument to
allow the filter to be specified by caller, enabling testing.

Non-DB-dependent test script included.  Note: T-prefix style
barcode filter is not documented, and drops the first nonzero
digit after the T.  This seems mistaken, but is not corrected here
to avoid any surprises.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-01-05 15:55:14 -06:00
Joe Atzberger (siptest
76309ae328 Allow AddIssue to log SIP transactions distinct from others.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-01-05 15:43:12 -06:00
Kyle Hall
9cf0472903 Added 'Branch Transfer Limits' Feature requested by Geauga County Library System.
Added syspref to updatedatabase.

Updated kohastructure.sql with the limits table.

Signed-off-by: Andrew Moore <andrew.moore@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-17 14:49:02 -06:00
Galen Charlton
5f18793461 bug 2758: don't confirm checkout if fine balance is 0
Fixes problem where if the IssuingInProcess preference is ON,
the operator is always required to confirm a checkout if
the patron has had any fine transactions at all, even if
the patron's balance is 0.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-02 16:44:20 -06:00
Galen Charlton
3ad41dbaf8 followup 1 to to renewal limit override
Update POD for CanBookBeRenewed().

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-10-23 10:34:56 -05:00
Michael Hafen
03d8521cbf Allow renewal limits to be overridden
Originally by Jesse Weaver <jesse.weaver@liblime.com>

This patch creates a new system preference, AllowRenewalLimitOverride,
that, if YES, allows the renewal limit to be manually overridden. It
updates C4::Circulation and reserve/renewscript.pl to obey this.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-10-23 10:34:50 -05:00
Joe Atzberger (siptest
b165e9802f Fully qualify function call.
This is a pre-requisite to continued SIP processing, dealing with some
arcana related to recursive dependencies and UNIVERSAL.  The reason this
is separate from other SIP patches is that it is expected patched in other
submissions already.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-10-13 12:05:52 -05:00
Joe Atzberger (siptest
bd0ef37c24 Bugs 2541 and 2587 - AddIssue must return date object as intended.
SIP actually relied on the AddIssue return that was not reliable.
AddRenew also updated to return C4::Dates object for datedue.

Please note, any running SIPServer will have to be restarted
*immediately* after applying this patch, because although Koha
C4 behaves as normal, the SIP server runs as a Net::Server with
components cached.  Changes will not be applied until SIPServer
restarts, and so checkout actions may fail until then.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-09-11 08:06:04 -05:00
Galen Charlton
69781fbe8b bug 2582 [1/2]: don't set issuedate during renewal
Changed so that issues.issuedate is never modified
during a renewal, since that column records the original
date of the loan.  Changed the name and interpretation
of the $issuedate parameter of AddRenewal() to
$lastreneweddate, allowing (e.g.) offline circulation
to set the date of the renewal without changing the
issue date.

As a result of the original bug, issues.issuedate can be
set to NULL for loans that were renewed via the OPAC,
self checkout, or the staff interface when explicitly
renewing a loan.  Loans that were renewed by checking
the item out to the same patron will have the issue date
changed to the date of the last renewal.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-09-04 20:11:25 -05:00
Galen Charlton
b31859946b bug 2552: correct issue history display
The loan history for a bib can be incorrect if the bib's
biblioitemnumber is not the same as its biblionumber.
This was due to a bad join in GetBiblioIssues().

Credit to Michael Hafen for patching a similar bug,
which inspired me to check for other bad joins.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-27 09:46:38 -05:00
Andrew Moore
3d323db1fe bug 2503: removing Force* subs and replacing them with calls to C4::Circulation subs
The offline circulation file processor originally used its own methods to
insert circulation data. This patch takes advantage of the updated
C4::Circulation methods that allow us to specify dates in the past.
This makes the offline circulation file processor use C4::Circulation
functions instead of its own and removes the deprecated subs.

moving from ForceIssue to AddIssue
replacing ForceRenewal with AddRenewal
moving from ForceReturn to MarkIssueReturned
removing deprecated Force* subs
fixing a few bugs in process_koc.pl

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 17:05:24 -05:00
Andrew Moore
1de1e05e23 bug 2503: adding dates to some C4:Circulation methods to allow offline circulation tool to specify dates other than today
When uploading an offline circulation file, some actions may need to take place
in the past. This patch adds date parameters to some C4::Circulation methods
to allow us to set dates on them

added issuedate to C4::Circulation::AddIssue
adding issuedate to C4::Circulation::AddRenewal
adding returdate to C4::Circulation::MarkIssueReturned

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 17:05:24 -05:00
Andrew Moore
816594bb7b bug 2503: documentation improvements in C4::Circulation
These are some documentation changes that I made to C4::Circulation as
I was writing tests for it.

moved around the docs for CanBookBeIssued. It was in the wrong spot in the file.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 17:05:24 -05:00
Kyle Hall
38cf1fd318 Integrated version of the Koha Offline Circulation file uploader. It needs some testing and cleanup, but it works.
Signed-off-by: Andrew Moore <andrew.moore@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 17:05:24 -05:00
Galen Charlton
80a7d712aa bug 2518: remove useless patron and branch lookups
AddIssue does not use the results of the lookup
of the patron whose hold request was preempted
by the issue.  This patch now leaves a no-op in
the '$restype eq "Waiting"' test, but I'm not going to
refactor the hold cancellation logic now.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-18 07:15:24 -05:00
Jesse Weaver
1157ed9457 fix for bug 1551: Renewing doesn't move item...
This makes C4::Circulation::AddRenewal update lastreneweddate, then has circulation.pl check today's date against issuedate or lastreneweddate. It also cl
eans up a little parenthesis spacing.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-16 18:26:16 -05:00
Joe Atzberger (siptest
3e7013d174 Bugfix Circulation, Expand ILS::Patron mapping.
ILS::Patron is where most of the intelligence for SIP's representation
is lodged.  Currently there is difficulty with C4::Members functions.
GetMemberDetails is required for the needed flags, but it returns
empty structure on bad barcodes, where it should be undef.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-25 11:45:29 -05:00
Galen Charlton
c80b328aae clean up old-style calls to GetMemberDetails
GetMemberDetails() returns only one hashref now,
not two.  In all cases where the caller was
expecting two output values, the $flags return
was ignored anyway.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-25 11:39:22 -05:00
Joshua Ferraro
56baa50ead fix for bug 1961: sprintf value needed in C4/Circulation.pm 2008-06-20 17:04:27 -05:00
Andrew Moore
2cae4efa0a Bug 2176 (3/5): adding methods to manage message_queue, new advance_notices.pl, new C4::SMS module
I've added methods to to C4::Letters to manage the database table
message_queue. This will let us keep track of messages sent
via email, sms, and rss to patrons. That way, we can show the history,
deal with failures, and reconstruct an RSS feed when needed.

misc/cronjobs/overduenotics.pl has been added. It prepares advance notices
and item due notices and stages messages to be sent in the message_queue
table.

C4::Overdues::Getoverdues now takes two optional arguments to tell it how
old of overdues to fetch.

Also, a C4::Circualtion::getUpcomingDueIssues method was added that
advance_notices.pl uses.

misc/cronjobs/process_message_queue.pl has been added. It sends the email
or SMS messages out of the message queue.

The C4::SMS module didn't work at all, and it has been rebuilt to use
an external perl module from CPAN, SMS::Send.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-20 13:04:52 -05:00
Galen Charlton
211defee52 bug 2000 - changes to TooMany()
The C4::Circulation::TooMany() function, which determines
if a patron is at the maximum loan limit, has been
changed to work as follows:

1. Checks the issuing rule that would apply to the
   prospective loan to see if a loan limit (maxissueqty)
   has been set.
2. Counts the number of loans that the patron has
   that would fall under that loan rule.

IMPORTANT: that means that if a specific loan rule
exists for the branch, patron category, and item type
in question, *only* that rule's maxissueqty will be
checked here - it will not go on to check whether
a less specific rule has a lower loan limit.

3. If adding one more loan would bring that count
   over the limit, returns a "too many" error.
4. If the loan hasn't exceeded a specific limit, checks
   whether a branch/patron category circ rule has
   specified a loan limit, regardless of item type.
   If the patron has already reached *that* limit, returns
   the "too many" error.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-20 08:19:08 -05:00
Galen Charlton
95889857c7 bug 2000 - add C4::Circulation::GetBranchBorrowerCircRule
This routine retrieves the branch/patron category circulation
rules for a given branch and patron category.  The return
value is a hashref containing the following key:

maxissueqty - maximum number of loans across all item types

This will first check for a specific branch and
category match from branch_borrower_circ_rules.

If no rule is found, it will then check default_branch_circ_rules
(same branch, default category).  If no rule is found,
it will then check default_borrower_circ_rules (default
branch, same category), then failing that, default_circ_rules
(default branch, default category).

If no rule has been found in the database, it will default to
the built in rule:

maxissueqty - undef

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-20 08:19:06 -05:00
Galen Charlton
9f2c77a686 bug 2000 - fix order of issuingrule lookup
Extended help on the alternate circulation rules
form to list the order of issuingrules lookup as
follows:

same library, same patron type, same item type</li>
same library, same patron type, default item type</li>
same library, default patron type, same item type</li>
same library, default patron type, default item type</li>
default library, same patron type, same item type</li>
default library, same patron type, default item type</li>
default library, default patron type, same item type</li>
default library, default patron type, default item type</li>

This includes modifying two routines in C4::Circulation to
follow this order: GetLoanLength() and GetIssuingRule().

The reason for this change is to have Koha exhaust all issuingrules
possibilities for a branch before checking the rules for
the default branch - this is consistent with what an admin
might expect from looking at the issuingrules forms, which display
settings a branch at a time, and is more consistent with how
circulation rules should work for indepdendent branches.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-20 08:19:03 -05:00
Joe Atzberger
97659a73ca FIXME added to note discrepancy.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-31 21:59:38 -05:00
Paul POULAIN
7ff55f6c40 BUGFIX issuingrules : total for all itemtype was not properly calculated
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-30 14:01:11 -05:00
Joe Atzberger
dca0e73aed Correct number of args to getnextacctno.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-29 07:04:35 -05:00
Ryan Higgins
302da68ce5 Fill statistics table properly for renewals; and issue->checkout, return->checkin
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-27 07:33:30 -05:00
Ryan Higgins
b54401ac66 C4::Circulation::FixOverduesOnReturn now handles dropbox mode.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-12 09:29:14 -05:00
Ryan Higgins
97f8b3abff Make dropbox mode obey Calendar module according to CircControl branch.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-12 09:29:13 -05:00
Ryan Higgins
bd30b60a8a Alter itemBarcodeInputFilter T-Prefix.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-11 07:03:53 -05:00
Ryan Higgins
12a3217bfe Add dropbox mode to return.pl. Small API change to allow setting
returndate other than now().  Overdues will be handled in a forthcoming commit.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-22 17:54:20 -05:00
paul
0bf436a0ea use HomeOrHoldingBranch to determine if a return is valid or not
in fact, i'm not 100% sure of this bugfix : I don't see the case where a return should be done directly to homebranch, when the check out has been done at holdingbranch
so maybe we could hardcode 'holdingbranch' instead of using HomeOrHoldingBranch

the patch as written won't break anything existing.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-10 02:52:49 -05:00
Joe Atzberger
42e81b4cdb AddRenewal - handle opac-renewal, empty branch arg.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-08 19:49:17 -05:00
Joe Atzberger
d1601b26a6 Quell 7 warnings: "my" variable $irule masks earlier declaration in same scope.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-08 17:00:03 -05:00
Ryan Higgins
600d479f4e Add a working fines script, some changes to CalcFine and Circulation.pm
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-07 15:59:54 -05:00
paul
685e9c182d BUGFIX renewal
otherwise, the new issuedate will be empty

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-07 15:56:24 -05:00
Galen Charlton
afb36c429e refactor C4::Log::logaction
This fix should resolve in whole or in part several bugs
characterized by the error message 'Can't use string ("0")
as a HASH ref while "strict refs" in use', including
bugs 1101, 1899, and 1910.

There are some possibilities for future work:

[1] Dealing with an operator override, e.g., where
    a circ operator needs to get a supervisor
    to enter a login and password and escalate
    the original operator's privileges for a
    transaction, e.g., to forgive a fine.  This
    is an enhancement, of course.
[2] Creating a dummy operator to represent
    batch job runs; or alternatively, give
    each batch job an option to log its work
    under a specified user ID.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-19 06:34:10 -05:00
Galen Charlton
087f31062d fix initiation of transfer on return of non-issued item
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:37:20 -05:00
Galen Charlton
6e01d8ca9f fix crash when levying a rental charge
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:37:11 -05:00
Galen Charlton
3102fab410 check on max renewals now respects item-level item types
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:37:08 -05:00
Galen Charlton
0c156b1ef3 removed warns
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:36:40 -05:00
Galen Charlton
9222f7a6ca created old_issues and old_reserves tables
The new tables have the same structure and constraints
as the tables they archive with the following exceptions:

* borrowernumber and biblionumber in old_reserves can be
  NULL
* the FK constraints (e.g., for itemnumber) on old_reserves
  set the child column to NULL if the parent row is deleted
  instead of deleting the child row.
* there is no FK constraint on old_issues.branchcode, allowing
  a branch to be deleted without changing archived requests.

Some miscellaneous cleanup was done as part of this patch:

* GetMemberIssuesAndFines (C4::Members) now uses bind variables
* fixed POD for GetMemberIssuesAndFines

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:36:31 -05:00
Ryan Higgins
bd8f90387b Add Local-use statistical patron category_type
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-10 05:27:37 -05:00
Ryan Higgins
542da50713 Reinstating use of C4::Calendar object on issuing.
Also implementing  useDaysMode syspref 3 modes:
  Calendar: every 'closed' day increments loan length by one.
  Days: ignore the calendar when calculating loan length.
  Datedue: increase loan length only to prevent due date from falling on 'closed' date.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-28 18:54:37 -06:00
Galen Charlton
456e179f1b circ: fix use of CircControl; staff user branch
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-28 07:59:04 -06:00
c43eadf3c7 Fix for bug 1908
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-28 07:58:46 -06:00
Ryan Higgins
1cd6263dde Adding barcode_decode syspref
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-19 20:22:01 -06:00
Chris Cormack
c3c47af750 Fix for renewals not working at circulation
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-18 21:42:27 -06:00
Chris Cormack
86716641ca Bug, using branchcode instead of branch
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-23 21:27:27 -06:00
Paul POULAIN
07210c5508 moving a misplaced * to fix a bug in issuingrules
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-20 10:17:57 -06:00
Chris Cormack
23996c7864 Fixing a bug that meant you had to have totals defined for
branch/itemtype/category in issuingrules, or TooMany would always fail

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-20 10:17:55 -06:00
Paul POULAIN
743caa04fa A book can be renewed if renewalsallowed > to renewals done, not >=
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-14 16:46:27 -06:00
Joe Atzberger
faf223b8bd Circulation.pm - cleanup, clarification of HLT-specific behavior. Please confirm HLT-specific code is still needed and OK.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-09 14:49:52 -06:00
Chris Cormack
ef6b767117 Changing CanBookBeRenewed to pass back the reason a renewal cannot proceed
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 16:13:20 -06:00
Henri-Damien LAURENT
c85458a33e BugFix for Circulation
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 14:07:20 -06:00
Joe Atzberger
d2a2f31027 Circulation.pm - BEGIN block VERSION and vars related to export.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-07 20:02:26 -06:00