Commit graph

937 commits

Author SHA1 Message Date
21c7f786bf bug 1532: various code cleanup
* export C4::Reserves::CancelExpiredReserves
* rename  misc/cronjobs/cancel_expired_reserves.pl
  to misc/cronjobs/holds/cancel_expired_holds.pl
* added cancel_expired_holds.pl to example crontab
* fix staff crash if AllowHoldDateInFuture is on
* expirationdate is now nullable instead of relying
  on 0000-00-00

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-02-18 22:49:48 -05:00
Kyle M Hall
3502810346 (bug 1532) Reserves Updates Ported From Dev_Week
This is a much improved re-implementation of the reserves updates from dev_week.
Less new code has been added, and more existing functions are used instead of adding new ones.

The 'Lock Hold' function has been removed due to it not working as intended.

[RM note for documentation: this adds the following features:

* ability to specify an expiration date for a hold request
  when placing it via the staff interface or OPAC
* daily batch job to cancel expired holds
* nice interface to change the priority of hold
  requests for a bib in the staff interface]

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-02-18 22:49:47 -05:00
Chris Nighswonger
599887a185 Bugfix: [1/3] overdue_notices.pl does not process all advertised fields
Note: overdue_notices.pl really needs to be completely re-written.

The script does not process all fields advertised in tools/letter.pl
This patch adds code to process all fields advertised as well as any
from the items table.

It also adds two additional tags for use in the letter templates:

<item></item> which should enclose all fields from the biblio, biblioitems,
and items tables.

<fine></fine> which should be enclosed by the item tag and should
enclose a currency identifier per ISO 4217. If this tag is present with
a proper identifier, the fine for that item will be displayed in the
proper currency format. Note: ISO 4217 changes from time to time therefore
all currencies may not be supported. If you find one that is not
supported, please file a bug with the Locale::Currency::Format author
Tan D Nguyen <tnguyen at cpan doe org>.

An example of the implimentation of these two tags in a notice template
might be like:

The following item(s) is/are currently overdue:

<item>"<<biblio.title>>" by <<biblio.author>>, <<items.itemcallnumber>>, Barcode: <<items.barcode>> Fine: <fine>GBP</fine></item>

Which, assuming two items were overdue, would result in a notice like:

The following item(s) is/are currently overdue:

"A Short History of Western Civilization" by Harrison, John B, 909.09821 H2451, Barcode: 08030003 Fine: £3.50
"History of Western Civilization" by Hayes, Carlton Joseph Huntley, 909.09821 H3261 v.1, Barcode: 08030004 Fine: £3.50

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-02-17 06:36:01 -05:00
84b3c05c0d Bug 2959 - Add a timeout parameter to the URL checker
Could improve performances for DB containing URLs which can't be fetched
(good or bad) quickly.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-02-16 06:48:01 -05:00
9dee98a0c9 Bug 2959 - Cache already failed URLs to speedup check-url.pl
Based on David Schuster improvement patch.

For David:

- To send the output into an HTML file, there is no need to add a
  paramater to this script, just redirect to a file:

  check-url --html --host-prot=http://koha-pro.mylib.org \\
    > /usr/local/koha/koha-tmpl/badurls.html

