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

(-)a/misc/cronjobs/longoverdue.pl (-4 / +41 lines)
Lines 38-43 use Koha::ItemTypes; Link Here
38
use Koha::Patron::Categories;
38
use Koha::Patron::Categories;
39
use Koha::Patrons;
39
use Koha::Patrons;
40
use Koha::Script -cron;
40
use Koha::Script -cron;
41
use Koha::DateUtils qw( dt_from_string );
41
42
42
my $lost;    #  key=lost value,  value=num days.
43
my $lost;    #  key=lost value,  value=num days.
43
my ( $charge, $verbose, $confirm, $quiet );
44
my ( $charge, $verbose, $confirm, $quiet );
Lines 350-357 sub longoverdue_sth { Link Here
350
    SELECT items.itemnumber, borrowernumber, date_due, itemlost
351
    SELECT items.itemnumber, borrowernumber, date_due, itemlost
351
      FROM issues, items
352
      FROM issues, items
352
     WHERE items.itemnumber = issues.itemnumber
353
     WHERE items.itemnumber = issues.itemnumber
353
      AND  DATE_SUB(CURDATE(), INTERVAL ? DAY)  > date_due
354
    ";
354
      AND  DATE_SUB(CURDATE(), INTERVAL ? DAY) <= date_due
355
    if ( !C4::Context->preference('OverdueNoticeCalendar') ) {
356
        $query .= "
357
          AND  DATE_SUB(CURDATE(), INTERVAL ? DAY)  > date_due
358
          AND  DATE_SUB(CURDATE(), INTERVAL ? DAY) <= date_due
359
        ";
360
    } else {
361
        $query .= "
362
          AND  TO_DAYS(NOW())-TO_DAYS(issues.date_due) >= 0
363
        ";
364
    }
365
    $query .= "
355
      AND  itemlost <> ?
366
      AND  itemlost <> ?
356
      $skip_lost_values_sql
367
      $skip_lost_values_sql
357
     ORDER BY date_due
368
     ORDER BY date_due
Lines 471-477 foreach my $startrange ( sort keys %$lost ) { Link Here
471
        $verbose
482
        $verbose
472
            and printf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n", ++$i,
483
            and printf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n", ++$i,
473
            $startrange, $endrange, $date2, $date1, $lostvalue;
484
            $startrange, $endrange, $date2, $date1, $lostvalue;
474
        $sth_items->execute( $startrange, $endrange, $lostvalue );
485
        if ( C4::Context->preference('OverdueNoticeCalendar') ) {
486
            $sth_items->execute($lostvalue);
487
        } else {
488
            $sth_items->execute( $startrange, $endrange, $lostvalue );
489
        }
475
        $count = 0;
490
        $count = 0;
476
    ITEM: while ( my $row = $sth_items->fetchrow_hashref ) {
491
    ITEM: while ( my $row = $sth_items->fetchrow_hashref ) {
477
            my $patron;
492
            my $patron;
Lines 498-503 foreach my $startrange ( sort keys %$lost ) { Link Here
498
                }
513
                }
499
                next ITEM unless ( $branches_to_process{$lib} );
514
                next ITEM unless ( $branches_to_process{$lib} );
500
            }
515
            }
516
            if ( C4::Context->preference('OverdueNoticeCalendar') ) {
517
                my $lib;
518
                if ( $circ_control_pref eq 'PatronLibrary' ) {
519
                    $patron ||= Koha::Patrons->find( $row->{borrowernumber} );
520
                    $lib = $patron->branchcode();
521
                } elsif ( $circ_control_pref eq 'PickupLibrary' ) {
522
                    $lib = C4::Context->userenv->{'branch'};
523
                } else {    # ( $_ eq 'ItemHomeLibrary' )
524
                    if ( $circ_control_pref eq 'homebranch' ) {
525
                        $lib = Koha::Items->find( $row->{itemnumber} )->homebranch();
526
                    } else {    # ( $circ_control_pref eq 'holdingbranch' )
527
                        $lib = Koha::Items->find( $row->{itemnumber} )->holdingbranch();
528
                    }
529
                }
530
                my $calendar     = Koha::Calendar->new( branchcode => $lib );
531
                my $date_to_run  = dt_from_string();
532
                my $days_between = $calendar->days_between( dt_from_string( $row->{date_due} ), $date_to_run );
533
                $days_between = $days_between->in_units('days');
534
                my $longoverdue_days = C4::Context->preference('DefaultLongOverdueDays');
535
                if ( $days_between < $longoverdue_days ) {
536
                    next;
537
                }
538
            }
501
            if ($filter_itemtypes) {
539
            if ($filter_itemtypes) {
502
                my $it = uc Koha::Items->find( $row->{itemnumber} )->effective_itemtype();
540
                my $it = uc Koha::Items->find( $row->{itemnumber} )->effective_itemtype();
503
                next ITEM unless ( $itemtype_to_process{$it} );
541
                next ITEM unless ( $itemtype_to_process{$it} );
504
- 

Return to bug 39631