This feature is designed to manage collections of items that move
from library to library periodically. Koha can already track who *has*
and item, and who *owns* and item, but not who *should have* an item.
That is the issue this feature addresses.
It allows a persion to create a collection, and add any number of items
to that collection. The collection can then be transferred from library
to library. If an item shows up at a library that does not currently
'hold' that collection, Koha will ask you to transfer it to the library
that does currently 'hold it. In that way, one can even transfer
collections where some of the items are currently checked out. As soon
as they make it back to a library, they will get transferred to the
current library holding that collection.
The feature consists of 4 main pages.
'Home' Page: The landing page, lists collections and provides access to
the rest of the tools.
Access is via the Tools page.
Edit Collections: Add/Delete new rotating collections
Add/Remove Items: Add/Remove items from a given collection
Transfer Collection: Set the current 'holder' of a given collection.
Librarian access is controlled by 'CAN_user_tools_rotating_collections'
Fix obvious warning generators
use of string comparison on numeric values
use of capture variables without testing comparison
reuse of variable names in same lexical scope
Tidy some layout issues
remove commented out code
remove unused variables
remove tabs from mixed space tab layouts
rewrite a couple of expressions where code flow obscured
The performances of this script felt back. Investigating, it's due to the extended attribute filtering improvement
when there are ext attributes, the script does a:
SELECT borrowernumber AS bn, b.code, attribute AS val, category AS avcategory, lib AS avdescription
FROM borrower_attributes b
JOIN borrower_attribute_types bt ON (b.code = bt.code)
LEFT JOIN authorised_values a ON (a.category = bt.authorised_value_category AND a.authorised_value = b.attribute)
that returns a LOT of datas when you have 10 000 patrons and 5 attributes.
That results in the page needing something like 10 seconds to be loaded.
There are some other caveats. I've commented a few lines that remove the extended attr option. The best solution would be to fix it better, but I can't find how to do that now.
(note : i also have commented some lines that are unused)
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>
The patch sets a "flagged" variable for displaying the messages correctly, bringing it in line with the way other messages are displayed. The patch also includes some markup tweaks and a change to make display of the "add message" link javascript-dependent.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This system is indended to replace the old opacnotes
and borrowernotes fields in the borrowers table.
This system allows an unlimited number of Libraran and OPAC notes to be
attached to a borrower. Each note has a message, a message type,
the data it was created, and which library created it.
Each message can only be deleted by the library that created it unless the syspref
AllowAllMessageDeletion has been set.
This system may be used simultaneously with the old notes system and does not affect it in any way.
A new database table (messages) was added for this feature.
The System also allows for pre-defined notes for Borrower records
To use these, just create authorised values with the category BOR_NOTES
where the Authorized Value is the short description shown in the pulldown,
and the description is the text that should be in the note.
Original Author: PTFS Contractor <dbavousett@ptfs.com>
This work co-sponsered 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>
Button added to clear the last Borrower record after transaction is complete
To enable, turn on the syspref DisplayClearScreenButton.
This work was sponsored by Middletown Township Public Library, Middletown, NJ USA
Signed-off-by: Colin Campbell <colin.campbell@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
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>
Code cannot rely on issueinformation being populated.
Note there is room for better efficiency to have AddReturn also provide the
itemnumber (where existing) so that GetItemnumberFromBarcode is not called
at both levels. Unfortunately there is discrepancy between this idea (for
efficiency) and the stated purpose of the $iteminformation object returned,
since $iteminformation is specifically the info from the issues table and
MUST be empty when the item was not in fact issued.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Delivered range was 10 years ago to yesterday; changed default
to be two days ago to today. Also removed notes field from report
output; 5xx fields can be quite large and including them in the
display resulted in a very lengthy printout for staff.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
selectbranchprinter now posts to itself to set the branch. That also means that
other pages can set the branch by linking to selectbranchprinter like:
/cgi-bin/koha/circ/selectbranchprinter.pl?branch=MAIN
We use HTTP_REFERER to allow the user to continue back to wherever they linked from,
defaulting to circulation.pl (the former POST target).
Note that all "branchprinter" functions are basically useless as the data is not
properly handled in the session storage. Chris C. expects this to be addressed
with later patches for HLT. There appear to be no 3.0 users of this intended
functionality yet.
Includes squashed patch to fix tmpl and to automatically redirect if there are no
POST params to be recycled.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Use GetBranchesLoop and warnings. Remove unused code. Moved the Get's to after auth.
I begin to show how this script will use referer to redirect back to the sending
page upon successful change of branch or printer (see hidden div and recycle_loop).
Indicator for singleBranchMode added.
Also added another helper function for GetBranchesLoop, namely mybranch. This
encapsulates the logic for finding an intelligent default selection, which is
almost always desirable.
This does not resolve bug 2426, but is work in that direction.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Patch by Rick Welykochy <rick@praxis.com.au> with some squashing
by me.
Bug Report: 2866 Filtering and sorting the overdue report using patron attributes
1. Create a new system preference ?FilterBeforeOverdueReport?
2. Option to filter *before* the overdue report runs, avoiding report slowness
3. Add searchable patron attributes to the list of overdue report filters
4. Add searchable patron attributes to the sort fields on the overdue report
5. add item call number and replacement price
6. the CSV download link now returns the same
data as the web report, rather than (inconsistently)
trying to run the overdue_notices.pl batch job
7. always run report if requesting CSV
8. barcodes are now links
9. use item-level item type for overdue itemtype filter
Included is a new callback for searching patron attributes, similar
to circ/ysearch.pl.
The following additional bugs are fixed:
2748: Nothing is output to the .csv file for the "Overdues" circulation report
This is fixed by having circ/overdues.pl produce the CSV output directly instead
of trying to call the overdues cronjob. The CSV output includes all of the fields
that are displayed on the web table plus the item replacement price and any extended
patron attributes.
2836: overdues.csv may contain HTML
2837: Descending sort doesn't descend on the overdues report plus other probs with report
This enhancement was sponsored by the Plano Independent School District.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Before this patch, we used to test for flags == 1, which was wrong when patron had all privileges.
This patch just adds a %2 to check that patron has superlibrarian privilege, and maybe something else we don't care.
I think I fixed it everywhere except in acquisition, that will be addressed by BibLibre new acquisition module.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Removed many unused variables.
Switched to elsif where appropriate.
Cleaned up some whitespace.
Corrected comments.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Use warnings and provide fallback values to avoid them.
Move waitingdate check up to top of loop.
Move $today creation outside loop (should be same for all).
Remove unused and unnecessary variables.
Add subtitle escaping to .tmpl and slightly standardize formatting.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Convert to GetBranchesLoop.
Insert template message to display for ALL libraries search, so that the
message is n0t truncated like "X items found for".
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Remove unused sub and variables.
Convert to using GetBranchesLoop instead of local code.
Use elsif where appropriate.
Added fallback values and enabled warnings.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Removed unused variables. Replaced EXPR.
Inserted hidden span to correct tablesorter behavior on title field. Without this patch
because of the link href in the cell, the sort would end up being effectively on
biblionumber, not title.
Mostly whitespace edits in template.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This also fixes a deficiency with overdue.tmpl not retaining the
user's selection of sort order when displaying results.
Removed 9 unused variables.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Remove ton of unused variables.
Remove wrong use of BiblioDefaultView on INTRANET side.
Consolidate failover values.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Eliminated bug with date handling outputting an English string.
Row striping added. Highlight for "my branch" row added.
GetBranchesLoop used instead of recreating data structure, so we get the
benefit of branches being sorted (by display name).
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Use one $userenv_branch instead of many calls to C4::Context->userenv->{'branch'}
for comparisons. Script is not warnings safe yet, but getting closer.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This is to allow patron proxy relationships to be built using the patron barcode.
Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
The array was populated and values flagged with an accessor, like:
for (@failedrenews) { $renew_failed[$_] = 1; }
But this means that an array of possibly hundreds of thousands of elements
would have to be auto-populated for high itemnumbers. A hash is the correct
structure. We also haven't checked the user input for validity, so we do not know
for sure that @failedrenews really does contain just itemnumbers.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Store the stickyduedate in the session. So "Remember for Session" means
for session rather than "while on this page".
Includes some updates since initial submission of patch.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Per suggestion from Joe Atzberger, match on \s
instead of [ \t] for stripping leading and
trailing whitespace from barcode lookups.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Javascript error in FF and IE when loading page and no data matches criteria.
This was because it was passing more holds than necessary to the template and
letting a template conditional inside the loop control whether to display or not.
That doesn't make sense, and it forces the table to be displayed even when all
rows FAIL the conditional. jquery.tablesorter was confused trying to be added
on top of an empty table with nothing to sort.
There were several other errors addressed by this patch:
~ 13 unused variables deleted.
~ regexps run on user-supplied $var before checking $var defined
~ decimal ratio prohibited and silently replaced with "3"
I also added the hold ratio to a column display, with a jquery tweak to put it in
the ratio input box on click. Hidden .sql div now contains the actual query run,
like the other wizard reports.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This adds a system preference controlled feature. This controls how
many returned items are shown on the check-in page.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
A member returns a book : it would be better to see the category of this member
in "information member" near his name.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
bookcount.pl: Illegal Date 'Item has no branch transfers record' does not match 'iso' format: yyyy-mm-dd at /home/mason/git/kap-k3-2/circ/bookcount.pl line 88
tested on 3.0.x
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>