|
Lines 172-178
my @jobs_types;
Link Here
|
| 172 |
my $reports; |
172 |
my $reports; |
| 173 |
my $edifact_msg_days; |
173 |
my $edifact_msg_days; |
| 174 |
|
174 |
|
| 175 |
my $command_line_options = join(" ",@ARGV); |
175 |
my $command_line_options = join( " ", @ARGV ); |
| 176 |
|
176 |
|
| 177 |
GetOptions( |
177 |
GetOptions( |
| 178 |
'h|help' => \$help, |
178 |
'h|help' => \$help, |
|
Lines 221-237
GetOptions(
Link Here
|
| 221 |
) || usage(1); |
221 |
) || usage(1); |
| 222 |
|
222 |
|
| 223 |
# Use default values |
223 |
# Use default values |
| 224 |
$sessions = 1 if $sess_days && $sess_days > 0; |
224 |
$sessions = 1 if $sess_days && $sess_days > 0; |
| 225 |
$pImport = DEFAULT_IMPORT_PURGEDAYS if defined($pImport) && $pImport == 0; |
225 |
$pImport = DEFAULT_IMPORT_PURGEDAYS if defined($pImport) && $pImport == 0; |
| 226 |
$pLogs = DEFAULT_LOGS_PURGEDAYS if defined($pLogs) && $pLogs == 0; |
226 |
$pLogs = DEFAULT_LOGS_PURGEDAYS if defined($pLogs) && $pLogs == 0; |
| 227 |
$zebraqueue_days = DEFAULT_ZEBRAQ_PURGEDAYS if defined($zebraqueue_days) && $zebraqueue_days == 0; |
227 |
$zebraqueue_days = DEFAULT_ZEBRAQ_PURGEDAYS if defined($zebraqueue_days) && $zebraqueue_days == 0; |
| 228 |
$mail = DEFAULT_MAIL_PURGEDAYS if defined($mail) && $mail == 0; |
228 |
$mail = DEFAULT_MAIL_PURGEDAYS if defined($mail) && $mail == 0; |
| 229 |
$pSearchhistory = DEFAULT_SEARCHHISTORY_PURGEDAYS if defined($pSearchhistory) && $pSearchhistory == 0; |
229 |
$pSearchhistory = DEFAULT_SEARCHHISTORY_PURGEDAYS if defined($pSearchhistory) && $pSearchhistory == 0; |
| 230 |
$pDebarments = DEFAULT_DEBARMENTS_PURGEDAYS if defined($pDebarments) && $pDebarments == 0; |
230 |
$pDebarments = DEFAULT_DEBARMENTS_PURGEDAYS if defined($pDebarments) && $pDebarments == 0; |
| 231 |
$pMessages = DEFAULT_MESSAGES_PURGEDAYS if defined($pMessages) && $pMessages == 0; |
231 |
$pMessages = DEFAULT_MESSAGES_PURGEDAYS if defined($pMessages) && $pMessages == 0; |
| 232 |
$jobs_days = DEFAULT_JOBS_PURGEDAYS if defined($jobs_days) && $jobs_days == 0; |
232 |
$jobs_days = DEFAULT_JOBS_PURGEDAYS if defined($jobs_days) && $jobs_days == 0; |
| 233 |
@jobs_types = (DEFAULT_JOBS_PURGETYPES) if $jobs_days && @jobs_types == 0; |
233 |
@jobs_types = (DEFAULT_JOBS_PURGETYPES) if $jobs_days && @jobs_types == 0; |
| 234 |
$edifact_msg_days = DEFAULT_EDIFACT_MSG_PURGEDAYS if defined($edifact_msg_days) && $edifact_msg_days == 0; |
234 |
$edifact_msg_days = DEFAULT_EDIFACT_MSG_PURGEDAYS if defined($edifact_msg_days) && $edifact_msg_days == 0; |
| 235 |
|
235 |
|
| 236 |
# Choose the number of days at which to purge unaccepted list invites: |
236 |
# Choose the number of days at which to purge unaccepted list invites: |
| 237 |
# - DAYS defined in the list-invites parameter is prioritised first |
237 |
# - DAYS defined in the list-invites parameter is prioritised first |
|
Lines 283-302
unless ( $sessions
Link Here
|
| 283 |
|| $return_claims |
283 |
|| $return_claims |
| 284 |
|| $jobs_days |
284 |
|| $jobs_days |
| 285 |
|| $reports |
285 |
|| $reports |
| 286 |
|| $edifact_msg_days |
286 |
|| $edifact_msg_days ) |
| 287 |
) { |
287 |
{ |
| 288 |
print "You did not specify any cleanup work for the script to do.\n\n"; |
288 |
print "You did not specify any cleanup work for the script to do.\n\n"; |
| 289 |
usage(1); |
289 |
usage(1); |
| 290 |
} |
290 |
} |
| 291 |
|
291 |
|
| 292 |
if ($pDebarments && $allDebarments) { |
292 |
if ( $pDebarments && $allDebarments ) { |
| 293 |
print "You can not specify both --restrictions and --all-restrictions.\n\n"; |
293 |
print "You can not specify both --restrictions and --all-restrictions.\n\n"; |
| 294 |
usage(1); |
294 |
usage(1); |
| 295 |
} |
295 |
} |
| 296 |
|
296 |
|
| 297 |
say "Confirm flag not passed, running in dry-run mode..." unless $confirm; |
297 |
say "Confirm flag not passed, running in dry-run mode..." unless $confirm; |
| 298 |
|
298 |
|
| 299 |
cronlogaction({ info => $command_line_options }); |
299 |
cronlogaction( { info => $command_line_options } ); |
| 300 |
|
300 |
|
| 301 |
my $dbh = C4::Context->dbh(); |
301 |
my $dbh = C4::Context->dbh(); |
| 302 |
my $sth; |
302 |
my $sth; |
|
Lines 310-326
if ( $sessions && !$sess_days ) {
Link Here
|
| 310 |
my @count_arr = $sth->fetchrow_array; |
310 |
my @count_arr = $sth->fetchrow_array; |
| 311 |
say $confirm ? "$count_arr[0] entries will be deleted." : "$count_arr[0] entries would be deleted."; |
311 |
say $confirm ? "$count_arr[0] entries will be deleted." : "$count_arr[0] entries would be deleted."; |
| 312 |
} |
312 |
} |
| 313 |
if ( $confirm ) { |
313 |
if ($confirm) { |
| 314 |
$sth = $dbh->prepare(q{ TRUNCATE sessions }); |
314 |
$sth = $dbh->prepare(q{ TRUNCATE sessions }); |
| 315 |
$sth->execute() or die $dbh->errstr; |
315 |
$sth->execute() or die $dbh->errstr; |
| 316 |
} |
316 |
} |
| 317 |
if ($verbose) { |
317 |
if ($verbose) { |
| 318 |
print "Done with session purge.\n"; |
318 |
print "Done with session purge.\n"; |
| 319 |
} |
319 |
} |
| 320 |
} |
320 |
} elsif ( $sessions && $sess_days > 0 ) { |
| 321 |
elsif ( $sessions && $sess_days > 0 ) { |
|
|
| 322 |
print "Session purge triggered with days>$sess_days.\n" if $verbose; |
321 |
print "Session purge triggered with days>$sess_days.\n" if $verbose; |
| 323 |
RemoveOldSessions() if $confirm; |
322 |
RemoveOldSessions() if $confirm; |
| 324 |
print "Done with session purge with days>$sess_days.\n" if $verbose; |
323 |
print "Done with session purge with days>$sess_days.\n" if $verbose; |
| 325 |
} |
324 |
} |
| 326 |
|
325 |
|
|
Lines 337-348
if ($zebraqueue_days) {
Link Here
|
| 337 |
$sth->execute($zebraqueue_days) or die $dbh->errstr; |
336 |
$sth->execute($zebraqueue_days) or die $dbh->errstr; |
| 338 |
$sth2 = $dbh->prepare(q{ DELETE FROM zebraqueue WHERE id=? }); |
337 |
$sth2 = $dbh->prepare(q{ DELETE FROM zebraqueue WHERE id=? }); |
| 339 |
while ( my $record = $sth->fetchrow_hashref ) { |
338 |
while ( my $record = $sth->fetchrow_hashref ) { |
| 340 |
if ( $confirm ) { |
339 |
if ($confirm) { |
| 341 |
$sth2->execute( $record->{id} ) or die $dbh->errstr; |
340 |
$sth2->execute( $record->{id} ) or die $dbh->errstr; |
| 342 |
} |
341 |
} |
| 343 |
$count++; |
342 |
$count++; |
| 344 |
} |
343 |
} |
| 345 |
if ( $verbose ) { |
344 |
if ($verbose) { |
| 346 |
say $confirm ? "$count records were deleted." : "$count records would have been deleted."; |
345 |
say $confirm ? "$count records were deleted." : "$count records would have been deleted."; |
| 347 |
say "Done with zebraqueue purge."; |
346 |
say "Done with zebraqueue purge."; |
| 348 |
} |
347 |
} |
|
Lines 357-375
if ($mail) {
Link Here
|
| 357 |
WHERE time_queued < date_sub(curdate(), INTERVAL ? DAY) |
356 |
WHERE time_queued < date_sub(curdate(), INTERVAL ? DAY) |
| 358 |
} |
357 |
} |
| 359 |
); |
358 |
); |
| 360 |
if ( $confirm ) { |
359 |
if ($confirm) { |
| 361 |
$sth->execute($mail) or die $dbh->errstr; |
360 |
$sth->execute($mail) or die $dbh->errstr; |
| 362 |
$count = $sth->rows; |
361 |
$count = $sth->rows; |
| 363 |
} |
362 |
} |
| 364 |
if ( $verbose ) { |
363 |
if ($verbose) { |
| 365 |
say $confirm ? "$count messages were deleted from the mail queue." : "Message from message_queue would have been deleted"; |
364 |
say $confirm |
|
|
365 |
? "$count messages were deleted from the mail queue." |
| 366 |
: "Message from message_queue would have been deleted"; |
| 366 |
say "Done with message_queue purge."; |
367 |
say "Done with message_queue purge."; |
| 367 |
} |
368 |
} |
| 368 |
} |
369 |
} |
| 369 |
|
370 |
|
| 370 |
if ($purge_merged) { |
371 |
if ($purge_merged) { |
| 371 |
print "Purging completed entries from need_merge_authorities.\n" if $verbose; |
372 |
print "Purging completed entries from need_merge_authorities.\n" if $verbose; |
| 372 |
if ( $confirm ) { |
373 |
if ($confirm) { |
| 373 |
$sth = $dbh->prepare(q{ DELETE FROM need_merge_authorities WHERE done=1 }); |
374 |
$sth = $dbh->prepare(q{ DELETE FROM need_merge_authorities WHERE done=1 }); |
| 374 |
$sth->execute() or die $dbh->errstr; |
375 |
$sth->execute() or die $dbh->errstr; |
| 375 |
} |
376 |
} |
|
Lines 378-390
if ($purge_merged) {
Link Here
|
| 378 |
|
379 |
|
| 379 |
if ($pImport) { |
380 |
if ($pImport) { |
| 380 |
print "Purging records from import tables.\n" if $verbose; |
381 |
print "Purging records from import tables.\n" if $verbose; |
| 381 |
PurgeImportTables() if $confirm; |
382 |
PurgeImportTables() if $confirm; |
| 382 |
print "Done with purging import tables.\n" if $verbose; |
383 |
print "Done with purging import tables.\n" if $verbose; |
| 383 |
} |
384 |
} |
| 384 |
|
385 |
|
| 385 |
if ($pZ3950) { |
386 |
if ($pZ3950) { |
| 386 |
print "Purging Z39.50 records from import tables.\n" if $verbose; |
387 |
print "Purging Z39.50 records from import tables.\n" if $verbose; |
| 387 |
PurgeZ3950() if $confirm; |
388 |
PurgeZ3950() if $confirm; |
| 388 |
print "Done with purging Z39.50 records from import tables.\n" if $verbose; |
389 |
print "Done with purging Z39.50 records from import tables.\n" if $verbose; |
| 389 |
} |
390 |
} |
| 390 |
|
391 |
|
|
Lines 395-415
if ($pLogs) {
Link Here
|
| 395 |
WHERE timestamp < date_sub(curdate(), INTERVAL ? DAY) |
396 |
WHERE timestamp < date_sub(curdate(), INTERVAL ? DAY) |
| 396 |
}; |
397 |
}; |
| 397 |
my @query_params = (); |
398 |
my @query_params = (); |
| 398 |
if( @preserve_logs ){ |
399 |
if (@preserve_logs) { |
| 399 |
$log_query .= " AND module NOT IN (" . join(',',('?') x @preserve_logs ) . ")"; |
400 |
$log_query .= " AND module NOT IN (" . join( ',', ('?') x @preserve_logs ) . ")"; |
| 400 |
push @query_params, @preserve_logs; |
401 |
push @query_params, @preserve_logs; |
| 401 |
} |
402 |
} |
| 402 |
if( @log_modules ){ |
403 |
if (@log_modules) { |
| 403 |
$log_query .= " AND module IN (" . join(',',('?') x @log_modules ) . ")"; |
404 |
$log_query .= " AND module IN (" . join( ',', ('?') x @log_modules ) . ")"; |
| 404 |
push @query_params, @log_modules; |
405 |
push @query_params, @log_modules; |
| 405 |
} |
406 |
} |
| 406 |
if( @log_actions ){ |
407 |
if (@log_actions) { |
| 407 |
$log_query .= " AND action IN (" . join(',',('?') x @log_actions ) . ")"; |
408 |
$log_query .= " AND action IN (" . join( ',', ('?') x @log_actions ) . ")"; |
| 408 |
push @query_params, @log_actions; |
409 |
push @query_params, @log_actions; |
| 409 |
} |
410 |
} |
| 410 |
$sth = $dbh->prepare( $log_query ); |
411 |
$sth = $dbh->prepare($log_query); |
| 411 |
if ( $confirm ) { |
412 |
if ($confirm) { |
| 412 |
$sth->execute($pLogs, @query_params) or die $dbh->errstr; |
413 |
$sth->execute( $pLogs, @query_params ) or die $dbh->errstr; |
| 413 |
} |
414 |
} |
| 414 |
print "Done with purging action_logs.\n" if $verbose; |
415 |
print "Done with purging action_logs.\n" if $verbose; |
| 415 |
} |
416 |
} |
|
Lines 420-442
if ($pMessages) {
Link Here
|
| 420 |
{ timestamp_column_name => 'message_date', days => $pMessages } ); |
421 |
{ timestamp_column_name => 'message_date', days => $pMessages } ); |
| 421 |
my $count = $messages->count; |
422 |
my $count = $messages->count; |
| 422 |
$messages->delete if $confirm; |
423 |
$messages->delete if $confirm; |
| 423 |
if ( $verbose ) { |
424 |
if ($verbose) { |
| 424 |
say $confirm |
425 |
say $confirm |
| 425 |
? sprintf( "Done with purging %d messages", $count ) |
426 |
? sprintf( "Done with purging %d messages", $count ) |
| 426 |
: sprintf( "%d messages would have been removed", $count ); |
427 |
: sprintf( "%d messages would have been removed", $count ); |
| 427 |
} |
428 |
} |
| 428 |
} |
429 |
} |
| 429 |
|
430 |
|
| 430 |
if ($fees_days) { |
431 |
if ($fees_days) { |
| 431 |
print "Purging records from accountlines.\n" if $verbose; |
432 |
print "Purging records from accountlines.\n" if $verbose; |
| 432 |
purge_zero_balance_fees( $fees_days ) if $confirm; |
433 |
purge_zero_balance_fees($fees_days) if $confirm; |
| 433 |
print "Done purging records from accountlines.\n" if $verbose; |
434 |
print "Done purging records from accountlines.\n" if $verbose; |
| 434 |
} |
435 |
} |
| 435 |
|
436 |
|
| 436 |
if ($pSearchhistory) { |
437 |
if ($pSearchhistory) { |
| 437 |
print "Purging records older than $pSearchhistory from search_history.\n" if $verbose; |
438 |
print "Purging records older than $pSearchhistory from search_history.\n" if $verbose; |
| 438 |
C4::Search::History::delete({ interval => $pSearchhistory }) if $confirm; |
439 |
C4::Search::History::delete( { interval => $pSearchhistory } ) if $confirm; |
| 439 |
print "Done with purging search_history.\n" if $verbose; |
440 |
print "Done with purging search_history.\n" if $verbose; |
| 440 |
} |
441 |
} |
| 441 |
|
442 |
|
| 442 |
if ($pListShareInvites) { |
443 |
if ($pListShareInvites) { |
|
Lines 448-454
if ($pListShareInvites) {
Link Here
|
| 448 |
AND (sharedate + INTERVAL ? DAY) < NOW() |
449 |
AND (sharedate + INTERVAL ? DAY) < NOW() |
| 449 |
} |
450 |
} |
| 450 |
); |
451 |
); |
| 451 |
if ( $confirm ) { |
452 |
if ($confirm) { |
| 452 |
$sth->execute($pListShareInvites); |
453 |
$sth->execute($pListShareInvites); |
| 453 |
} |
454 |
} |
| 454 |
print "Done with purging unaccepted list share invites.\n" if $verbose; |
455 |
print "Done with purging unaccepted list share invites.\n" if $verbose; |
|
Lines 456-563
if ($pListShareInvites) {
Link Here
|
| 456 |
|
457 |
|
| 457 |
if ($pDebarments) { |
458 |
if ($pDebarments) { |
| 458 |
print "Expired patrons restrictions purge triggered for $pDebarments days.\n" if $verbose; |
459 |
print "Expired patrons restrictions purge triggered for $pDebarments days.\n" if $verbose; |
| 459 |
my $count = PurgeDebarments($pDebarments, $confirm); |
460 |
my $count = PurgeDebarments( $pDebarments, $confirm ); |
| 460 |
if ( $verbose ) { |
461 |
if ($verbose) { |
| 461 |
say $confirm ? "$count restrictions were deleted." : "$count restrictions would have been deleted"; |
462 |
say $confirm ? "$count restrictions were deleted." : "$count restrictions would have been deleted"; |
| 462 |
say "Done with restrictions purge."; |
463 |
say "Done with restrictions purge."; |
| 463 |
} |
464 |
} |
| 464 |
} |
465 |
} |
| 465 |
|
466 |
|
| 466 |
if($allDebarments) { |
467 |
if ($allDebarments) { |
| 467 |
print "All expired patrons restrictions purge triggered.\n" if $verbose; |
468 |
print "All expired patrons restrictions purge triggered.\n" if $verbose; |
| 468 |
my $count = PurgeDebarments(0, $confirm); |
469 |
my $count = PurgeDebarments( 0, $confirm ); |
| 469 |
if ( $verbose ) { |
470 |
if ($verbose) { |
| 470 |
say $confirm ? "$count restrictions were deleted." : "$count restrictions would have been deleted"; |
471 |
say $confirm ? "$count restrictions were deleted." : "$count restrictions would have been deleted"; |
| 471 |
say "Done with all restrictions purge."; |
472 |
say "Done with all restrictions purge."; |
| 472 |
} |
473 |
} |
| 473 |
} |
474 |
} |
| 474 |
|
475 |
|
| 475 |
# Lock expired patrons? |
476 |
# Lock expired patrons? |
| 476 |
if( defined $lock_days && $lock_days ne q{} ) { |
477 |
if ( defined $lock_days && $lock_days ne q{} ) { |
| 477 |
say "Start locking expired patrons" if $verbose; |
478 |
say "Start locking expired patrons" if $verbose; |
| 478 |
my $expired_patrons = Koha::Patrons->filter_by_expiration_date({ days => $lock_days })->search({ login_attempts => { '!=' => -1 } }); |
479 |
my $expired_patrons = Koha::Patrons->filter_by_expiration_date( { days => $lock_days } ) |
|
|
480 |
->search( { login_attempts => { '!=' => -1 } } ); |
| 479 |
my $count = $expired_patrons->count; |
481 |
my $count = $expired_patrons->count; |
| 480 |
$expired_patrons->lock({ remove => 1 }) if $confirm; |
482 |
$expired_patrons->lock( { remove => 1 } ) if $confirm; |
| 481 |
if( $verbose ) { |
483 |
if ($verbose) { |
| 482 |
say $confirm ? sprintf("Locked %d patrons", $count) : sprintf("Found %d patrons", $count); |
484 |
say $confirm ? sprintf( "Locked %d patrons", $count ) : sprintf( "Found %d patrons", $count ); |
| 483 |
} |
485 |
} |
| 484 |
} |
486 |
} |
| 485 |
|
487 |
|
| 486 |
# Handle unsubscribe requests from GDPR consent form, depends on UnsubscribeReflectionDelay preference |
488 |
# Handle unsubscribe requests from GDPR consent form, depends on UnsubscribeReflectionDelay preference |
| 487 |
say "Start lock unsubscribed, anonymize and delete" if $verbose; |
489 |
say "Start lock unsubscribed, anonymize and delete" if $verbose; |
| 488 |
my $unsubscribed_patrons = Koha::Patrons->search_unsubscribed; |
490 |
my $unsubscribed_patrons = Koha::Patrons->search_unsubscribed; |
| 489 |
my $count = $unsubscribed_patrons->count; |
491 |
my $count = $unsubscribed_patrons->count; |
| 490 |
$unsubscribed_patrons->lock( { expire => 1, remove => 1 } ) if $confirm; |
492 |
$unsubscribed_patrons->lock( { expire => 1, remove => 1 } ) if $confirm; |
| 491 |
say $confirm ? sprintf("Locked %d patrons", $count) : sprintf("%d patrons would have been locked", $count) if $verbose; |
493 |
say $confirm ? sprintf( "Locked %d patrons", $count ) : sprintf( "%d patrons would have been locked", $count ) |
|
|
494 |
if $verbose; |
| 492 |
|
495 |
|
| 493 |
# Anonymize patron data, depending on PatronAnonymizeDelay |
496 |
# Anonymize patron data, depending on PatronAnonymizeDelay |
| 494 |
my $anonymize_candidates = Koha::Patrons->search_anonymize_candidates( { locked => 1 } ); |
497 |
my $anonymize_candidates = Koha::Patrons->search_anonymize_candidates( { locked => 1 } ); |
| 495 |
$count = $anonymize_candidates->count; |
498 |
$count = $anonymize_candidates->count; |
| 496 |
$anonymize_candidates->anonymize if $confirm; |
499 |
$anonymize_candidates->anonymize if $confirm; |
| 497 |
say $confirm ? sprintf("Anonymized %d patrons", $count) : sprintf("%d patrons would have been anonymized", $count) if $verbose; |
500 |
say $confirm ? sprintf( "Anonymized %d patrons", $count ) : sprintf( "%d patrons would have been anonymized", $count ) |
|
|
501 |
if $verbose; |
| 498 |
|
502 |
|
| 499 |
# Remove patron data, depending on PatronRemovalDelay (will raise an exception if problem encountered |
503 |
# Remove patron data, depending on PatronRemovalDelay (will raise an exception if problem encountered |
| 500 |
my $anonymized_patrons = Koha::Patrons->search_anonymized; |
504 |
my $anonymized_patrons = Koha::Patrons->search_anonymized; |
| 501 |
$count = $anonymized_patrons->count; |
505 |
$count = $anonymized_patrons->count; |
| 502 |
if ( $confirm ) { |
506 |
if ($confirm) { |
| 503 |
$anonymized_patrons->delete( { move => 1 } ); |
507 |
$anonymized_patrons->delete( { move => 1 } ); |
| 504 |
if ($@) { |
508 |
if ($@) { |
| 505 |
warn $@; |
509 |
warn $@; |
| 506 |
} |
510 |
} |
| 507 |
} |
511 |
} |
| 508 |
if ($verbose) { |
512 |
if ($verbose) { |
| 509 |
say $confirm ? sprintf("Deleted %d patrons", $count) : sprintf("%d patrons would have been deleted", $count); |
513 |
say $confirm ? sprintf( "Deleted %d patrons", $count ) : sprintf( "%d patrons would have been deleted", $count ); |
| 510 |
} |
514 |
} |
| 511 |
|
515 |
|
| 512 |
# FIXME The output for dry-run mode needs to be improved |
516 |
# FIXME The output for dry-run mode needs to be improved |
| 513 |
# But non trivial changes to C4::Members need to be done before. |
517 |
# But non trivial changes to C4::Members need to be done before. |
| 514 |
if( $pExpSelfReg ) { |
518 |
if ($pExpSelfReg) { |
| 515 |
if ( $confirm ) { |
519 |
if ($confirm) { |
| 516 |
DeleteExpiredSelfRegs(); |
520 |
DeleteExpiredSelfRegs(); |
| 517 |
} elsif ( $verbose ) { |
521 |
} elsif ($verbose) { |
| 518 |
say "self-registered borrowers may be deleted"; |
522 |
say "self-registered borrowers may be deleted"; |
| 519 |
} |
523 |
} |
| 520 |
} |
524 |
} |
| 521 |
if( $pUnvSelfReg ) { |
525 |
if ($pUnvSelfReg) { |
| 522 |
if ( $confirm ) { |
526 |
if ($confirm) { |
| 523 |
DeleteUnverifiedSelfRegs( $pUnvSelfReg ); |
527 |
DeleteUnverifiedSelfRegs($pUnvSelfReg); |
| 524 |
} elsif ( $verbose ) { |
528 |
} elsif ($verbose) { |
| 525 |
say "unverified self-registrations may be deleted"; |
529 |
say "unverified self-registrations may be deleted"; |
| 526 |
} |
530 |
} |
| 527 |
} |
531 |
} |
| 528 |
|
532 |
|
| 529 |
if ($special_holidays_days) { |
533 |
if ($special_holidays_days) { |
| 530 |
if ( $confirm ) { |
534 |
if ($confirm) { |
| 531 |
DeleteSpecialHolidays( abs($special_holidays_days) ); |
535 |
DeleteSpecialHolidays( abs($special_holidays_days) ); |
| 532 |
} elsif ( $verbose ) { |
536 |
} elsif ($verbose) { |
| 533 |
say "self-registered borrowers may be deleted"; |
537 |
say "self-registered borrowers may be deleted"; |
| 534 |
} |
538 |
} |
| 535 |
} |
539 |
} |
| 536 |
|
540 |
|
| 537 |
if( $temp_uploads ) { |
541 |
if ($temp_uploads) { |
|
|
542 |
|
| 538 |
# Delete temporary uploads, governed by a pref (unless you override) |
543 |
# Delete temporary uploads, governed by a pref (unless you override) |
| 539 |
print "Purging temporary uploads.\n" if $verbose; |
544 |
print "Purging temporary uploads.\n" if $verbose; |
| 540 |
if ( $confirm ) { |
545 |
if ($confirm) { |
| 541 |
Koha::UploadedFiles->delete_temporary({ |
546 |
Koha::UploadedFiles->delete_temporary( |
| 542 |
defined($temp_uploads_days) |
547 |
{ |
|
|
548 |
defined($temp_uploads_days) |
| 543 |
? ( override_pref => $temp_uploads_days ) |
549 |
? ( override_pref => $temp_uploads_days ) |
| 544 |
: () |
550 |
: () |
| 545 |
}); |
551 |
} |
|
|
552 |
); |
| 546 |
} |
553 |
} |
| 547 |
print "Done purging temporary uploads.\n" if $verbose; |
554 |
print "Done purging temporary uploads.\n" if $verbose; |
| 548 |
} |
555 |
} |
| 549 |
|
556 |
|
| 550 |
if( defined $uploads_missing ) { |
557 |
if ( defined $uploads_missing ) { |
| 551 |
print "Looking for missing uploads\n" if $verbose; |
558 |
print "Looking for missing uploads\n" if $verbose; |
| 552 |
if ( $confirm ) { |
559 |
if ($confirm) { |
| 553 |
my $keep = $uploads_missing == 1 ? 0 : 1; |
560 |
my $keep = $uploads_missing == 1 ? 0 : 1; |
| 554 |
my $count = Koha::UploadedFiles->delete_missing({ keep_record => $keep }); |
561 |
my $count = Koha::UploadedFiles->delete_missing( { keep_record => $keep } ); |
| 555 |
if( $keep ) { |
562 |
if ($keep) { |
| 556 |
print "Counted $count missing uploaded files\n"; |
563 |
print "Counted $count missing uploaded files\n"; |
| 557 |
} else { |
564 |
} else { |
| 558 |
print "Removed $count records for missing uploads\n"; |
565 |
print "Removed $count records for missing uploads\n"; |
| 559 |
} |
566 |
} |
| 560 |
} else { |
567 |
} else { |
|
|
568 |
|
| 561 |
# FIXME need to create a filter_by_missing method (then call ->delete) instead of delete_missing |
569 |
# FIXME need to create a filter_by_missing method (then call ->delete) instead of delete_missing |
| 562 |
say "Dry-run mode cannot guess how many uploads would have been deleted"; |
570 |
say "Dry-run mode cannot guess how many uploads would have been deleted"; |
| 563 |
} |
571 |
} |
|
Lines 566-601
if( defined $uploads_missing ) {
Link Here
|
| 566 |
if ($oauth_tokens) { |
574 |
if ($oauth_tokens) { |
| 567 |
require Koha::OAuthAccessTokens; |
575 |
require Koha::OAuthAccessTokens; |
| 568 |
|
576 |
|
| 569 |
my $tokens = Koha::OAuthAccessTokens->search({ expires => { '<=', time } }); |
577 |
my $tokens = Koha::OAuthAccessTokens->search( { expires => { '<=', time } } ); |
| 570 |
my $count = $tokens->count; |
578 |
my $count = $tokens->count; |
| 571 |
$tokens->delete if $confirm; |
579 |
$tokens->delete if $confirm; |
| 572 |
if ( $verbose ) { |
580 |
if ($verbose) { |
| 573 |
say $confirm |
581 |
say $confirm |
| 574 |
? sprintf( "Removed %d expired OAuth2 tokens", $count ) |
582 |
? sprintf( "Removed %d expired OAuth2 tokens", $count ) |
| 575 |
: sprintf( "%d expired OAuth tokens would have been removed", $count ); |
583 |
: sprintf( "%d expired OAuth tokens would have been removed", $count ); |
| 576 |
} |
584 |
} |
| 577 |
} |
585 |
} |
| 578 |
|
586 |
|
| 579 |
if ($pStatistics) { |
587 |
if ($pStatistics) { |
| 580 |
print "Purging statistics older than $pStatistics days.\n" if $verbose; |
588 |
print "Purging statistics older than $pStatistics days.\n" if $verbose; |
| 581 |
my $statistics = Koha::Statistics->filter_by_last_update( |
589 |
my $statistics = |
| 582 |
{ timestamp_column_name => 'datetime', days => $pStatistics } ); |
590 |
Koha::Statistics->filter_by_last_update( { timestamp_column_name => 'datetime', days => $pStatistics } ); |
| 583 |
my $count = $statistics->count; |
591 |
my $count = $statistics->count; |
| 584 |
$statistics->delete if $confirm; |
592 |
$statistics->delete if $confirm; |
| 585 |
if ( $verbose ) { |
593 |
if ($verbose) { |
| 586 |
say $confirm |
594 |
say $confirm |
| 587 |
? sprintf( "Done with purging %d statistics", $count ) |
595 |
? sprintf( "Done with purging %d statistics", $count ) |
| 588 |
: sprintf( "%d statistics would have been removed", $count ); |
596 |
: sprintf( "%d statistics would have been removed", $count ); |
| 589 |
} |
597 |
} |
| 590 |
} |
598 |
} |
| 591 |
|
599 |
|
| 592 |
if( $return_claims && ( my $days = C4::Context->preference('CleanUpDatabaseReturnClaims') )) { |
600 |
if ( $return_claims && ( my $days = C4::Context->preference('CleanUpDatabaseReturnClaims') ) ) { |
| 593 |
print "Purging return claims older than $days days.\n" if $verbose; |
601 |
print "Purging return claims older than $days days.\n" if $verbose; |
| 594 |
|
602 |
|
| 595 |
$return_claims = Koha::Checkouts::ReturnClaims->filter_by_last_update( |
603 |
$return_claims = Koha::Checkouts::ReturnClaims->filter_by_last_update( |
| 596 |
{ |
604 |
{ |
| 597 |
timestamp_column_name => 'resolved_on', |
605 |
timestamp_column_name => 'resolved_on', |
| 598 |
days => $days, |
606 |
days => $days, |
| 599 |
} |
607 |
} |
| 600 |
); |
608 |
); |
| 601 |
|
609 |
|
|
Lines 611-622
if( $return_claims && ( my $days = C4::Context->preference('CleanUpDatabaseRetur
Link Here
|
| 611 |
|
619 |
|
| 612 |
if ($pDeletedCatalog) { |
620 |
if ($pDeletedCatalog) { |
| 613 |
print "Purging deleted catalog older than $pDeletedCatalog days.\n" |
621 |
print "Purging deleted catalog older than $pDeletedCatalog days.\n" |
| 614 |
if $verbose; |
622 |
if $verbose; |
| 615 |
my $old_items = Koha::Old::Items->filter_by_last_update( { days => $pDeletedCatalog } ); |
623 |
my $old_items = Koha::Old::Items->filter_by_last_update( { days => $pDeletedCatalog } ); |
| 616 |
my $old_biblioitems = Koha::Old::Biblioitems->filter_by_last_update( { days => $pDeletedCatalog } ); |
624 |
my $old_biblioitems = Koha::Old::Biblioitems->filter_by_last_update( { days => $pDeletedCatalog } ); |
| 617 |
my $old_biblios = Koha::Old::Biblios->filter_by_last_update( { days => $pDeletedCatalog } ); |
625 |
my $old_biblios = Koha::Old::Biblios->filter_by_last_update( { days => $pDeletedCatalog } ); |
| 618 |
my ( $c_i, $c_bi, $c_b ) = |
626 |
my ( $c_i, $c_bi, $c_b ) = ( $old_items->count, $old_biblioitems->count, $old_biblios->count ); |
| 619 |
( $old_items->count, $old_biblioitems->count, $old_biblios->count ); |
|
|
| 620 |
if ($confirm) { |
627 |
if ($confirm) { |
| 621 |
$old_items->delete; |
628 |
$old_items->delete; |
| 622 |
$old_biblioitems->delete; |
629 |
$old_biblioitems->delete; |
|
Lines 627-633
if ($pDeletedCatalog) {
Link Here
|
| 627 |
$confirm |
634 |
$confirm |
| 628 |
? "Done with purging deleted catalog (%d items, %d biblioitems, %d biblios)." |
635 |
? "Done with purging deleted catalog (%d items, %d biblioitems, %d biblios)." |
| 629 |
: "Deleted catalog would have been removed (%d items, %d biblioitems, %d biblios).", |
636 |
: "Deleted catalog would have been removed (%d items, %d biblioitems, %d biblios).", |
| 630 |
$c_i, $c_bi, $c_b); |
637 |
$c_i, $c_bi, $c_b |
|
|
638 |
); |
| 631 |
} |
639 |
} |
| 632 |
} |
640 |
} |
| 633 |
|
641 |
|
|
Lines 639-670
if ($pDeletedPatrons) {
Link Here
|
| 639 |
$old_patrons->delete if $confirm; |
647 |
$old_patrons->delete if $confirm; |
| 640 |
if ($verbose) { |
648 |
if ($verbose) { |
| 641 |
say $confirm |
649 |
say $confirm |
| 642 |
? sprintf "Done with purging %d deleted patrons.", $count |
650 |
? sprintf "Done with purging %d deleted patrons.", $count |
| 643 |
: sprintf "%d deleted patrons would have been purged.", $count; |
651 |
: sprintf "%d deleted patrons would have been purged.", $count; |
| 644 |
} |
652 |
} |
| 645 |
} |
653 |
} |
| 646 |
|
654 |
|
| 647 |
if ($pOldIssues) { |
655 |
if ($pOldIssues) { |
| 648 |
print "Purging old checkouts older than $pOldIssues days.\n" if $verbose; |
656 |
print "Purging old checkouts older than $pOldIssues days.\n" if $verbose; |
| 649 |
my $old_checkouts = Koha::Old::Checkouts->filter_by_last_update( { days => $pOldIssues } ); |
657 |
my $old_checkouts = Koha::Old::Checkouts->filter_by_last_update( { days => $pOldIssues } ); |
| 650 |
my $count = $old_checkouts->count; |
658 |
my $count = $old_checkouts->count; |
| 651 |
$old_checkouts->delete if $confirm; |
659 |
$old_checkouts->delete if $confirm; |
| 652 |
if ($verbose) { |
660 |
if ($verbose) { |
| 653 |
say $confirm |
661 |
say $confirm |
| 654 |
? sprintf "Done with purging %d old checkouts.", $count |
662 |
? sprintf "Done with purging %d old checkouts.", $count |
| 655 |
: sprintf "%d old checkouts would have been purged.", $count; |
663 |
: sprintf "%d old checkouts would have been purged.", $count; |
| 656 |
} |
664 |
} |
| 657 |
} |
665 |
} |
| 658 |
|
666 |
|
| 659 |
if ($pOldReserves) { |
667 |
if ($pOldReserves) { |
| 660 |
print "Purging old reserves older than $pOldReserves days.\n" if $verbose; |
668 |
print "Purging old reserves older than $pOldReserves days.\n" if $verbose; |
| 661 |
my $old_reserves = Koha::Old::Holds->filter_by_last_update( { days => $pOldReserves } ); |
669 |
my $old_reserves = Koha::Old::Holds->filter_by_last_update( { days => $pOldReserves } ); |
| 662 |
my $count = $old_reserves->count; |
670 |
my $count = $old_reserves->count; |
| 663 |
$old_reserves->delete if $confirm; |
671 |
$old_reserves->delete if $confirm; |
| 664 |
if ($verbose) { |
672 |
if ($verbose) { |
| 665 |
say $confirm |
673 |
say $confirm |
| 666 |
? sprintf "Done with purging %d old reserves.", $count |
674 |
? sprintf "Done with purging %d old reserves.", $count |
| 667 |
: sprintf "%d old reserves would have been purged.", $count; |
675 |
: sprintf "%d old reserves would have been purged.", $count; |
| 668 |
} |
676 |
} |
| 669 |
} |
677 |
} |
| 670 |
|
678 |
|
|
Lines 673-691
if ($pTransfers) {
Link Here
|
| 673 |
my $transfers = Koha::Item::Transfers->filter_by_last_update( |
681 |
my $transfers = Koha::Item::Transfers->filter_by_last_update( |
| 674 |
{ |
682 |
{ |
| 675 |
timestamp_column_name => 'datearrived', |
683 |
timestamp_column_name => 'datearrived', |
| 676 |
days => $pTransfers, |
684 |
days => $pTransfers, |
| 677 |
} |
685 |
} |
| 678 |
); |
686 |
); |
| 679 |
my $count = $transfers->count; |
687 |
my $count = $transfers->count; |
| 680 |
$transfers->delete if $confirm; |
688 |
$transfers->delete if $confirm; |
| 681 |
if ($verbose) { |
689 |
if ($verbose) { |
| 682 |
say $confirm |
690 |
say $confirm |
| 683 |
? sprintf "Done with purging %d transfers.", $count |
691 |
? sprintf "Done with purging %d transfers.", $count |
| 684 |
: sprintf "%d transfers would have been purged.", $count; |
692 |
: sprintf "%d transfers would have been purged.", $count; |
| 685 |
} |
693 |
} |
| 686 |
} |
694 |
} |
| 687 |
|
695 |
|
| 688 |
if (defined $pPseudoTransactions or $pPseudoTransactionsFrom or $pPseudoTransactionsTo ) { |
696 |
if ( defined $pPseudoTransactions or $pPseudoTransactionsFrom or $pPseudoTransactionsTo ) { |
| 689 |
print "Purging pseudonymized transactions\n" if $verbose; |
697 |
print "Purging pseudonymized transactions\n" if $verbose; |
| 690 |
if ($pPseudoTransactionsTo) { |
698 |
if ($pPseudoTransactionsTo) { |
| 691 |
$pPseudoTransactionsTo = dt_from_string($pPseudoTransactionsTo); |
699 |
$pPseudoTransactionsTo = dt_from_string($pPseudoTransactionsTo); |
|
Lines 696-738
if (defined $pPseudoTransactions or $pPseudoTransactionsFrom or $pPseudoTransact
Link Here
|
| 696 |
my $anonymized_transactions = Koha::PseudonymizedTransactions->filter_by_last_update( |
704 |
my $anonymized_transactions = Koha::PseudonymizedTransactions->filter_by_last_update( |
| 697 |
{ |
705 |
{ |
| 698 |
timestamp_column_name => 'datetime', |
706 |
timestamp_column_name => 'datetime', |
| 699 |
( defined $pPseudoTransactions ? ( days => $pPseudoTransactions ) : () ), |
707 |
( defined $pPseudoTransactions ? ( days => $pPseudoTransactions ) : () ), |
| 700 |
( $pPseudoTransactionsFrom ? ( from => $pPseudoTransactionsFrom ) : () ), |
708 |
( $pPseudoTransactionsFrom ? ( from => $pPseudoTransactionsFrom ) : () ), |
| 701 |
( $pPseudoTransactionsTo ? ( to => $pPseudoTransactionsTo ) : () ), |
709 |
( $pPseudoTransactionsTo ? ( to => $pPseudoTransactionsTo ) : () ), |
| 702 |
} |
710 |
} |
| 703 |
); |
711 |
); |
| 704 |
my $count = $anonymized_transactions->count; |
712 |
my $count = $anonymized_transactions->count; |
| 705 |
$anonymized_transactions->delete if $confirm; |
713 |
$anonymized_transactions->delete if $confirm; |
| 706 |
if ($verbose) { |
714 |
if ($verbose) { |
| 707 |
say $confirm |
715 |
say $confirm |
| 708 |
? sprintf "Done with purging %d pseudonymized transactions.", $count |
716 |
? sprintf "Done with purging %d pseudonymized transactions.", $count |
| 709 |
: sprintf "%d pseudonymized transactions would have been purged.", $count; |
717 |
: sprintf "%d pseudonymized transactions would have been purged.", $count; |
| 710 |
} |
718 |
} |
| 711 |
} |
719 |
} |
| 712 |
|
720 |
|
| 713 |
if ($labels) { |
721 |
if ($labels) { |
| 714 |
print "Purging item label batches last added to more than $labels days ago.\n" if $verbose; |
722 |
print "Purging item label batches last added to more than $labels days ago.\n" if $verbose; |
| 715 |
my $count = PurgeCreatorBatches($labels, 'labels', $confirm); |
723 |
my $count = PurgeCreatorBatches( $labels, 'labels', $confirm ); |
| 716 |
if ($verbose) { |
724 |
if ($verbose) { |
| 717 |
say $confirm |
725 |
say $confirm |
| 718 |
? sprintf "Done with purging %d item label batches last added to more than %d days ago.\n", $count, $labels |
726 |
? sprintf "Done with purging %d item label batches last added to more than %d days ago.\n", $count, $labels |
| 719 |
: sprintf "%d item label batches would have been purged.", $count; |
727 |
: sprintf "%d item label batches would have been purged.", $count; |
| 720 |
} |
728 |
} |
| 721 |
} |
729 |
} |
| 722 |
|
730 |
|
| 723 |
if ($cards) { |
731 |
if ($cards) { |
| 724 |
print "Purging card creator batches last added to more than $cards days ago.\n" if $verbose; |
732 |
print "Purging card creator batches last added to more than $cards days ago.\n" if $verbose; |
| 725 |
my $count = PurgeCreatorBatches($labels, 'patroncards', $confirm); |
733 |
my $count = PurgeCreatorBatches( $labels, 'patroncards', $confirm ); |
| 726 |
if ($verbose) { |
734 |
if ($verbose) { |
| 727 |
say $confirm |
735 |
say $confirm |
| 728 |
? sprintf "Done with purging %d card creator batches last added to more than %d days ago.\n", $count, $labels |
736 |
? sprintf "Done with purging %d card creator batches last added to more than %d days ago.\n", $count, |
| 729 |
: sprintf "%d card creator batches would have been purged.", $count; |
737 |
$labels |
|
|
738 |
: sprintf "%d card creator batches would have been purged.", $count; |
| 730 |
} |
739 |
} |
| 731 |
} |
740 |
} |
| 732 |
|
741 |
|
| 733 |
if ($jobs_days) { |
742 |
if ($jobs_days) { |
| 734 |
print "Purging background jobs more than $jobs_days days ago.\n" |
743 |
print "Purging background jobs more than $jobs_days days ago.\n" |
| 735 |
if $verbose; |
744 |
if $verbose; |
| 736 |
my $jobs = Koha::BackgroundJobs->search( |
745 |
my $jobs = Koha::BackgroundJobs->search( |
| 737 |
{ |
746 |
{ |
| 738 |
status => 'finished', |
747 |
status => 'finished', |
|
Lines 741-779
if ($jobs_days) {
Link Here
|
| 741 |
)->filter_by_last_update( |
750 |
)->filter_by_last_update( |
| 742 |
{ |
751 |
{ |
| 743 |
timestamp_column_name => 'ended_on', |
752 |
timestamp_column_name => 'ended_on', |
| 744 |
days => $jobs_days, |
753 |
days => $jobs_days, |
| 745 |
} |
754 |
} |
| 746 |
); |
755 |
); |
| 747 |
my $count = $jobs->count; |
756 |
my $count = $jobs->count; |
| 748 |
$jobs->delete if $confirm; |
757 |
$jobs->delete if $confirm; |
| 749 |
if ($verbose) { |
758 |
if ($verbose) { |
| 750 |
say $confirm |
759 |
say $confirm |
| 751 |
? sprintf "Done with purging %d background jobs of type(s): %s added more than %d days ago.\n", |
760 |
? sprintf "Done with purging %d background jobs of type(s): %s added more than %d days ago.\n", |
| 752 |
$count, join( ',', @jobs_types ), $jobs_days |
761 |
$count, join( ',', @jobs_types ), $jobs_days |
| 753 |
: sprintf "%d background jobs of type(s): %s added more than %d days ago would have been purged.", |
762 |
: sprintf "%d background jobs of type(s): %s added more than %d days ago would have been purged.", |
| 754 |
$count, join( ',', @jobs_types ), $jobs_days; |
763 |
$count, join( ',', @jobs_types ), $jobs_days; |
| 755 |
} |
764 |
} |
| 756 |
} |
765 |
} |
| 757 |
|
766 |
|
| 758 |
if ($reports) { |
767 |
if ($reports) { |
| 759 |
if ( $confirm ) { |
768 |
if ($confirm) { |
| 760 |
PurgeSavedReports($reports); |
769 |
PurgeSavedReports($reports); |
| 761 |
} if ( $verbose ) { |
770 |
} |
|
|
771 |
if ($verbose) { |
| 762 |
say "Purging reports data saved more than $reports days ago.\n"; |
772 |
say "Purging reports data saved more than $reports days ago.\n"; |
| 763 |
} |
773 |
} |
| 764 |
} |
774 |
} |
| 765 |
|
775 |
|
| 766 |
if($edifact_msg_days) { |
776 |
if ($edifact_msg_days) { |
| 767 |
print "Purging EDIFACT messages older than $edifact_msg_days days.\n" if $verbose; |
777 |
print "Purging EDIFACT messages older than $edifact_msg_days days.\n" if $verbose; |
| 768 |
my $count = PurgeEdifactMessages($edifact_msg_days, $confirm); |
778 |
my $count = PurgeEdifactMessages( $edifact_msg_days, $confirm ); |
| 769 |
if ( $verbose ) { |
779 |
if ($verbose) { |
| 770 |
say $confirm |
780 |
say $confirm |
| 771 |
? sprintf( "Done with purging %d EDIFACT messages", $count ) |
781 |
? sprintf( "Done with purging %d EDIFACT messages", $count ) |
| 772 |
: sprintf( "%d EDIFACT messages would have been removed", $count ); |
782 |
: sprintf( "%d EDIFACT messages would have been removed", $count ); |
| 773 |
} |
783 |
} |
| 774 |
} |
784 |
} |
| 775 |
|
785 |
|
| 776 |
cronlogaction({ action => 'End', info => "COMPLETED" }); |
786 |
cronlogaction( { action => 'End', info => "COMPLETED" } ); |
| 777 |
|
787 |
|
| 778 |
exit(0); |
788 |
exit(0); |
| 779 |
|
789 |
|
|
Lines 784-798
sub RemoveOldSessions {
Link Here
|
| 784 |
$sth = $dbh->prepare(q{ SELECT id, a_session FROM sessions }); |
794 |
$sth = $dbh->prepare(q{ SELECT id, a_session FROM sessions }); |
| 785 |
$sth->execute or die $dbh->errstr; |
795 |
$sth->execute or die $dbh->errstr; |
| 786 |
$sth->bind_columns( \$id, \$a_session ); |
796 |
$sth->bind_columns( \$id, \$a_session ); |
| 787 |
$sth2 = $dbh->prepare(q{ DELETE FROM sessions WHERE id=? }); |
797 |
$sth2 = $dbh->prepare(q{ DELETE FROM sessions WHERE id=? }); |
| 788 |
my $count = 0; |
798 |
my $count = 0; |
| 789 |
|
799 |
|
| 790 |
while ( $sth->fetch ) { |
800 |
while ( $sth->fetch ) { |
| 791 |
$lasttime = 0; |
801 |
$lasttime = 0; |
| 792 |
if ( $a_session =~ /lasttime:\s+'?(\d+)/ ) { |
802 |
if ( $a_session =~ /lasttime:\s+'?(\d+)/ ) { |
| 793 |
$lasttime = $1; |
803 |
$lasttime = $1; |
| 794 |
} |
804 |
} elsif ( $a_session =~ /(ATIME|CTIME):\s+'?(\d+)/ ) { |
| 795 |
elsif ( $a_session =~ /(ATIME|CTIME):\s+'?(\d+)/ ) { |
|
|
| 796 |
$lasttime = $2; |
805 |
$lasttime = $2; |
| 797 |
} |
806 |
} |
| 798 |
if ( $lasttime && $lasttime < $limit ) { |
807 |
if ( $lasttime && $lasttime < $limit ) { |
|
Lines 848-854
sub PurgeDebarments {
Link Here
|
| 848 |
require Koha::Patron::Debarments; |
857 |
require Koha::Patron::Debarments; |
| 849 |
my ( $days, $doit ) = @_; |
858 |
my ( $days, $doit ) = @_; |
| 850 |
my $count = 0; |
859 |
my $count = 0; |
| 851 |
$sth = $dbh->prepare( |
860 |
$sth = $dbh->prepare( |
| 852 |
q{ |
861 |
q{ |
| 853 |
SELECT borrower_debarment_id |
862 |
SELECT borrower_debarment_id |
| 854 |
FROM borrower_debarments |
863 |
FROM borrower_debarments |
|
Lines 891-937
sub PurgeCreatorBatches {
Link Here
|
| 891 |
} |
900 |
} |
| 892 |
|
901 |
|
| 893 |
sub DeleteExpiredSelfRegs { |
902 |
sub DeleteExpiredSelfRegs { |
| 894 |
my $cnt= C4::Members::DeleteExpiredOpacRegistrations(); |
903 |
my $cnt = C4::Members::DeleteExpiredOpacRegistrations(); |
| 895 |
print "Removed $cnt expired self-registered borrowers\n" if $verbose; |
904 |
print "Removed $cnt expired self-registered borrowers\n" if $verbose; |
| 896 |
} |
905 |
} |
| 897 |
|
906 |
|
| 898 |
sub DeleteUnverifiedSelfRegs { |
907 |
sub DeleteUnverifiedSelfRegs { |
| 899 |
my $cnt= C4::Members::DeleteUnverifiedOpacRegistrations( $_[0] ); |
908 |
my $cnt = C4::Members::DeleteUnverifiedOpacRegistrations( $_[0] ); |
| 900 |
print "Removed $cnt unverified self-registrations\n" if $verbose; |
909 |
print "Removed $cnt unverified self-registrations\n" if $verbose; |
| 901 |
} |
910 |
} |
| 902 |
|
911 |
|
| 903 |
sub DeleteSpecialHolidays { |
912 |
sub DeleteSpecialHolidays { |
| 904 |
my ( $days ) = @_; |
913 |
my ($days) = @_; |
| 905 |
|
914 |
|
| 906 |
my $sth = $dbh->prepare(q{ |
915 |
my $sth = $dbh->prepare( |
|
|
916 |
q{ |
| 907 |
DELETE FROM special_holidays |
917 |
DELETE FROM special_holidays |
| 908 |
WHERE DATE( CONCAT( year, '-', month, '-', day ) ) < DATE_SUB( CAST(NOW() AS DATE), INTERVAL ? DAY ); |
918 |
WHERE DATE( CONCAT( year, '-', month, '-', day ) ) < DATE_SUB( CAST(NOW() AS DATE), INTERVAL ? DAY ); |
| 909 |
}); |
919 |
} |
| 910 |
my $count = $sth->execute( $days ) + 0; |
920 |
); |
|
|
921 |
my $count = $sth->execute($days) + 0; |
| 911 |
print "Removed $count unique holidays\n" if $verbose; |
922 |
print "Removed $count unique holidays\n" if $verbose; |
| 912 |
} |
923 |
} |
| 913 |
|
924 |
|
| 914 |
sub PurgeSavedReports { |
925 |
sub PurgeSavedReports { |
| 915 |
my ( $reports ) = @_; |
926 |
my ($reports) = @_; |
| 916 |
|
927 |
|
| 917 |
my $sth = $dbh->prepare(q{ |
928 |
my $sth = $dbh->prepare( |
|
|
929 |
q{ |
| 918 |
DELETE FROM saved_reports |
930 |
DELETE FROM saved_reports |
| 919 |
WHERE date(date_run) < DATE_SUB(CURDATE(),INTERVAL ? DAY ); |
931 |
WHERE date(date_run) < DATE_SUB(CURDATE(),INTERVAL ? DAY ); |
| 920 |
}); |
932 |
} |
| 921 |
$sth->execute( $reports ); |
933 |
); |
|
|
934 |
$sth->execute($reports); |
| 922 |
} |
935 |
} |
| 923 |
|
936 |
|
| 924 |
sub PurgeEdifactMessages { |
937 |
sub PurgeEdifactMessages { |
| 925 |
my ( $days, $doit ) = @_; |
938 |
my ( $days, $doit ) = @_; |
| 926 |
|
939 |
|
| 927 |
my $schema = Koha::Database->new()->schema(); |
940 |
my $schema = Koha::Database->new()->schema(); |
| 928 |
my $dtf = $schema->storage->datetime_parser; |
941 |
my $dtf = $schema->storage->datetime_parser; |
| 929 |
my $resultset = $schema->resultset('EdifactMessage')->search( |
942 |
my $resultset = $schema->resultset('EdifactMessage')->search( |
| 930 |
{ |
943 |
{ |
| 931 |
transfer_date => { |
944 |
transfer_date => { '<' => $dtf->format_datetime( dt_from_string->subtract( days => $days ) ) }, |
| 932 |
'<' => $dtf->format_datetime(dt_from_string->subtract( days => $days )) |
945 |
status => { '!=' => 'new' }, |
| 933 |
}, |
|
|
| 934 |
status => { '!=' => 'new' }, |
| 935 |
} |
946 |
} |
| 936 |
); |
947 |
); |
| 937 |
my $count = $resultset->count; |
948 |
my $count = $resultset->count; |
| 938 |
- |
|
|