Dan Scott [Fri, 5 Apr 2013 05:53:55 +0000 (01:53 -0400)]
Prevent compiler warning about unused numtype var
There was a dangling variable left around that was making noise in the
compiler. Credit to Jeff Godin for the heads-up.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Mike Rylander [Fri, 5 Apr 2013 05:52:16 +0000 (01:52 -0400)]
Address SQL injection vulnerability in SQL ORM layer
If the user-supplied value and the db column are both numbers
(jsonObject->type == JSON_NUMBER, get_primitive(field) == "number") then
don't quote. Otherwise, quote.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Dan Scott [Fri, 11 Jan 2013 06:32:13 +0000 (01:32 -0500)]
Protect against overly long savepoint names
Per http://postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS,
the maximum identifier length works out to being 63 bytes (+1 for the
null terminator), so to avoid potential memory pressure by a 10GB string
somehow being passed in as the savepoint name, malloc no more than 64
bytes and copy no more than 63 bytes from the incoming name to the
escaped name.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
When invoking open-ils.{cstore,pcrud,rstore}.savepoint.*, the
caller supplies a name for the savepoint. However, the savepoint
names could be constructed so that the caller could execute
arbitrary SQL. This patch sanitizes the name so that it contains
only alphanumeric and underscore characters.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
Open-ILS/src/c-apps/oils_sql.c
Dan Scott [Wed, 16 Jan 2013 20:18:27 +0000 (15:18 -0500)]
Revert security fixes that did not pull in previous changes
The 2.1.5 tarball contained many other commits in between 2.1.3a and
2.1.5, so the rel_2_1 branch didn't reflect what was in the tarball.
Revert, so that we can push tags/rel_2_1_5 to rel_2_1 and have an
accurate reflection of the release tarball and current state of the
release.
Dan Scott [Fri, 11 Jan 2013 06:32:13 +0000 (01:32 -0500)]
Protect against overly long savepoint names
Per http://postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS,
the maximum identifier length works out to being 63 bytes (+1 for the
null terminator), so to avoid potential memory pressure by a 10GB string
somehow being passed in as the savepoint name, malloc no more than 64
bytes and copy no more than 63 bytes from the incoming name to the
escaped name.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
When invoking open-ils.{cstore,pcrud,rstore}.savepoint.*, the
caller supplies a name for the savepoint. However, the savepoint
names could be constructed so that the caller could execute
arbitrary SQL. This patch sanitizes the name so that it contains
only alphanumeric and underscore characters.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
Open-ILS/src/c-apps/oils_sql.c
Dan Scott [Wed, 16 Jan 2013 18:59:12 +0000 (13:59 -0500)]
Revert translation commits that came by way of master
rel_2_1 is in security fix mode. No one should be adopting rel_2_1 at
this point. The drift between master and rel_2_1 is significant and
changes backported from master are likely to do more harm than good.
Acq: Yet more efforts to sanitize data for the EDI translator
I specifically did this to address cases reported to me by Galen
Charlton in which get_li_attr_jedi() would return the string "nul", but
I hope this is a nail in the coffin for problems involving
JEDI-producing Action/Trigger templates feeding the EDI translator
strings that the latter doesn't like.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Mike Rylander [Wed, 10 Oct 2012 21:36:52 +0000 (17:36 -0400)]
Make it possible to suppress IDL fields
Some clients of external services, particularly pcrud and reporter-store,
need to be able to access tables that contain columns we'd rather restrict.
For instance, the passwd field on actor.usr.
To effect this feature we provide a blacklist attribute for fields, called
suppress_controller, which works in the same way as the class controller
attribute but names controllers not allowed to use the field. When the field
is explicitly named in a query (fieldmapper select block or json_query) an
error is thrown, and suppressed fields are ingored in general fieldmapper
search/retreive requests.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Fri, 2 Nov 2012 19:28:27 +0000 (15:28 -0400)]
CStoreEditor auto-activity log redaction
CStoreEditor logs all update calls to the activity log as key/value
pairs on the updated object. Avoid loging key/value pairs for objects
when the API call being relayed by CStoreEditor is on the list of
log-protect API calls. Instead, log "**DETAILS REDACTED**".
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Steven Callender [Tue, 10 Jul 2012 19:43:59 +0000 (15:43 -0400)]
Changed the thawing of a hold to first update the hold record and then re-target.
When thawing a hold, originaly we were first re-targeting before actually saving the hold record. On items with large quantities, sometimes the hold would timeout on targetig before getting a chance to actually save. This patch moves things around to first save the hold record before attempting to retarget.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Mon, 16 Jul 2012 17:27:54 +0000 (13:27 -0400)]
Hide OPAC-invisible holdings from SRU/Z39.50
The basic_holdings Supercat method filtered out deleted call numbers and
copies, but didn't filter out copies based on the OPAC visibility status
of copy location / status / the copy itself. This has undesired results
when third-party services request copies via SRU or Z39.50 and expose
copies that should not be visible to the public.
We wrap all of the visibility and deletedness checks for a given copy up
into a subroutine so that we can avoid repeating ourselves in the
basic_holdings logic. Also, if we missed a test, we can add it in one
handy place :)
(Thanks to Galen Charlton for finding two missing tests: circ lib
visibility and owning lib visibility!)
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Art Rhyno <art632000@yahoo.ca>
Dan Scott [Fri, 27 Jul 2012 20:27:29 +0000 (16:27 -0400)]
Use MARC::Field objects to append new fields
While the deprecated MARC::Record::add_fields() method allows you to add
a list of fields using a list object, append_fields() requires
MARC::Field objects.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql
lp1028514: fix syntax-o in PL/PERLU version of maintain_901()
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql
Dan Scott [Tue, 24 Jul 2012 18:14:01 +0000 (14:14 -0400)]
Switch to a PLPERLU maintain_901() trigger function
We've been burned by regexes that fail to grok XML properly numerous
times now. Standardizing on something that actually understands MARC
seems like a good idea.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
The regex used to insert the 901 field can put the new
field in the wrong location if the MARCXML record being
modified uses namespace prefixes. This patch tightens
the regexp to avoid this problem.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Ben Shum [Wed, 27 Jun 2012 18:01:24 +0000 (14:01 -0400)]
Move Prefix field ahead of Names in patron editor
In earlier versions of Evergreen (1.6 and earlier), the Prefix field
was used to enter title information, such as Mr., Mrs., etc. When the
field was eventually added to the newer patron registration screens
(2.0+), it was added before the patron's last name field. Ideally,
the prefix should be listed prior to the patron's first name instead.
In addition, address label issues by changing "Suffix/Title" back to
only "Suffix" and making "Prefix" into "Prefix/Title".
Note: string changes would normally not be allowed in a stable release,
however in this case the previous translation (if any) will still get
pulled from the IDL for the field in question, so English will not
suddenly start showing up in the patron registration form.
Signed-off-by: Ben Shum <bshum@biblio.org> Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Security fix: Prevent login by deleted and barred users
An existing comment in the code suggested that we thought we were already
keeping barred users out. LP #1010671 brings up that deleted users were
not being kept out.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Revoking the UPDATE_MARC permission doesn't actually seem to prevent a
user from editing a record. Our use case is that we would like a user
to create new records but not edit existing MARC records.
Changing CREATE_MARC to UPDATE_MARC in OpenILS::Application::Cat's
biblio_record_replace_marc() method seems to fix the problem.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
It appears as though a copy-and-paste error introduced duplicate keys in
circ.properties, which in turn makes newer versions of the Translate
Toolkit unhappy and results in empty translated files. Tracing through
the pertinent code in xul/staff_client/server/circ/util.js, it looks
like the desired key was for "not_found" for the second "cataloging" key
- so change that accordingly.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Wells [Tue, 17 Apr 2012 21:34:06 +0000 (17:34 -0400)]
Clean up and refine serial note support, part 1
This commit fixes a number of minor problems with serial notes:
1) Serial notes are currently returned in "random" (database)
order. Adding a create_date sort is a sensible default.
2) If you have many notes, they start to display in a squashed and
unreadable fashion. Switching from a groupbox to a styled vbox
provides a simple workaround.
3) It is currently impossible to display newlines in notes. We can
deal with this by changing the display style.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Wells [Tue, 17 Apr 2012 20:02:49 +0000 (16:02 -0400)]
Limit excess serial data fetching
Overfetching and duplication of data in the interface is both
inefficient and bug-inducing. This reduces a couple big offenders.
First, in the items tab, we will store distribution and subscription
data separately, rather than duplicating for every row. Second, we
will only redraw rows as needed rather than refresh the whole list so
often. Finally, we no longer need to lookup call numbers separately,
as they are included in the one-time distribution fetch.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dan@coffeecode.net>
Bill Erickson [Fri, 23 Mar 2012 19:17:50 +0000 (15:17 -0400)]
ACQ guarantee no PO re-activation
Prevent the possibility of double PO activation by preventing it within
the API. There have been reports in the wild of double-activation, even
though the UI is supposed to prevent it.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm
Galen Charlton [Fri, 1 Jun 2012 03:31:11 +0000 (23:31 -0400)]
lp#1007248: tweak order in which pgt rows are renumbered
Need to renumber from highest to lowest. Because the primary
key constraint is not deferred, doing the renumbering in a single
statement will fail if there is overlap between the set of
existing pgt.id values and the set of {pgt.id + 100}.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Jeff Davis [Wed, 11 Apr 2012 16:04:19 +0000 (12:04 -0400)]
LP#856708 - Scrolling/div size issues in action trigger interface
The event definition content pane does not properly accommodate its contents.
In the Event Definitions tab, the list of event definitions exceeds the height of the
pane, but you can't scroll all the way down to the bottom of the list -- some of the
content gets cut off. Likewise, when editing an event definition, you can't scroll
all the way to the bottom of the page; the Cancel and Save buttons are cut off, and
you have to use the Tab key to move the focus down to those buttons, which forces
the pane to scroll to the bottom so that they're visible.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Bill Erickson [Fri, 4 May 2012 13:18:10 +0000 (09:18 -0400)]
Check if transaction needs closing after adding billings
This addresses the issue where issuing refunds results in a negative
ballance and it is then impossible to close the transaction by creating
new billings.
https://bugs.launchpad.net/evergreen/+bug/758982
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
lp996776: Patch to fix the response if no configured status is detected.
SIP response messages that use circulation_status where defaulting to just 1
rather than 01 if the status was not detected. Since SIP needs a 2 character
response, this was causing issues in some 3rd party devices. Added quoting
around the 01 to force the 2 characters.
Signed-off-by: Steven Callender <stevecallender@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Dan Wells [Mon, 26 Mar 2012 20:17:03 +0000 (16:17 -0400)]
Small fix to Holding Code wizard widget
The issuance editor has a wizard widget for the holding code field
which expected a 'grid' as an argument, but then referenced a global
'iss_grid' variable. This hurt reusability of this widget.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Wells [Wed, 25 Apr 2012 19:56:20 +0000 (15:56 -0400)]
Allow subscriptions at org units without volumes
Subscriptions are sometimes owned at the consortium or system
level, so forcing can_have_vols() to be true was incorrect.
This commit removes those checks. In addition, we also remove
some dead code and make the subscription org unit selector
consistent with the distribution org unit selector.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
The first two were meant for backport to rel_2_0 and rel_2_1 at the
time, but the backport wasn't done. They were buggy anyway, and now it
makes the most sense (I hope) to backport them together with the
corrective commit all at once.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Jason Etheridge [Fri, 30 Mar 2012 19:32:53 +0000 (15:32 -0400)]
unsaved data loophole
The Start/Previous/Next/End/Search Results buttons in the staff client OPAC
wrapper do not fire unsaved data warnings for the MARC editor when changing
records. This plugs that hole, but it's not a complete solution, as you can
still move away from the record by clicking on hyperlinks in the OPAC View,
though that's less likely to happen.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Dan Wells [Fri, 13 Apr 2012 13:53:32 +0000 (09:53 -0400)]
Better Prediction for Incomplete Chronologies
While relatively rare, some journals record only the year on the
cover, even if they come out monthly or weekly. This commit
expands our previous support for serials with no chronology at
all to cover serials with partial chronology.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Scott [Thu, 22 Mar 2012 02:48:46 +0000 (22:48 -0400)]
LP932540: Fix ISSN indexing
The default config.metabib_field_index_norm_map contains a 'replace'
entry for the ISSN identifier field that replaces spaces with "". That
was meant to handle ISSNs that incorrectly contain a space instead of a
hyphen; it normalizes them from: "1234 1234" to "12341234".
However, that breaks indexing ISSNs if there are multiple ISSNs in the
record, or even if there is an extra character in the same subfield as
the primary ISSN, as all spaces are removed.
This commit removes the 'replace' entry for the ISSN identifier field
and reindexes potentially damaged ISSN index entries.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Wed, 11 Jan 2012 18:57:43 +0000 (13:57 -0500)]
LP914821 template selection should be sticky
in Unified Volume/Copy Editor.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Michael Peters [Fri, 16 Mar 2012 17:56:57 +0000 (13:56 -0400)]
LP#707167 Make open-ils.actor.usrname.exists not ignore deleted users
Currently, open-ils.actor.usrname.exists filters out deleted users. This
results in a user recieving indication as to why a user update
failed, when the reason is the username they're attempting to use
is in use, but is "deleted" in the database.
This branch makes open-ils.actor.usrname.exists look at deleted users
since they still prevent re-use of the delted user's username.
More information is in the original bug, https://bugs.launchpad.net/evergreen/+bug/707167.
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Use getItemType() instead of getForm() in searchBarInit().
This seems to actually fix the problem with the item type limiter
being lost when going from advanced search to the results page.
Looks like the wrong method was being used to set the form_selector
value in search_bar.js. It was being set to the web form itself and
not to the value of the it (item type) parameter.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Liam Whalen [Tue, 1 Nov 2011 18:18:32 +0000 (14:18 -0400)]
When sorting a search results set the isFilterSort variable is passed
to searchBarSubmit. In side searchBarSumbit there is a call to the
opac_utils.js function clearSearchParams function. This removes all
search paramaters when sorting a result set, which is not the desired
effect. I have wraped clearSearchParams in a check to make sure
isFilterSort is not set before calling the clearSearchParams function,
and this check ensures that the current search's paramaters are passed
to sort operations.
Signed-off-by: Liam Whalen <lwhalen@evergreen-dev.catalogue.nrcan.gc.ca> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Wed, 18 Jan 2012 05:27:05 +0000 (00:27 -0500)]
LP918020: Fix regression in biblio.extract_located_uris
The 2.0-2.1 upgrade script contained an old version of
biblio.extract_located_uris that functioned poorly. Fix the 2.0-2.1
upgrade script and ensure that sites upgrading to 2.1.2 get the fix as
well.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Avoid JSPAC hold placement interface problems when no holdable copies
This addresses a bug brought to my attention by John Jones.
When you're trying to place certain holds (at least title level holds) on
records for which there are no holdable formats (no descriptors as returned by
open-ils.search.metabib.record_to_descriptors), then
holdArgs.recordDescriptors in holds.js can be an empty array. There is
a line of code that assumes this will never happen.
The end user-visible result of the javascript failing here is an alert()
dialog about phone number format, but this is a red herring. That only
happens because the problem code is in one big function that has too
many responsibilites.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Wed, 1 Feb 2012 18:53:55 +0000 (13:53 -0500)]
Paging repairs for Event definition admin UI
If there are multiple event definitions with the same name that lie along
the page boundaries, it's possible to page through event definitions
seeing some def's multiple times and others never. This is a result of
sorting solely on event def. name when fetching event def's for display.
This patch adds secondary (and tertiary, and quaternary, and quinary)
sort columns as tie breakers to guarantee a unique set of defs across
pages.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Sun, 4 Mar 2012 06:49:43 +0000 (01:49 -0500)]
Backport version_upgrade directory from master
Along with offering consistency across the two major current releases
for database schema upgrade scripts, it also enables us to backport the
much sought after fix for sorting by publication date in LP # 920134.
Bill Erickson [Wed, 15 Feb 2012 22:07:24 +0000 (17:07 -0500)]
Update pickup lib from holds shelf status test repair
When determining whether a hold is getting updated while already on the
holds shelf, it's important to also treat hold status 5 as an on-shelf
status. Status 5 comes into play when the circ.hold_shelf_status_delay
org unit setting is activated and acts as a virtual status indicating
the item is physically en route to the shelf.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 14 Feb 2012 16:09:41 +0000 (11:09 -0500)]
Correct special winter handling in predictions
The current serials prediction code has an exception for handling
cases where 'Winter 2010' is followed by 'Spring 2010' rather than
'Spring 2011'. This exception assumed the more common case of a
combined subfield $y, e.g.:
$yps21,22,23,24
In doing so, it incorrectly handled less common cases where the $y
is listed separately:
$yps21$yps22$yps23$yps24
This change (with test data) ensures we only check the first $y
for our 'early winter' exception.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Mon, 17 Oct 2011 16:27:04 +0000 (12:27 -0400)]
Stream results from targetable holds list retrieval
Tested and slightly modified patch from Mike R. to improve multi-session
hold targeting. This patch includes an update to the targetable holds
API call to stream results instead of returning them in 1 big chunk,
which has been known to result in messages too large for jabber
(max_stanza_size). hold_targer.pl is updated to handle the stream.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Jason Etheridge [Thu, 19 Jan 2012 22:01:22 +0000 (17:01 -0500)]
Handle search timeouts more gracefully
Another tweak courtesy of berick
Returns 0 results if open-ils.storage timeouts instead of a nasty uncaught
undefined ARRAY exception resulting in an OPAC "spinning wheel of death"
(formerly the "green knight rider bar of death".
Note that in the event of storage timeouts, you should tune and/or beef-up
your database.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Scott [Sun, 22 Jan 2012 16:42:08 +0000 (11:42 -0500)]
Fix "prefered_language" typo that blocked preferred language
"preferred_language" is used everywhere else, but in the crucial core of
metabib.pm the "prefered_language" variant is used to check on the value
- hence, nothing other than the default "eng" is being used. Fix that.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Mon, 9 Jan 2012 20:18:15 +0000 (15:18 -0500)]
Fix self-fetching callnumber columns
The callnumber (and related) columns from circ.util.columns() is meant to
retrieve call number objects if given call number id's instead of objects,
but there was a bug preventing that.
This fixes LP#906523, no call number information in billing interface
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
James Fournie [Wed, 7 Dec 2011 19:27:45 +0000 (11:27 -0800)]
Acq fix for LP#901378
Proratable invoice charges do not have a fund_debit, we need to check for
this before attempting to delete the charge. If there's no fund_debit
we can generally assume that there's no corresponding debit to this charge
and skip trying to delete it.
Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>