- If you want as a result a table with alternate rows, use CSS and
  JavaScript. For example, with jQuery (found with google):

  <style type="text/css">
  table {width:400px; border:1px solid blue;}
  .oddrow {background-color:#E5E5E5;}
  </style>
  <script type="text/javascript"
   src="http://code.jquery.com/jquery-latest.min.js"></script>
  <script type="text/javascript">
  $(function(){
    $("table.tiger-stripe tr:even").addClass("oddrow");
  });

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-02-14 19:45:54 -05:00
Henri-Damien LAURENT
ea3277d98d monthly_circulation_statistics.pl :Hard Coded date inside
Fixing that point
2010-01-28 15:11:56 +01:00
Henri-Damien LAURENT
ac7cea8dba MT2268 Printing html notices on pdf printers
This adds a shell script which is able to turn html files
into pdf and print them on a printer
It takes a directory where pdf files is laid, a css filename,
a host for printer and a Printername

printoverdues : generates PDF files from html files in directorys and prints them
  usage :
  printoverdues.sh directory [css [printer_host [printername]]]
   - directory      directory to use to apply html2pdf transform
   - css            css file to apply to html
   - printer_host   Network Name or IP of the printer (port possibly included)
   - printer_name   printername
  Note that css printerhost and printername are optional parameters
  Note that this script uses xhtml2pdf command
      xhtml2pdf command comes with pisa (a python library)
               To install you need setuptools library for python
               then type easy_install pisa
2010-01-28 15:11:56 +01:00
Kyle M Hall
bac8e37c83 Updated create_koc_db.pl
A new Koha Offline Circulation client has been written by Kyle M Hall in C++/Qt4.
Unfortunately, it requires an SQLite3 databse, where the PHP/Gtk client needs an SQLite2 database.

This update adds the switches --sqlite2 and --sqlite3 to the script to output either format.
2010-01-15 10:00:36 +01:00
afcfb0e8bd overdue_notices.pl send no email directly to patron
Something prevents overdue_notices.pl to send message directly to patron
email.
2010-01-15 09:59:32 +01:00
f1bc7f4094 overdue_notices.pl various bugs in HEAD 3.2
Those bugs must have been introduced by merge?

- Overdue to all libraries with overdue rules doesn't work
- Overdue to a specific library doesn't work also
2010-01-15 09:59:19 +01:00
Nahuel ANGELINETTI
6473368d90 (bug #3925) fix build_holds_queue.pl
This fix sql query when item-level_itype is set to "off".
2009-12-20 14:31:39 +01:00
David Birmingham
05081d919c Changes to advance_notices.pl cronjob
Enabled the -n (nomail) option, which was previously doing nothing.  In
addition, I have added an -itemscontent option to allow for <<items.content>>
to be used in the notices for DUE and PREDUE.
2009-12-20 14:28:52 +01:00
Henri-Damien LAURENT
213b78174b (bug #3695) allow to limit overdues by categorycode
This add two new options to overdue_notices.pl to select only overdues for few categorycodes, or to exclude few categorycodes.

Conflicts solved misc/cronjobs/overdue_notices.pl
2009-10-07 11:49:01 +02:00
Matthias Meusburger
daae4090e3 0001097: relances par bib 2009-10-06 11:36:21 +02:00
Nahuel ANGELINETTI
7e9c50ecda (bug #3573) use delimiter syspref generating overdues csv
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-30 11:30:13 +02:00
Henri-Damien LAURENT
4271bbb738 Modifying Members : Add Mod and GetMember
This update the way Member is added and editing so that import and Edition
 could be best automatized
GetMember evolves and allow ppl to serach on a hash of data

Adding SQLHelper A new package to deal with INSERT UPDATE and SELECT

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-30 11:29:23 +02:00
J. David Bavousett
3b3a406c27 Silence extraneous messages when in batch mode on build_browser_and_cloud.pl
The script already has a param -b for batch mode, which should silence informational
messages, but it missed a couple.  This patch fixes that.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-29 19:13:46 -04:00
Nahuel ANGELINETTI
0960b9a030 (bug #3558) fix build_browser_and_cloud
This patch, permit to take care of similar entries, if there is some diacritics or not.
(cherry picked from commit 776c177e3debedaf08fec65fbf8111675ccc93e7)

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-14 23:01:43 -04:00
Sébastien Hinderer
f1f833c965 bug 3464: Takes columns country and B_country of table borrowers into account in related operations.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-23 18:19:20 -04:00
5ea0d6bb9b bug 3481: imporve cart_to_shelf.pl
Use revised CartToShelf() to insure that indexer
knows to reindex affected bib records.

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
James Winter
13bef6756e Modified write in fines.pl to silence message unless verbose is set.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-12 21:31:45 -04:00
7242939cf4 future hold request followup 3 - build_holdsqueue
Fixed the holds queue job so that it correctly
ignores hold requests that are not yet scheduled
to be filled.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-11 19:23:40 -04:00
J. David Bavousett
eb849c690a Created database-tidying cron script
This little script establishes a framework for database cleanup on some regular
schedule.  Initial implementation provides for brute truncation of the sessions
table, and selective-by-age cleanup of the zebraqueue.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-02 11:25:44 -04:00
J. David Bavousett
7468f49bd6 Modified fines.pl to not throw warning if --out not specified
It appears, in Ryan's patch, that he wants to throw a warning to the log if
the directory specified in --out is not present.  (Further messages will
be given when the open-or-die occurs a few lines later.)  However, it was
throwing the warning if --out was not specified at all, which is
undesirable.  This patch modifies that bit to check for the presence of
whatever directory is going to be used, either --out, ENV{TMPDIR}, or /tmp.
As before, if the write to the directory fails for any reason--including
its' non-existence--that is handled later, but this message will help
inform the troubleshooter.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-06-29 07:59:59 -05:00
Ryan Higgins
26a01d406e Add Getopt::Long to fines.pl, and option to specify log output directory.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-06-15 12:43:33 -05:00
Paul Poulain
1e19efadd6 (not new_acq related) smallfix to avoid a die in case of an invalid record
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-28 17:31:28 -05:00
Nahuel ANGELINETTI
bea9939047 (bug #3020) forgotten cronjob
this is the cronjob needed for grace period.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-22 13:46:36 -05:00
Michael Hafen
6c0dbfb86d offline_circ must use SQLite v2 - because Kyles PHP does
The Offline Circ tool by Kyle Hall uses PHP's SQLite, which is SQLite
v2.  Gnope, which Kyle links, ships with libSQLite v2.

Let's not count on libsqlite3 not being installed for perl.  If it is
installed DBD::SQLite will use it, where DBD::SQLite2 will not.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-21 15:26:21 -05:00
Joe Atzberger
84ff3747b8 Script to check for corruption of marcxml, and optionally to attempt fix.
When marcxml cannot be parsed into a MARC::Record object, the biblio is
undisplayable and it obviously breaks many features in Koha.  This script
can test to parse every marcxml, and alert on failures.  Optionally, the
marcxml can be replaced from the marc field.

See extensive perldoc for details.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-12 05:21:11 -05:00
Joe Atzberger
8695b7e84f Prevent fines failure on NULL borrowernumber.
The problem is that we do not ensure that the issues table has valid
borrowernumber in each line.  This is exacerbated by Getoverdues()
returning data sorted BY borrowernumber.  So one NULL borrowernumber
in issues prevented ALL fines from being assessed.  The actual error
from fines.pl cron log is:
  No branchcode argument to new.  Should be C4::Calendar->new(branchcode => $branchcode)
  at /home/user/kohaclone/misc/cronjobs/fines.pl line 98

This patch deals only with getting fines to avoid crashing.  It does
not fix the underlying data integrity problem.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-05-11 17:43:38 -05:00
Joe Atzberger
6b120d34a4 Cleanup, pod fix and FIXME's added.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-24 08:26:37 -05:00
Joe Atzberger
4e76d3c1bb Bug 3090 - Add perldoc details
This is half of the fix for 3090.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-08 12:30:53 -05:00
Joe Atzberger
14be4400d8 Bug 3066 - Overhaul guided reports
execute_query now refactored, returns reliable results, does
zero presentation-layer crap.  Arguments reduced, client scripts
adapted to new API and performance improved.  Text::CSV now used
to generate CSV output, ensuring portability, encoding and accuracy.

Replaced tools/runreport.pl with misc/cronjobs/runreport.pl:
    ~ security fixed
    ~ documentation improved
    ~ TODO: finish sendmail option.

Bug 3077 also fixed.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-03 20:17:55 -05:00
Joe Atzberger
1caa108ef0 runreport.pl and prep work on Guided.pm
The old location of runreport.pl was under tools, leaving it exposed
to web requests.  This is a security flaw since it does NOT check any
Auth and allows the user to request any Saved Report be run.  This is
not a problem under misc/crontab/ and it suggests the more appropriate use.

Guided.pm is not fixed here (see bug 3066), but it is prepared to be fixed
and made compatible with runreport as detailed in the perldoc.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-04-03 20:14:32 -05:00
Galen Charlton
0d590c1e30 bug 3028: remove reservefix.pl cronjob
Removed cronjob, which was written to work around
a bug in 2.2 that no longer applies and is specific
to a single library in any event.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-11 09:12:16 -05:00
Daniel Sweeney
52356dcd30 Fixed a typo that kept branches out of the Advance Notice and Item Due notifications.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-11 08:37:05 -05:00
Joe Atzberger
506363d7bf Remove outmoded (and possibly dangerous) cronjob.
This script is superceded by rebuild_zebra and the sync_items scripts.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-06 14:21:16 -06:00
Nahuel ANGELINETTI
aea15bca2a (bug #3011) csv export doesn't fill all the fields
This patch just fix the script which export to csv the overdue, and field the missing fields

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-06 08:00:15 -06:00
Joe Atzberger
b0a1759e92 Bug 2883 - longoverdue cronjob fails to implement required functionality.
This does not fix all problems recorded in 2883 (see all the FIXME's), but
it does improve the script's basic feedback to an intelligible level.
It also adjusts the documentation and examples to correct bogus usage
instructions.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-03-05 10:30:29 -06:00
Galen Charlton
b8d979abe7 minor corrections to check-url.pl
* removed ersataz YAML::XS dependency
* use 'return' instead of 'return undef'
* minor language changes

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-26 15:21:14 -06:00
64505d7118 URLs checker enhancement (bug #2959)
Improve URLs checker script in the way (half way) pointed out by Galen:

- A C4::URL::Checker class handle URL checking. This class is not yet
  in a separate file in C4 directory. This class would be easily
  extended to accomodate authorities URLs checking.
- Script output can now be formatted in CSV or HTML. HTML version
  link directly to MARC biblio record editor.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-26 15:06:22 -06:00
Galen Charlton
66d2e36fa3 bug 2988: apply correct hold policy
Item type was not retrieved in a query, leading to a case
where an item could be selected by build_holds_queue.pl
to fill a hold request even where forbidden by the
library and item type-level policy.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-26 14:14:46 -06:00
37c50c6e34 A new script to check URLs in 856$u field
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-12 15:25:14 -06:00
Galen Charlton
b50051a8e5 holds policies fixes
* use item branch instead of patron's branch to
look up the applicable hold policies - this makes
requesting in the OPAC consistent with the intranet.
* when generating pick list using build_holds_queue.pl, only match items
to patrons if request is allowed.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-02-09 14:30:41 -06:00
a777fb43d7 Fixes bug #2875
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-31 09:47:57 -06:00
Joe Atzberger
26d08662e7 Minor updates to minor cronjob script.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-31 09:47:54 -06:00
Galen Charlton
c7dec5b3df crontab.example - add back some useful comments
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-31 09:45:00 -06:00
Joe Atzberger
07245470f0 Expand crontab.example
Default overdues to "triggered" mode (-t).

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-31 09:30:05 -06:00
Joe Atzberger
5102da0abc Revert "Updates to the example crontab"
This reverts commit def09f5a21.

As I emailed to the patches list Oct 06, 2008:

I suggest we need to revert Josh' commit def09f5a21.

The effect on the crontab example is to invalidate the lines being executed.  The lines were apparently copied in from a cron source, not crontab, despite the header describing it NOT being an example for cron.  It also runs longoverdue twice, instead of fines.pl.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-31 09:30:03 -06:00
62f3f59d8c Fixes bugs #2875-2879
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-29 19:59:44 -06:00
6345ddf493 A script generating keyword clouds from Zebra Indexes
See embedded perldoc to see how it works.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-22 16:41:53 -06:00
Galen Charlton
f74d63a1e5 bug 2864 [2/2]: move rss/* to misc/cronjobs/rss/*
As rss.pl is not a CGI script, moved it to join the
other cronjobs.  Full documentation of the script
is in misc/cronjobs/rss/rss.pl, but to summarize:

[1] rss.pl is run on the command line to produce
    an RSS XML document.  The output should be
    placed in a directory accessible to the OPAC
    (or staff) web interface so that users can download
    the RSS feed.  An example of usage:

    misc/cronjobs/rss.pl lastAcquired.conf

    Normally rss.pl should be run periodically (e.g., daily)
    to keep the feed up-to-date.

[2] The configuration file (e.g., lastAcquired.conf) lists

    * name of the template file to use
    * path of output file
    * SQL query

    rss.pl runs the SQL query, then feeds the output of the
    query through the template to produce the output file.

[3] The template file (e.g., lastAcquired.tmpl) uses
    HTML::Template syntax like any of the HTML
    templates for the web interface.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-17 08:02:34 -06:00
Nahuel Angelinetti
72c35aa328 bug 2827: better language check
This patch use a regexp instead 'eq' to find if french is an opaclanguage.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-11 10:03:54 -06:00
Joe Atzberger
4a3fcbbe0d Comment out unused variable.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-12-03 09:17:41 -06:00
Galen Charlton
aa686ee5ab bug 2606: reduce size of offline circ patron database
Reduce the size of the SQLite database produced by
create_koc_db.pl by emiting only the columns
actually used by Kyle Hall's offline circ client.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-11-18 16:46:21 -06:00
Ryan Higgins
4104c69757 Bug 2660: Add command-line options to overdue notice script.
This commit adds two options to the overdue_notices.pl script.
The notices are now generated in one of two modes: default or triggered.
In default mode, every time the script runs, a notice is generated if an item
is overdue within a notice date range.  This mode is suitable for a weekly cron
(or manual run), but the notice triggers should be syncronized with the cron script such that
the script is run once per notice date range.  Otherwise, duplicate messages will
be generated ( or no notice generated if a notice date range passes without the script being run).
Triggered mode is suitable for a nightly cron job: a notice is generated only on those
days that an overdue item enters a notice date range.  This mode is susceptible to message
loss when the cron script fails to run, or when notice triggers are edited.

A second flag is added: --list-all, which causes items.content to list all currently overdue items.
Without this flag, only items that are overdue within the given notice's date range are listed on
that notice.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-10-21 10:35:34 -05:00
Galen Charlton
9fd39af7a0 bug 2677: restore RandomizeHoldsQueueWeight and StaticHoldsQueueWeight
Restoring the functionality of these sysprefs as part of the
rework of build_holds_queue.pl:

* StaticHoldsQueueWeight is an ordered list of library codes.
  The order of the libraries in this list determines the order
  of libraries in which available items will be chosen to be
  targeted to holds.  Note that if this list does not include
  a library, items from that library will never be targeted to
  holds and staff will never be asked to retrieve items for
  title-level holds from those libraries.

* RandomizeHoldsQueueWeight is a Boolean parameter, indicating
  whether to randomize the libraries in the StaticHoldsQueueWeight
  list.

If neither RandomizeHoldsQueueWeight nor StaticHoldsQueueWeight is
set, then the libraries will be used to target items to holds in
alphabetical order by library code.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-10-16 09:50:52 -05:00
Pianohacker
861069e269 fix date formatting in overdue_notices.pl
This makes overdue_notices.pl format dates in fields that both start and end with 'date'.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-10-01 12:46:16 -05:00
720b31e0b4 Bugfix #2633
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-09-26 09:12:29 -05:00
Andrew Moore
00f35d2fde bug 2594: fixing SQL statement to populate patron information in offline circulation db
The offline circulation tool can use all of the patron information, not just their ID
numbers. This patch populates the offline circulation database with patron information.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-09-11 07:56:59 -05:00
Joe Atzberger
aa4c6ff62f Fines fixes: apparent problems with fines prevent processing.
CalcFine returned values that mismatched expectations in fines.pl.

fines.pl refactored: added debugging, prevent needless recreation of
Calendar objects by storing them in hash by branch.
Still outstanding problems with fines, including the output of a field
that has no other references in Koha (so is always undef) and the
incorrect description of FinesMode.

Calendar exported "new" erroneously.  I also cleaned up the queries to
avoid needlessly compiling additional statement handles.

Please test and consider application to 3.0 maintenance.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-29 20:31:41 -05:00
Joe Atzberger
586e8b0869 Usage option correction (-h not -n)
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-28 09:22:55 -05:00
Vincent Danjean
c52357edc6 Still fixing permission and first line of scripts
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 20:23:54 -05:00
Vincent Danjean
2a9d85eade No 'BOM' marker for a script file
'#!' must be the first characters

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 20:23:54 -05:00
Andrew Moore
556d9cc43d bug 2503: refactoring and bugfixing on create_koc_db.pl
This is the script that generates the patron and holdings database for the offline circ module. I
touched up a few parts of it:

* fixed the database syntax to squash a bug or two
* extracted some methods for readability and reuse
* added some documentation
* added a --file and --force command line argument
* made it die if DBD::SQLite is not present. That module is required for this feature.

Here's an example crontab line that will generate the borrowers.db file each midnight.

0 0 * * * create_koc_db.pl --file /tmp/borrowers.db

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 17:05:25 -05:00
Andrew Moore
8c4a44ed67 bug 2503: moving offline circulation db generator to misc/cronjobs directory
This script generates a sqlite database of patron and holdings data for the offline circulation tool.
It's a cronjob, so it should go into misc/cronjobs

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-20 17:05:25 -05:00
Galen Charlton
8588c7d79e bug 2527: avoid targeting of items on hold shelf
SQL fix to properly ensure that if an item is on
the hold shelf, it will not be used for request
targeting, which applies only to items that are
not already on the hold shelf.

Prior to this fix, when checking out an item on the
hold shelf that fills patron A's hold request, it
was possible for that request to not be marked as
filled if another patron had an item-level request
on the item; the second patron's request was
incorrectly targeted by that item.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-18 07:17:36 -05:00
Galen Charlton
516ba77b8b bug 2522 [3/3]: populate hold_fill_targets
This batch job now automatically populates the
holds request targeting table hold_fill_targets.

This patch is essentially a revamp of the job,
and includes fixes for the following bugs:

2281 (holds queue report including unavailable items)
2331 (holds queue report not working with item-level
      holds)
2332 (holds queue script should attempt to fill
      many requests as possible).

Several functions in this batch job are candidates
for being moved to C4::Reserves:

GetBibsWithPendingHoldRequests()
GetPendingHoldRequestsForBib()
GetItemsAvailableToFillHoldRequestsForBib()
MapItemsToHoldRequests()

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2008-08-18 07:15:49 -05:00
Ryan Higgins
49ffa55a2e Update longoverdue.pl cron job to manage setting lost values.
This patch deprecates the NoReturnSetLost system preference, which, as it
turns out, was not implemented anyway.  New longoverdue script allows one to
specify on the commandline system-wide delays for changing items to different
lost statuses, and optionally charge for the item.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-10 15:54:29 -05:00
Joshua Ferraro
ef4f62e714 Adding three statistics files that NPL uses, they don't
work 100% with stock 3.0 yet but are good examples of
custom scripts that libraries might want to write and
schedule periodically
2008-08-10 15:38:42 -05:00
Joshua Ferraro
def09f5a21 Updates to the example crontab 2008-08-10 15:18:48 -05:00
Ryan Higgins
9153e3d425 Update fines cronjob: remove redundant scripts, remove some superfluous code in remaining fines.pl.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-10 13:06:52 -05:00
Joshua Ferraro
482a87eaf9 Revert "Add missing to and from email addresses to user and admin EnqueueLetter calls, respectively. Add extra level to verbosity."
This reverts commit 67f229cba7.
2008-08-08 10:51:45 -05:00
Southeastern University
67f229cba7 Add missing to and from email addresses to user and admin EnqueueLetter calls, respectively. Add extra level to verbosity.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-08 06:10:31 -05:00
Galen Charlton
6e1869abcf bug 2473: correct display of items.content
Correct bug in output of overdue notices that has
items.content displaying only the number of columns
in each items.content structure (currently, 4).

Patch inspired by patch submitted by Paul Poulain.

[LL bug 31]

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-05 15:12:02 -05:00
Joe Atzberger
830d1f19b4 Rename crontab.example
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-04 15:28:15 -05:00
Jesse Weaver
ac0d340bd5 kohabug 2345: bad comparisons pervade reports
This patch changes all $foo eq undef's to !defined($foo). It also makes misc/spellcheck_suggest/build_spellcheck_suggest.pl have proper syntax.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-27 06:11:08 -05:00
Joe Atzberger
4998eeed4a Example cronjob file.
We have 5 or 6 different cron'd tasks for a single installation now,
so an example is in order.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-27 06:05:11 -05:00
Andrew Moore
cd6d0c5d60 bug 2386: adding newline between items in overdue notices
The lines for each item in the overdue notices were not separated by newlines. This cause them to
all be smashed together. I'm putting a newline between them.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-24 11:22:03 -05:00
Andrew Moore
b5697e6fd1 bug 2274 [4/5]: removing obsolete misc/cronjobs/overduenotices*.pl programs
These three programs have been replaced by misc/cronjobs/overdue_notices.pl:

 overduenotices-30.pl
 overduenotices-csv.pl
 overduenotices.pl

This patch deletes them.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-10 09:10:50 -05:00
Andrew Moore
8ae66932cd Bug 2274 [3/5]: consolidating overdue notice cronjobs into one
This patch adds the misc/cronjobs/overdue_notices.pl script that is intended to replace
overduenotices.pl, overduenotices-30.pl and overduenotices-csv.pl. It adds messages to
the message_queue to be sent later (by process_message_queue.pl). It also marks borrowers
as debarred if their issues become too overdue.

It is intended to be run from cron nightly with usage something like:
0 2 * * * misc/cronjobs/overdue_notices.pl

C4::Members:
 - improved documentation on ModMember
 - made ModMember return a useful value (the return value of the database call)
 - added a DebarMember method
 - adding t/lib/KohaTest/Members/DebarMember.pm to test ModMember

misc/cronjobs/overdue_notices.pl
 - designed to replace overduenotices.pl, overduenotices-30.pl, and overduenotice-csv

Changes to C4::Letters:
 - EnqueueLetter now lets you pass in to_address and from_address which can override defaults
 - _send_message_by_email pays attention to these defaults.
 - now handles attachments with MIME::Lite

C4::Overdues
 - added GetBranchcodesWithOverdueRules
   - added t/lib/KohaTest/Overdues/GerBranchcodesWithOverdueRules.pm to test that.

circ/overdue.pl
 - replaced call to obsolete overduenotices-csv.pl with call to overdue_notices.pl

KohaTest:
 - added three helper methods: random_phone, random_email, random_ip
   - these can be used to populate example records
 - you can now pass an optional lengh to random_string

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-10 09:10:46 -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
Ryan Higgins
fad67f6ef2 add single-transaction flag to mysqldump in example backup script.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-03 06:00:49 -05:00
Joe Atzberger
cf89f763f5 Fix typo in field name, apply branchcode selector logic from fines-ll.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-31 21:59:39 -05:00
Joe Atzberger
2ba8763bb4 Fines repair. Make fines2.pl work, give feedback, improve comments and perldoc.
Remove $dbh->disconnect statements as counterproductive.
Prevent description field from begining with whitespace.
Added robust debug elements.  Test script behavior with:
    perl misc/cronjobs/fines2.pl -v
and:
	mysql> select * from accountlines;

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-29 07:04:42 -05:00
bfcdfb7f45 Interface improvements to Holds Queue report and changes to the script provided by jmf
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-20 14:41:44 -05:00
Joshua Ferraro
2ee27fb1cc Final update to holds queue work: adds link to holds queue
from circulation dashboard, creates new sysprefs, assigns
the sysprefs to the proper tab in sysprefs (Circulation),
updatedatabase changes to do the previous, and fixing one
redundent limit in the query for build_holds_queue.pl

Note: still need to address item-level holds
2008-05-20 12:36:40 -05:00
Joshua Ferraro
a9a4965277 Adds a cron script to be run periodically that populates
the tmp_holdsqueue table. This is an alternative holds
targeting workflow that is more suitable for multi-location
libraries than the default holds picklist report.

Note to documentation writers: this summary should be
added to any holds documentation as an overview of
the avaialable methods for holds fulfillment.

This alternative holds workflow assumes an
expectation that the system should target a specific
item for a given hold request, attempt to fulfill the
hold with that item, and if unable to fulfill, select
an available item at another location to fulfill the
hold.

This is quite different than the default Koha behavior
which uses a 'broadcast' method of hold fulfillment.

How it works:

This script weights available locations for holds based
on options specified in two system preferences:

StaticHoldsQueueWeight
	Allows the library to specify a list of library
	location codes -- if used alone, it will rank the
	list statically, selecting the top-ranking available
	location to be added to the picklist.

RandomizeHoldsQueueWeight
	If RandomizeHoldsQueueWeight and StaticHoldsQueueWeight
	are set, the list of library codes in the
	StaticHoldsQueueWeight syspref are randomized rather
	than statically ranked. If RandomizeHoldsQueueWeight
	alone is set, the list of all available library codes
	is used to randomize the weight.

If neither syspref is set, the list is statically
ranked according to how they are pulled out of the system
database.

NOTE: This has not yet been tested with item-level holds
2008-05-20 10:58:24 -05:00
Paul POULAIN
dfcdc73be6 bugfix : ship utf-8 encoding in mail header
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-12 10:07:55 -05:00
Henri-Damien LAURENT
12a828dd21 Bug Fixing : overduenotices wrote a file on disk before sending to browser
this script had quite serious issues :
- it would not use mindays and maxdays variables
- It would send latin1 where utf8 was expected
- It would send data without text delimiters (; was chosen if title contains ; it would have been a problem " used as delimiters now)
- It would write a file when it was not asked
Now stores the results in a string before printing it.
New option added to store result into a file : -o filename

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-12 10:06:31 -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
a315de5281 Alter Overdues::CalcFine to use Dates objects.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-05-12 09:29:12 -05:00
Ryan Higgins
2eed36a08e Fix calls to CalcFine, and make fines obey CircControl syspref (get homebranch withssue data).
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-08 08:37:01 -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
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
Joe Atzberger
b1f620c723 overduenotices-30.pl - Made this work, take command line SMTP, report out errors,
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-22 21:49:07 -06:00
Paul POULAIN
3c58e8faad overduenotices-csv from 2.2 + DL file from overdue.pl
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-11 06:09:59 -06:00
Galen Charlton
3b5c4e0fb9 misc/cronjobs/update_items.pl: fixed syntax errors
Fixed syntax errors preventing compilation; however,
unsure whether this is a dead utility that should be
removed outright.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 20:22:08 -06:00
Galen Charlton
35f8f65b41 item rework: replace direct SQL update of items
with ModItem calls

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:24:38 -06:00
Joshua Ferraro
dd50153f00 moving some files and deleting cataloguing/updateitem.pl, the _real_ updateitem.pl is in catalogue/
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-30 12:09:52 -06:00
Joshua Ferraro
dcb3858ffd Several important commits:
* adding zebra daemons for managing server and queue processes
  * improvements to the README.debian file
  * Fixes to Search.pm since last series of commits broke zebra-based
    searching (again)
  * moving some files to new misc/bin and misc/cronjobs

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-22 18:26:39 -06:00
Galen Charlton
d579648df1 Merge git://git.koha.org/pub/scm/koha 2007-12-18 17:46:54 -06:00
Joe Atzberger
35fa8f148b Delete extraneous empty file.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-17 19:20:58 -06:00
Galen Charlton
b8a58c4934 installer: command-line scripts improve finding C4 modules
Command-line scripts now use a new SCRIPT_DIR/kohalib.pl
to put installed location of Koha's Perl modules
into @INC.
2007-12-17 09:13:54 -06:00
Galen Charlton
f5903fbbb5 installer: location of koha-conf.xml
* rewrite-config.PL now puts in installed location
  of koha-conf.xml in C4/Context.pm so that
  correct config can be found even when
  KOHA_CONF is not set.  Note that setting KOHA_CONF
  will still override path set by installer.
* changed references from koha.xml to koha-conf.xml
2007-12-17 09:13:53 -06:00
Joe Atzberger
377db43117 C4 and misc: permissions fixes
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-13 19:00:34 -06:00
Joshua Ferraro
8619dfc0e2 cleanup of misc/ for Dates integration 2007-12-04 19:08:50 -06:00
Joe Atzberger
28159f04de misc subdir - Dates.pm integration and warnings fixes.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-04 18:21:13 -06:00
Joshua Ferraro
5e469596da fixing limit by availability, using nifty _ALLRECORDS in Zebra
to handle NULL values

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-25 16:26:20 -06:00
Paul POULAIN
0c8b69237d better to have verbose=0
or the sysadm will get zillions of mails ;-)

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-20 16:23:48 -06:00
Chris Cormack
4a634069ee Couple of little fixes to the zebraqueue daemon
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-18 12:30:36 -06:00
Joshua Ferraro
55f3444429 adding xisbn support
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-17 10:49:30 -06:00
Galen Charlton
5c882558a4 bugfixes for reindexing problems
* now properly deletes deleted authorities from index
* now actually ignores duplicate work
* standardized on recordDelete instead of delete_record
  for bibs and recordDelete for authorities

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-12 18:32:33 -06:00
Paul POULAIN
23c79b8229 bump to 3.00.00.017 : adding columns to zebraqueue
The zebraque_start scripts works, but it not friendly when you try to track what he did
as records are deleted after done.
This commit changes the behaviour : 2 columns are added done & timestamp.
done is set to 1 when a line have been done. And the timestamp contains the timestamp of the last action (either line creation if done=0 or operation if done=1)

should be helpfull to track problem.

the table will grow, but i'll add soon a DELETE FROM zebraqueue WHERE timestamp > 30 days or something like that

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-10-31 19:43:00 -05:00
Joshua Ferraro
76064f4623 adding SMS stuff so we don't forget about it
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-10-29 21:21:20 -05:00
Paul POULAIN
f2031566bb #1447 : avoid a SQL message when filling the table
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-10-05 19:40:05 -05:00
Paul POULAIN
6f7efca7e1 BUGFIX for browser and nozebra tables
- adding browser and nozebra table definition to kohastructure & updatedatabase
- bumping to 3.00.00.005

Signed-off-by: Chris Cormack <crc@liblime.com>
2007-10-02 04:35:49 -05:00
Paul POULAIN
62ae21903c removing a lot of useless files in misc
Signed-off-by: Chris Cormack <crc@liblime.com>
2007-09-03 03:44:41 -05:00
Joshua Ferraro
e9ae8c0686 patches from paul 2007-08-08 07:41:19 -05:00
Chris Cormack
2e4a11773c Merge branch 'master' of /home/jmf/repos/koha-rm-root.git/ 2007-08-08 07:36:43 -05:00
Paul POULAIN
813d2f3359 removing an old test script
Signed-off-by: Chris Cormack <crc@liblime.com>
2007-08-08 07:25:11 -05:00
Paul POULAIN
8542e06b25 reservelist.pl is now in Koha itself, in circ/transfertodo.pl, removing the old script
Signed-off-by: Chris Cormack <crc@liblime.com>
2007-08-08 07:25:11 -05:00
toins
5ba6c440d3 adding an eval to prevent an execption when getting marc biblio 2007-07-20 08:34:58 +00:00
tipaul
23427c51b9 some fixes (and only fixes) 2007-06-15 13:44:44 +00:00
tipaul
28f3c54914 fixing bug for authorities zebraqueue reindexing 2007-05-28 16:26:44 +00:00
tipaul
5ff7fcffa4 Bugfixes & improvements (various and minor) :
- updating templates to have tmpl_process3.pl running without any errors
- adding a drupal-like css for prog templates (with 3 small images)
- fixing some bugs in circulation & other scripts
- updating french translation
- fixing some typos in templates
2007-05-22 09:13:54 +00:00
hdl
097fef712a Removing $dbh from GetMarcFromKohaField (dbh is not used in this function.) 2007-04-27 14:00:48 +00:00
tipaul
c596d55374 HUGE COMMIT : code cleaning circulation.
some stuff to do, i'll write a mail on koha-devel NOW !
2007-04-04 16:46:22 +00:00
tipaul
a481fad4b7 Code cleaning :
== Biblio.pm cleaning (useless) ==
* some sub declaration dropped
* removed modbiblio sub
* removed moditem sub
* removed newitems. It was used only in finishrecieve. Replaced by a Koha2Marc+AddItem, that is better.
* removed MARCkoha2marcItem
* removed MARCdelsubfield declaration
* removed MARCkoha2marcBiblio

== Biblio.pm cleaning (naming conventions) ==
* MARCgettagslib renamed to GetMarcStructure
* MARCgetitems renamed to GetMarcItem
* MARCfind_frameworkcode renamed to GetFrameworkCode
* MARCmarc2koha renamed to TransformMarcToKoha
* MARChtml2marc renamed to TransformHtmlToMarc
* MARChtml2xml renamed to TranformeHtmlToXml
* zebraop renamed to ModZebra

== MARC=OFF ==
* removing MARC=OFF related scripts (in cataloguing directory)
* removed checkitems (function related to MARC=off feature, that is completly broken in head. If someone want to reintroduce it, hard work coming...)
* removed getitemsbybiblioitem (used only by MARC=OFF scripts, that is removed as well)
2007-03-29 13:30:31 +00:00
tipaul
f8e9fb6445 rel_3_0 moved to HEAD (introducing new files) 2007-03-09 15:34:17 +00:00
tipaul
a3999812e6 rel_3_0 moved to HEAD 2007-03-09 14:52:58 +00:00
tipaul
e82eca42c9 see mail on koha-devel : code cleaning on Search.pm + normalizing API + use of biblionumber everywhere (instead of bn, biblio, ...) 2005-09-22 10:01:45 +00:00
joshferraro
fd9122cdba produces a comma separated list of currently available reserves, with item and borrower details.
NOTE: it's NPL-specific because of hardcoded branch info -- this could be
fixed with a query for branches.
2005-05-04 14:01:45 +00:00
joshferraro
ce775cce9c Fixes priority of reserves it also e-mails a list of 'problem' reserves to me at the library 2005-05-04 13:58:35 +00:00
joshferraro
82b9f92bd9 set itemlost status to '2' ("long overdue") on items more than 90 days overdue. 2005-05-04 13:54:01 +00:00
joshferraro
8810f62ad4 Changed the status of a Juvinile patron to Adult on his/her 18th birthday 2005-05-04 13:52:03 +00:00