Browse Source

Bug 25429: Cleanup Database - remove resolved claims returned from db after X days

Add option to cleanup_database script to removed 'resolved' return claims from the database after a specified number of days.

Test Plan:
1) Apply this patch
2) Set the new syspref CleanUpDatabaseReturnClaims to a number of days
3) Run cleanup_database.pl
4) Note resolved claims older than the specified number of days are removed from the database

Bug 25429: Implement system preference, remove command line switch

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>

Signed-off-by: Rebecca Coert <rcoert@arlingtonva.us>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.11.x
Kyle Hall 4 years ago
committed by Jonathan Druart
parent
commit
e18cfe0731
  1. 9
      installer/data/mysql/atomicupdate/bug_25429.perl
  2. 1
      installer/data/mysql/mandatory/sysprefs.sql
  3. 6
      koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
  4. 15
      misc/cronjobs/cleanup_database.pl

9
installer/data/mysql/atomicupdate/bug_25429.perl

@ -0,0 +1,9 @@
$DBversion = 'XXX'; # will be replaced by the RM
if( CheckVersion( $DBversion ) ) {
$dbh->do(q{
INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
('CleanUpDatabaseReturnClaims', '', '', 'Sets the age of resolved return claims to delete from the database for cleanup_database.pl', 'Integer' );
});
NewVersion( $DBversion, 25429, "Cleanup Database - remove resolved claims returned from db after X days");
}

1
installer/data/mysql/mandatory/sysprefs.sql

@ -139,6 +139,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('ClaimReturnedChargeFee', 'ask', 'ask|charge|no_charge', 'Controls whether or not a lost item fee is charged for return claims', 'Choice'),
('ClaimReturnedLostValue', '', '', 'Sets the LOST AV value that represents "Claims returned" as a lost value', 'Free'),
('ClaimReturnedWarningThreshold', '', '', 'Sets the number of return claims past which the librarian will be warned the patron has many return claims', 'Integer'),
('CleanUpDatabaseReturnClaims', '', '', 'Sets the age of resolved return claims to delete from the database for cleanup_database.pl', 'Integer' ),
('CoceHost', '', NULL, 'Coce server URL', 'Free'),
('CoceProviders', '', 'aws,gb,ol', 'Coce providers', 'multiple'),
('COinSinOPACResults','1','','If ON, use COinS in OPAC search results page. NOTE: this can slow down search response time significantly','YesNo'),

6
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref

@ -1265,3 +1265,9 @@ Circulation:
- pref: ClaimReturnedWarningThreshold
class: integer
- items.
-
- Remove resolved return claims older than
- pref: CleanUpDatabaseReturnClaims
class: integer
- days.
- <span class="hint">This system preference is used by the cleanup_database.pl cronjob.</span>

15
misc/cronjobs/cleanup_database.pl

@ -88,7 +88,7 @@ Usage: $0 [-h|--help] [--confirm] [--sessions] [--sessdays DAYS] [-v|--verbose]
days. Defaults to 14 days if no days specified.
--restrictions DAYS purge patrons restrictions expired since more than DAYS days.
Defaults to 30 days if no days specified.
--all-restrictions purge all expired patrons restrictions.
--all-restrictions purge all expired patrons restrictions.
--del-exp-selfreg Delete expired self registration accounts
--del-unv-selfreg DAYS Delete unverified self registrations older than DAYS
--unique-holidays DAYS Delete all unique holidays older than DAYS
@ -129,6 +129,7 @@ my $pZ3950;
my $pListShareInvites;
my $pDebarments;
my $allDebarments;
my $return_claims = C4::Context->preference('CleanUpDatabaseReturnClaims');
my $pExpSelfReg;
my $pUnvSelfReg;
my $fees_days;
@ -526,6 +527,18 @@ if ($pStatistics) {
}
}
if ($return_claims) {
print "Purging return claims older than $return_claims days.\n" if $verbose;
$sth = $dbh->prepare(
q{
DELETE FROM return_claims
WHERE resolved_on < DATE_SUB(CURDATE(), INTERVAL ? DAY)
}
);
$sth->execute($return_claims);
print "Done with purging return claims.\n" if $verbose;
}
if ($pDeletedCatalog) {
print "Purging deleted catalog older than $pDeletedCatalog days.\n"
if $verbose;

Loading…
Cancel
Save