Galen Charlton [Thu, 12 Feb 2009 20:20:43 +0000 (14:20 -0600)]
bug 2126: reduce round-off errors in fine balance
If a patron has a number of fine transactions, the
total could be wrong. This is particularly noticeable
when a patron has a zero balance, as summing a group
of floating point values derived from decimal(6,2) columns
can result a scalar value that is not zero.
Koha really should be using integral arithmetic
or appropriate accounting modules to do fine and
acquisitions calculations. Using floating point scalars
for monetary amounts is always a mistake.
This patch also prevents an account maintenance
fee from being applied when renewing a patron if the
amount would be 0.
Joshua Ferraro [Wed, 4 Feb 2009 16:46:24 +0000 (10:46 -0600)]
Fixes to two issues with status display on OPAC:
1. rather than testing for notforloan == -1, test for any negative values to set the On order status
2. in cases where itemcallnumber is blank or null, don't display the itemcallnumber brackets []
Joshua Ferraro [Wed, 4 Feb 2009 16:46:23 +0000 (10:46 -0600)]
Distinguish between items marked 'not for loan' and 'Available'
This patch works with XSL* sysprefs == ON, a future patch will address XSL sysprefs==OFF
Items with notforloan set to a negative number still designate an 'ordered' status
Some items are marked 'not for loan' by setting that value at the item level, others by assigning
that value to that item's itemtype. This patch works for both scenarios.
Specific changes this patch introduces to the OPAC:
* Adds a new OPAC results page key 'Copies available for reference:'
* Changes 'Copies available at:' to 'Copies available for loan:'
* Changes the availability limit label in opac-advsearch from:
'Only items currently available' to 'Only items currently
available for loan or reference
* Displays the authorised value for the specific notforloan value in the OPAC detail page in
parentheses next to 'Not for Loan'
Galen Charlton [Fri, 30 Jan 2009 21:21:29 +0000 (15:21 -0600)]
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.
Joe Atzberger [Mon, 2 Feb 2009 20:36:19 +0000 (14:36 -0600)]
Bug 2940 - private shelf (list) display error on 2nd and subsequent pages.
The before/after URL for the 2nd page of list elements:
http://atz.dev.kohalibrary.com/cgi-bin/koha/opac-shelves.pl?display=privateshelves?viewshelf=120&itemoff=2
http://atz.dev.kohalibrary.com/cgi-bin/koha/opac-shelves.pl?viewshelf=120&display=privateshelves&itemoff=2
The change in query string arguments is incidental, the prevention of multiple "?" is essential.
Michael Hafen [Tue, 3 Feb 2009 23:46:25 +0000 (16:46 -0700)]
tweak Inventory tool and sub in C4/Items so call number min and max are not required
This changes the setting if default values in the inventory tool where
the min and max call number are concerned. Also changes how the query
is formed in C4/Items so that these two are not required.
John Beppu [Tue, 3 Feb 2009 22:02:12 +0000 (16:02 -0600)]
bug 323: Item Circulation Alerts UI Fixes
- fixed cross browser issues. (IE and Safari don't let you say
someobject.class, presumably because "class" is a keyword that's reserved
for future versions of JS. Firefox and Opera allow it.)
- added text to the grid for added clarity.
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com> Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
John Beppu [Tue, 3 Feb 2009 22:02:09 +0000 (16:02 -0600)]
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>
John Beppu [Tue, 3 Feb 2009 22:02:08 +0000 (16:02 -0600)]
Brand New UI for Alert Configuration
- grid layout (javascript required now)
- makes distinction between checkin and checkout messages
- no longer have to click on a button to submit the branch selection form
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com> Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
John Beppu [Tue, 3 Feb 2009 22:02:06 +0000 (16:02 -0600)]
Revised Schema
- removed 'rss' transport
- made the messages non-digest
- updated the default text of the templates in the letters table
- [table] item_circulation_alert_preferences
- added notification column
- removed is_enabled column
- [table] message_queue
- added metadata column
- added letter_code column
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com> Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
John Beppu [Tue, 3 Feb 2009 22:02:04 +0000 (16:02 -0600)]
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>
John Beppu [Tue, 3 Feb 2009 22:02:03 +0000 (16:02 -0600)]
New C4 Modules
* C4::Category
- patron categories as objects
- an all() method to return all the categories as a list
* C4::ItemType
- itemtypes as objects
- an all() method to return all the item types as a list
* C4::ItemCirculationAlertPreference
- wrapper around the item_circulation_alert_preference table
- create() and delete() methods for easy manipulation of the preferences
- I regret giving it such a long name.
- The item_type column should've been named itemtype to make it
more similar to pre-existing tables. Oh well.
(C4::Category and C4::ItemType were made so that I wouldn't have to
write SQL inside my CGI scripts.
Their main purpose is to provide an easy way to get a list of
patron categories and item types.
Do not be fooled by the amount of POD.
There's actually very little code in these modules.)
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com> Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
John Beppu [Tue, 3 Feb 2009 22:01:58 +0000 (16:01 -0600)]
Schema Changes for Email Checkout Slips
- new table, item_circulation_alert_preferences
- new data:
- letter -- 2 new templates
- message_transport_types -- feed
- message_attributes -- Item Check-in and Item Checkout
- message_transports -- for each attribute and for each transport_type...
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com> Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
this patch add a report for serials.
It's have to limit branch/bookseller, and excluding expired serials.
It's possible to export in CSV format.
This patch will have another, to add this report in menus.
Joe Atzberger [Wed, 21 Jan 2009 01:18:22 +0000 (19:18 -0600)]
Prevent js failure if syspref "gist" is undefined.
The javascript is malformed and therefore fails the onsubmit check if
gist does not receive a value. This patch allows failover to default 0.
Also removed an unused dbh.
Joe Atzberger [Wed, 21 Jan 2009 01:18:25 +0000 (19:18 -0600)]
Minor rework of template js.
Lines explicitly ended with semicolons. Allow some better behavior if TMPL_VAR's
are undefined or zero.
Note FIXME added. I believe this is part of the fragmentary integration of
Katipo code for GST. Would be obliged if someone with access there can confirm.
Joe Atzberger [Wed, 28 Jan 2009 19:25:48 +0000 (13:25 -0600)]
Cleanup and perltidy.
Add "use warnings", remove unused variables and unnecessary finish/disconnect
at the end. This script could be improved to run only on tables that need to
be altered instead of touching all of them. It should also probably contain
warnings to the effect that it does not rescue your DATA that was forced into
whatever encoding the table used previously.
Jesse Weaver [Thu, 15 Jan 2009 21:26:13 +0000 (15:26 -0600)]
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.
Owen Leonard [Fri, 9 Jan 2009 02:03:53 +0000 (20:03 -0600)]
Related to earlier patch: adding body id to add flexibility to CSS customizations.
This patch adds a different id to opac-shelves, opac-suggestions, and opac-tags based on whether or not the user is logged in, allowing for changes to style based on logged-in status.
this patch change the attachment encoding, else if the file is too large, koha throws an error.
This solution was found on koha list in a Joshua's e-mail
This patch add the form for sending shelf by e-mail, and add a button in shelves that allow the user to send a shelf.
It's an approximate copy of the send basket feature.
The default syspref setting for intranetuserjs should be empty. At one
time, an unwanted value accidently got put in there. This removes the
syspref only if it equals the unwanted value.
Galen Charlton [Fri, 9 Jan 2009 18:16:43 +0000 (12:16 -0600)]
bug 2505: more warnings fixes in C4/Context.pm
* more portable way to determine uname for
crash messages
* C4::Context->userenv now returns undef instead
of 0 if no userenv has been set yet; returning
undef when necessary is almost always better
than returning a scalar when a hashref is
normally expected.
Joe Atzberger [Thu, 8 Jan 2009 03:47:36 +0000 (21:47 -0600)]
Bug 2900: fix GetPendingIssues.
GetPendingIssues did several bad things:
~ select * on a 4 table join,
~ including multiple namespace collisions,
~ including large fields marc and marcxml from biblioitems,
~ return ($count, \@array_being_counted).
Not everything is fixed here (see FIXMEs), but the situation is
improved considerably, with bug 2900 resolved. The "timestamp"
namespace collision in query should be resolved by separate patch.
Joe Atzberger [Wed, 7 Jan 2009 20:57:29 +0000 (14:57 -0600)]
GetAuthValCode calls were positioned inside the loop,
despite the same values being supplied each time. Then
the conditional assignments would repeat the same calls again!
That means execution was liable to query the DB at least once
and as many as four times per item. With a large number of items
this is an unnecessary burden. By moving the calls outside
the loop, we can guarantee that we never have to call the DB for
that info more than twice (once for lost, once for damaged).
Michael Hafen [Wed, 27 Aug 2008 22:46:57 +0000 (16:46 -0600)]
javascript redirect when selecting a patron on circulation.pl Patron Selection Screen
This adds a little javascript to the Patron Selection form input after searching for a patron to check out to.
On click it redirects to checking out to the clicked patron.
Owen Leonard [Tue, 21 Oct 2008 20:15:26 +0000 (15:15 -0500)]
Hiding SMS settings in OPAC if SMSSendDriver is not defined. Fixes Bug 2455, remove SMS column from patron messaging preferences if SMSSendDriver is not defined
Joe Atzberger [Fri, 19 Sep 2008 00:02:48 +0000 (19:02 -0500)]
Dates expanding to expose some time (HH:MM:SS) granularity.
t/Dates.t is essentially restored from its previous state with
the revision that it now does not use C4::Context or check syspref
for the default date format. Instead it sets the C4::Dates default
directly, taking cue from command line argument or ENV. ISO format
revised to accept "T" separator and "Z" (zulu) terminator. POD
expanded and corrected.
Joe Atzberger [Fri, 12 Dec 2008 21:28:01 +0000 (15:28 -0600)]
authorized_values cleanup
Moving towards being able to enable warnings. Use one dbh, and stop
redeclaring it in each conditional chunk. ($sth still need to be cleaned.)
Toggle in script removed (tmpl should use loop context var __odd__).
$sth->finish calls removed where unnecessary.
Owen Leonard [Wed, 31 Dec 2008 20:28:38 +0000 (14:28 -0600)]
Providing options for adding to order when existing record search has failed.
I've duplicated the "Add to Order" block on the search results page to display after a user has searched for an existing record to add to an order. This block is displayed whether or not results were found on the assumption that a non-empty result set may not contain the desired result. Changes to neworderbiblio.pl allow supplier name to appear in breadcrumb nav.
Owen Leonard [Tue, 4 Nov 2008 16:21:47 +0000 (10:21 -0600)]
Fix for Bug 2700, Keeping Data When Adding Multiple Items
When cloning the set of inputs, the new js
increments the IDs of each form field (to keep them unique) and automatically
selects the option that was selected in the cloned group.
Joe Atzberger [Wed, 3 Dec 2008 15:31:50 +0000 (09:31 -0600)]
Labels Cleanup (Part 2 of Many)
CalcNextLabelPos pulled out of each subblock.
Print of header and initial structure deferred until later to allow fatals_to_browser to
display any fatal errors encountered in data preparation. This does not fix Unicode "wide character" crashes.
Created subroutine for debug dump lines.
Comparisons corrected (numerical not string compare).
Note: this script is still insecure with NO AUTH CHECK.
Andrew Moore [Wed, 17 Dec 2008 22:28:04 +0000 (16:28 -0600)]
Bug 2505: adding warnings to C4/Biblio.pm
I added 'use warnings' to C4::Biblio and made a handful of changes to
reduce the number of warnings emitted.
One notable spot is the change in the regex in
C4::Biblio::GetNoZebraIndexes. I have replaced the parens with a character
class. The parens change the way 'split' works, making it return elements
for each delimiter. We did not want those elements returned, and they
only resulted in "'' => undef" being added to the final hash. They also
resulted in two "undefined" warnings for each pass through the loop. I've
included a simple test for this function.
There may be a few warnings still emitted in spots, but either I haven't
seen them yet, or I have chosen to not fix them yet because they require
too much change.
Joe Atzberger [Fri, 2 Jan 2009 20:35:03 +0000 (14:35 -0600)]
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.
Joe Atzberger [Wed, 3 Dec 2008 15:31:49 +0000 (09:31 -0600)]
Labels Cleanup (Part 1 of Many)
Consolidated error catching after evals.
Removed unnecessary $sth->finish calls and some unused variables.
Pulled query for itemtype mappings outside DrawSpineText and added
a class level caching variable to eliminate repeated queries for
*each piece of text* on *each label*! This was a major performance
downside.
Note: this does not fix Unicode problems, but it does add some notes
on unsuccessful attempted workaround using utf8::encode.
C4::Labels should likely be broken up to separate out the pieces that
do not touch the database (wrappers of PDF::Reuse) and those that are
CRUD API for table data.