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.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Guided reports and dictionary access was dependant on the editcatalogue permission instead of the report permission.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Add 'use C4::Reports' lines that original patch
omitted.
Note that original patch prevented these two reports
from even compiling. Not good.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This repurposes the Reports module for general reports, and moves its functionality to a different module, Reports::Guided. It also updates all of the reports that can export to correctly treat the 'tabulation' value of the 'delimiter' syspref.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
IMHO, this report should be removed in entirity because of its faulty
construction and total inability to distinguish between register "tills".
That is, it appears to be a valid accounting measure but isn't.
In any case, it let's not let just anybody run it!
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Fixes following error when using the patron statistics report:
DBD::mysql::st execute failed: Unknown column 'sort' in 'where clause' at /home/gmc/koha/dev/reports/borrowers_stats.pl line 127
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Also added ESCAPE="HTML" to column/row headers because users may define
collections that include ampersands, like:
B&T Rental--Fiction
The Tidy error associated would be:
line 574 column 29 - Error: general entity "T" not defined and no default entity
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This patch enforces SELECT-only SQL in the reports module.
It introduces code to check SQL in two places. The first is
when a save is attempted on a user constructed SQL statement.
If a non-SELECT SQL statement is entered, the user will be
presented with an error message and a button giving the
option of editing the SQL. The second is when any SQL is
executed. If execution of a non-SELECT SQL statement is
attempted, the user is presented with an error message and
instructed to delete that report as the SQL is invalid.
The second check is intended as a safety net as no non-SELECT
SQL should ever be saved.
It may be well to document the proper usage of the direct SQL
entry type report.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch removes a hardcoded 'LIMIT 20' which was added to all report queries
thus limiting all reports to only the first twenty rows of applicable data. In
its place this patch introduces code to paginate through all applicable data,
regardless of how many rows are available. The code will also honor any user
defined 'LIMIT' in reports based on SQL entered directly by the user.
This patch also adds column labels to 'tab' and 'csv' files generated by reports.
NOTE: Only user defined 'LIMIT's apply to 'tab,' 'csv,' and 'text' files.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch corrects date formatting when defining dictionary definitions in the
guided reports wizard so that dates display according to syspref.
Date formating is also corrected in the report creation section of the guided
reports wizard.
It also corrects a javascript bug which caused some of the calander widgets not
to function properly.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
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>
This patch adds code to clean out any NULL fields in rows returned
since NULL fields do not truly meet the filter criteria
It also corrects a bad db field reference.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Query references to the unused aqorderdelivery table caused a NULL field to be
displayed in the report results. This patch removes those references.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch corrects display descrepancies when filters are applied to the
acquisitions report. It also corrects a number of other issues with this
report.
Some documentation changes may be in order based on report filters that
were only partially implimented, but are now available.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
At client request, I added code for a rowtitle_display and coltitle_display. This
allows the script to substitute human-readable lables into the table instead of just
the literal hashkeys. For this client with dozens of numerical patron categorycodes
having a row titled "29" was not very useful.
I cleaned up the templates and a lot of the report code. It is of the same style as
the other copy/paste reports and still need further cleanup. Added sql and debug
feedback (default styled to hidden), as I have for other reports.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The debugging feedback (default style: hidden) is necessary to
investigate client reports where even after "backfill_statistics"
this report still fails to return results.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Previous implementation was a crude copy/paste from a larger report.
CSV output was and is not functional (disabled in interface accordingly).
Output now includes and is sorted by itemcallnumber, because the purpose
of this report is to isolate uncirculating items to cull from the shelves.
Output also includes a summary at the top, with links to individual tables
below when broken out by a grouping. Also included in the feedback but
default styled to display="none" are the actual SQL queries. This is
incredibly useful for debugging and should probably be done in all reports.
Yet TODO: allow date range for checkouts and instead of
"no checkouts" (=0) allow the query to filter based on =x, >x, <x, etc.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
* I guess the limit by item type was never working. I made it look for the right database column
* I fixed the error that was returned with no items were returned.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Just some code cleanup of C4::Items::GetLostItems and reports/itemslist.pl.
Some whitespace changes, perltidy, and documentation improvements.
Also, I rewrote and SQL statement to try to reduce possibilities of SQL injection attacks.
No documentation or functional changes necessary with this patch.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch adds a drop-down to the lost items report to let the user select a
particular lost status to display. Only items with that particluar lost status
will be dispolayed.
The documentation for the lost items report on the staff client will need to be slightly adjusted.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Billing.pl -- new, gives bills that occur in a range, works
pendingreserves.pl -- fixed, works now, with branches also
reserveratios.pl -- indicates distressed reserves
itemslost.pl -- Fix to this to make it more useful and fix bugs
Itmes.pm -- small change to work for itemslost, should not affect
anything else
and all tmpl files.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
need some testing on data since I donot have valid data in my fresh created database.
Note : Shouldnot updatedatabase also cope with data "moving"
when a table is created and that some data should go from one table to another ?
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
A) Fixing queries which were mysql old style
B) Fixing output.
+ Fixing queries the same way for bor_issues_top catalogue_out and issues_avg_stats
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
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>