View | Details | Raw Unified | Return to bug 30069
Collapse All | Expand All

(-)a/misc/cronjobs/cleanup_database.pl (-27 / +25 lines)
Lines 31-56 use constant DEFAULT_JOBS_PURGEDAYS => 1; Link Here
31
use constant DEFAULT_JOBS_PURGETYPES              => qw{ update_elastic_index };
31
use constant DEFAULT_JOBS_PURGETYPES              => qw{ update_elastic_index };
32
use constant DEFAULT_EDIFACT_MSG_PURGEDAYS        => 365;
32
use constant DEFAULT_EDIFACT_MSG_PURGEDAYS        => 365;
33
33
34
use Getopt::Long qw( GetOptions );
35
34
use Koha::Script -cron;
36
use Koha::Script -cron;
37
38
use C4::Accounts qw( purge_zero_balance_fees );
35
use C4::Context;
39
use C4::Context;
36
use C4::Search;
37
use C4::Search::History;
38
use Getopt::Long qw( GetOptions );
39
use C4::Log qw( cronlogaction );
40
use C4::Log qw( cronlogaction );
40
use C4::Accounts qw( purge_zero_balance_fees );
41
use C4::Search::History;
41
use Koha::UploadedFiles;
42
use C4::Search;
42
use Koha::BackgroundJobs;
43
use Koha::BackgroundJobs;
43
use Koha::Old::Biblios;
44
use Koha::Database;
44
use Koha::Old::Items;
45
use Koha::DateUtils qw( dt_from_string );
46
use Koha::Item::Transfers;
45
use Koha::Old::Biblioitems;
47
use Koha::Old::Biblioitems;
48
use Koha::Old::Biblios;
46
use Koha::Old::Checkouts;
49
use Koha::Old::Checkouts;
47
use Koha::Old::Holds;
50
use Koha::Old::Holds;
51
use Koha::Old::Items;
48
use Koha::Old::Patrons;
52
use Koha::Old::Patrons;
49
use Koha::Item::Transfers;
50
use Koha::PseudonymizedTransactions;
51
use Koha::Patron::Messages;
52
use Koha::Patron::Debarments qw( DelDebarment );
53
use Koha::Patron::Debarments qw( DelDebarment );
53
use Koha::Database;
54
use Koha::Patron::Messages;
55
use Koha::PseudonymizedTransactions;
56
use Koha::UploadedFiles;
54
57
55
sub usage {
58
sub usage {
56
    print STDERR <<USAGE;
59
    print STDERR <<USAGE;
Lines 116-122 Usage: $0 [-h|--help] [--confirm] [--sessions] [--sessdays DAYS] [-v|--verbose] Link Here
116
   --jobs-type TYPES       What type of background job to purge. Defaults to "update_elastic_index" if omitted
119
   --jobs-type TYPES       What type of background job to purge. Defaults to "update_elastic_index" if omitted
117
                           Specifying "all" will purge all types. Repeatable.
120
                           Specifying "all" will purge all types. Repeatable.
118
   --reports DAYS          Purge reports data saved more than DAYS days ago. The data is created by running runreport.pl with the --store-results option.
121
   --reports DAYS          Purge reports data saved more than DAYS days ago. The data is created by running runreport.pl with the --store-results option.
119
   --edifact-messages DAYS   Purge entries from the edifact_messages table older than DAYS days.
122
   --edifact-messages DAYS   Purge process and failed EDIFACT messages handled more than DAYS days.
120
                             Defaults to 365 days if no days specified.
123
                             Defaults to 365 days if no days specified.
121
USAGE
124
USAGE
122
    exit $_[0];
125
    exit $_[0];
Lines 894-916 sub PurgeSavedReports { Link Here
894
sub PurgeEdifactMessages {
897
sub PurgeEdifactMessages {
895
    my ( $days, $doit ) = @_;
898
    my ( $days, $doit ) = @_;
896
899
897
    my $count = 0;
898
    my $schema = Koha::Database->new()->schema();
900
    my $schema = Koha::Database->new()->schema();
899
901
    my $dtf = $schema->storage->datetime_parser;
900
    $sth = $dbh->prepare(
902
    my $resultset = $schema->resultset('EdifactMessage')->search(
901
        q{
903
        {
902
            SELECT id
904
            transfer_date => {
903
            FROM edifact_messages
905
                '<' => $dtf->format_datetime(dt_from_string->subtract( days => $days ))
904
            WHERE transfer_date < date_sub(curdate(), INTERVAL ? DAY)
906
            },
905
            AND status != 'new';
907
            status => { '!=' => 'new' },
906
        }
908
        }
907
    );
909
    );
908
    $sth->execute($days) or die $dbh->errstr;
910
    my $count = $resultset->count;
911
912
    $resultset->delete if $doit;
909
913
910
    while ( my ($msg_id) = $sth->fetchrow_array) {
911
        my $msg = $schema->resultset('EdifactMessage')->find($msg_id);
912
        $msg->delete if $doit;
913
        $count++;
914
    }
915
    return $count;
914
    return $count;
916
}
915
}
917
- 

Return to bug 30069