senator [Fri, 23 Apr 2010 20:53:11 +0000 (20:53 +0000)]
Acq: more work on the claiming UI. It begins to be workable, but still rough.
Definitely still have to fix at least these things:
Changes to lineitems' claim policies and initiation of claims against LIs
aren't reflected in realtime in the LI table. You still need a reload for
that so far.
The "Consider individual copies for claiming" needs to take you to the
speicific lineitems' claim copies dialog, not just to the PO in general.
senator [Wed, 21 Apr 2010 21:01:55 +0000 (21:01 +0000)]
Acq: added UI controls to attach a claim policy to one or many lineitems
Incidentally, two bugs were fixed:
1) Incorrect permacrud action entries in the IDL that stopped
open-ils.pcrud from generating methods for the jub and acqlih
classes.
2) A widely used acq subroutine, retrieve_lineitem_impl, incorrectly
cleared the purchase_order and picklist fields of its result if
fleshing for those fields was not specifically requested. The
correct behavior is to set those fields back to their integer
foreign key values. This was causing several subtle problems.
senator [Tue, 20 Apr 2010 20:20:32 +0000 (20:20 +0000)]
Acq: large parts of the UI for making claims to a vendor against lineitems
Large parts of this are done, but not yet all of them. Woof. If lineitems
are claim-ready (have an attached claim policy, which has claim event types
that have intervals that have passed since the items were ordered), and you
want to find them with no search criteria other than ordering agency, then
you can issue claims and print a very primitive voucher. Bits of niceness
are still to come, such as attaching policies, claiming from other LI table-
based interfaces, etc.
Implement the .prepare and .sql methods (except ignoring
bind variables).
M Open-ILS/src/c-apps/oils_qstore.c
A Open-ILS/src/c-apps/oils_buildq.c
A Open-ILS/src/c-apps/oils_storedq.c
A Open-ILS/src/c-apps/buildSQL.c
M Open-ILS/src/c-apps/Makefile.am
Rework constants for audio to be more dynamic. We can now specify a specific sound for every event that goes through network.js, however, in Windows sounds get cut off by subsequent sounds, so currently, if you wanted to hear the Red Alert example for AUDIO_event_ASSET_COPY_NOT_FOUND, you'd have to undefine or nullify or empty-string AUDIO_circ_bad.
Look for and evaluate /xul/server/skin/custom.js if it exists. Mainly for overriding parts of constants.js with local customizations
We'll do this with all remote interfaces (via util_overlay.xul) and with the main chrome menu/window and the chrome opac browser
Add a new service, open-ils.qstore. It is not yet useful except for testing
connectivity, because the methods are stubbed out. It will require changes to
opensrf.core before a client can access it.
A Open-ILS/src/c-apps/oils_qstore.c
M Open-ILS/src/c-apps/Makefile.am
Forward-port self-serve password reset implementation from rel_1_6
TODO: Add support for craftsman
TODO: Add barcode + email input option
TODO: Document how it works
Prevent possible character corruption or fatal errors in SRU / Z39.50
All MARC records in the Evergreen database are Unicode-encoded. However,
if the LDR09 hasn't been updated to indicate this, when we invoke
MARC::File::XML->as_xml_record it automatically runs a MARC8-to-UTF8 conversion
over the data - potentially corrupting the data, or resulting in fatal
errors. When holdings are added to records in SRU / Z39.50, we invoke
this code path.
The solution here is to simply manually set the leader 09 position to 'a'
before invoking MARC::File::XML->as_xml_record.
* tweak wording for ui.circ.suppress_checkin_popups setting so that it sorts better
* suppressing alerts/dialogs based on setting
* auto_override_these_events option for util.network
* use auto_override_these_events during checkin based on setting
org unit setting for suppressing alerts/popups during checkin--will indicate these events some other way if true. Commiting now so as to not tie up upgrade_log
Rework clear_hold_shelf process so that it looks for eligible holds for the cleared copies after the transaction updating the existing holds and copies has committed. Also fixed the copy_status test so that Available works as a value for circ.holds.clear_shelf.copy_status
senator [Tue, 13 Apr 2010 20:17:55 +0000 (20:17 +0000)]
Acq: add search-by-file-of-terms to unified search
This feature was present in the now deprecated lineitem search interface.
It works, but it is severely limited at the moment in the number of search
terms you can use, because search queries are made into URIs before the
search actually happens (in order to make backing up to old search results
possible), and at a certain point, very large URIs become infeasible.
Some adjustments to how search history is made naviagable may be in order.
tweaks to <help> widget to support non-chrome help content with chrome <help> widgets, and wiring it up into a generic Help button for embedded browser based interfaces
Reworking the <help> widget to add more hooks for localized/custom content, and a @pathname attribute for overriding the location.pathname value used to derive URL's for content.
Current behavior:
This widget will try to load help content from various static and dynamic URL's, stopping at the
first one that it finds. Given an example location.href of '/xul/server/patron/display.xul' and
a @src of 'foo.html', it will check these URL's in this order:
dijits that are marked as 'required' will show render with the invalid dijit styling when no data is present during page render. The previous behavior was to only style the invalid widgets after the user had focused the widget and left invalid data in the widget. this way users can see at page load if a field is required
XBL for a <help> widget. It will try to load help content from various static and dynamic URL's, stopping
at the first one that it finds. If for example, I were to add this to /xul/server/patron/display.xul:
<help id="bar" src="foo.html" />
We would get a "Help" button that if clicked would then it would test these locations:
foo.html (if @foo not set, then custom_help.html)
/xul/server/patron/display.xul.help.html
/xul/server/patron/help.html
/xul/server/help.html
/xul/help.html
/help.html
and since @id is defined, it would also tack on ?id=bar (for log tracking and/or dynamic use by the content).
It will open the location in a non-modal pop-up window. Navigation buttons not included.
MAYBE TODO:
Add an @anchor for dynamically appending a hash component to each URL tested.
Implement a browser with Back/Forward/Search/Index functionality.
Turn "next page" / "previous page" symbols into entities
Makes it easier for sites to customize this aspect of the look and feel of their skins if they support multiple languages.
This patch adds additional calls to escape_xml to handle cases where patron or library data could contain ampersand or other characters that need to be converted to entities. Issue discovered by Bibliomation; patch includes contributions by Ben Ostrowsky.
move a couple of heavily hit calls from open-ils.storage to open-ils.cstore. removed now-unnecessary xact begin/rollback (handled w/ authoritative via CStoreEditor)
Restore the ability to set the maximum flesh depth by an entry
in the configuration file. This ability was inadvertently
eliminated in the previous commit.
M Open-ILS/include/openils/oils_sql.h
M Open-ILS/src/c-apps/oils_pcrud.c
M Open-ILS/src/c-apps/oils_rstore.c
M Open-ILS/src/c-apps/oils_cstore.c
M Open-ILS/src/c-apps/oils_sql.c
senator [Fri, 9 Apr 2010 20:27:50 +0000 (20:27 +0000)]
Acq: Improved invoice-linking and -viewing features in LI, PO interfaces
Additional miscellany: removed menu entries for deprecated lineitem search
interface, added uniqueness constraint around (provider, inv_ident) on the
acq.invoice table, and made subtle improvements to unified search interface
when amount paid exceeds amount billed, disable save/prorate buttons and style the amount paid box. if either paid/billed are < 0, style their respective boxes
moved entry and item updating into the main
CUD call for consistency.
making use of amount_paid
remove .process call in favor of a specific prorate call
prorate the cost billed as well
Adding amount_paid columns to acq.invoice_item, acq.invoice_entry.
M Open-ILS/src/sql/Pg/200.schema.acq.sql
M Open-ILS/src/sql/Pg/002.schema.config.sql
A Open-ILS/src/sql/Pg/upgrade/0231.schema.acq-inv-amt-paid.sql
M Open-ILS/examples/fm_IDL.xml
Wire up the Clear Shelf functionality into the Hold Shelf Browser.
The button for this enables when the View Expired On-Shelf Holds checkbox is activated. The Clear Shelf process will cancel these holds, optionally set the status for the affected items according to an org unit setting, and report back the needed actions for the affected items.
TODO: the ML clear_shelf_process method needs fixing where it's jumping to storage within a transaction
Add three columns to acq.invoice, plus a
new table acq.invoice_payment_method.
M Open-ILS/src/sql/Pg/200.schema.acq.sql
M Open-ILS/src/sql/Pg/002.schema.config.sql
A Open-ILS/src/sql/Pg/upgrade/0230.schema.acq-inv-pmt-method.sql
M Open-ILS/examples/fm_IDL.xml
senator [Thu, 8 Apr 2010 20:58:50 +0000 (20:58 +0000)]
Acq: you can now back up to old search results
This works by changing what actually happens when you click "Search."
Instead of running your search instantly, the search interface turns your
search into URL parameters and redirects you. This way you get a new entry
in your browser history (much as if you were doing a non-AJAX search).
When the search interface is run with these URL paramters, it actually runs
the search and shows you the results. This has the added benefit of
allowing other interfaces to link to prepopulated searches, and potentially
giving users a way to save searches in the future.
implemented invoice processing to updating encumbered funds (for invoice_entry's) and ad-hoc charges, and prorating fees/taxes, etc. (aka invoice_items)
Most of the machinery is now in a single module, oils_sql.c, shared
by all three servers, and available to other programs as well
through the new header oils_sql.h.
The three different servers -- pcrud, cstore, and reporter-store --
are now in separate modules, whose differences are built-in rather than
controlled by conditional compilation. The original file, oils_cstore.c,
now implements only the cstore server. The other two are now
implemented by oils_rstore.c and oils_pcrud.c.
The test_json_query program now calls functions from oils_sql.c instead
of from oils_cstore.c.
This restructuring required changes to configure.ac and to
Makefile.am in order to regenerate the Makefile appropriately.
M configure.ac
A Open-ILS/include/openils/oils_sql.h
A Open-ILS/src/c-apps/oils_pcrud.c
A Open-ILS/src/c-apps/oils_rstore.c
M Open-ILS/src/c-apps/oils_cstore.c
A Open-ILS/src/c-apps/oils_sql.c
M Open-ILS/src/c-apps/Makefile.am
M Open-ILS/src/c-apps/test_json_query.c
implemented create/save logic
Show PO link for newly attached lineitems
use autofieldwidget everywhere
implemented item/entry delete/detach.
fixed total cost widget
using new invoice_item.fund field.
consolidated invoice attach and create API call into a single cud call
initial invoice process call to create/update the associated debits
added keep_li_marc option, otherwise strip the marc and just return
li attrs
M Open-ILS/src/sql/Pg/200.schema.acq.sql
M Open-ILS/src/sql/Pg/002.schema.config.sql
A Open-ILS/src/sql/Pg/upgrade/0229.schema.acq-inv-item-fund.sql
M Open-ILS/examples/fm_IDL.xml
fix Admin->For Developers->Fieldmapper; global.css is mandatory for <messagecatalog>. The fieldmapper method here is dangerous, however, and can exhaust memory
More Invoice UI work. This covers:
New view interface
Creating new invoices directly in the view UI
Creating invices from PO/LI
Attaching PO/LI data to an existing invoice
UI for handling of prorated item types
Support for creating a new invoice fromt the po view page
Add boolean column "prorate" to acq.invoice_item_type.
M Open-ILS/src/sql/Pg/200.schema.acq.sql
M Open-ILS/src/sql/Pg/002.schema.config.sql
A Open-ILS/src/sql/Pg/upgrade/0228.schema.acq-invoice-item-type-prorate.sql
M Open-ILS/examples/fm_IDL.xml