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

(-)a/misc/cronjobs/cleanup_database.pl (-31 / +13 lines)
Lines 229-246 if ($pDebarments && $allDebarments) { Link Here
229
    usage(1);
229
    usage(1);
230
}
230
}
231
231
232
<<<<<<< HEAD
233
say "Confirm flag not passed, running in dry-run mode..." unless $confirm;
232
say "Confirm flag not passed, running in dry-run mode..." unless $confirm;
234
233
235
cronlogaction() unless $confirm;
234
cronlogaction() unless $confirm;
236
=======
235
237
if (!$mail && $letter_codes) {
236
if (!$mail && $letter_codes) {
238
    print "You should not specify --keep-lc if you're not cleaning emails.\n\n";
237
    print "You should not specify --keep-lc if you're not cleaning emails.\n\n";
239
    usage(1);
238
    usage(1);
240
}
239
}
241
240
242
cronlogaction();
241
cronlogaction();
243
>>>>>>> Bug 21214: cleanup_database.pl --keep-lc to dodge deletion in message_queue based on letter_code
244
242
245
my $dbh = C4::Context->dbh();
243
my $dbh = C4::Context->dbh();
246
my $sth;
244
my $sth;
Lines 297-335 if ($zebraqueue_days) { Link Here
297
if ($mail) {
295
if ($mail) {
298
    my $count = 0;
296
    my $count = 0;
299
    print "Mail queue purge triggered for $mail days.\n" if $verbose;
297
    print "Mail queue purge triggered for $mail days.\n" if $verbose;
300
<<<<<<< HEAD
301
    $sth = $dbh->prepare(
302
        q{
303
            DELETE FROM message_queue
304
            WHERE time_queued < date_sub(curdate(), INTERVAL ? DAY)
305
        }
306
    );
307
    if ( $confirm ) {
308
        $sth->execute($mail) or die $dbh->errstr;
309
        $count = $sth->rows;
310
    }
311
    if ( $verbose ) {
312
        say $confirm ? "$count messages were deleted from the mail queue." : "Message from message_queue would have been deleted";
313
        say "Done with message_queue purge.";
314
    }
315
=======
316
    print "Not deleting emails of type $letter_codes.\n" if ($verbose && $letter_codes);
298
    print "Not deleting emails of type $letter_codes.\n" if ($verbose && $letter_codes);
317
    my $query = q{
299
318
        DELETE FROM message_queue
300
    my (@codes, $quoted_codes);
319
        WHERE time_queued < date_sub(curdate(), INTERVAL ? DAY)
301
320
          AND letter_code NOT IN ( ? )
321
    };
322
    my $quoted_codes = '';
323
    if ($letter_codes) {
302
    if ($letter_codes) {
324
        my @codes = map { "'$_'" } split(',', $letter_codes);
303
        $letter_codes =~ s/ //g;
325
        my $quoted_codes = join(',', @codes);
304
        @codes = map { "$_" } split(',', $letter_codes);
305
        $quoted_codes = join ",", ("?") x @codes;
326
    }
306
    }
327
    $sth = $dbh->prepare($query);
307
        
328
    $sth->execute($mail, $quoted_codes) or die $dbh->errstr;
308
    $sth = $dbh->prepare("
309
        DELETE FROM message_queue
310
        WHERE time_queued < date_sub(curdate(), INTERVAL ? DAY)
311
          AND letter_code NOT IN ( $quoted_codes )");
312
    $sth->execute($mail, @codes) or die $dbh->errstr;
329
    $count = $sth->rows;
313
    $count = $sth->rows;
330
    $sth->finish;
314
    $sth->finish;
331
    print "$count messages were deleted from the mail queue.\nDone with message_queue purge.\n" if $verbose;
315
    print "$count messages were deleted from the mail queue.\nDone with message_queue purge.\n" if $verbose;
332
>>>>>>> Bug 21214: cleanup_database.pl --keep-lc to dodge deletion in message_queue based on letter_code
333
}
316
}
334
317
335
if ($purge_merged) {
318
if ($purge_merged) {
336
- 

Return to bug 21214