View | Details | Raw Unified | Return to bug 17015
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 365-372 sub longoverdue_sth { Link Here
365
    SELECT items.itemnumber, borrowernumber, date_due, itemlost
366
    SELECT items.itemnumber, borrowernumber, date_due, itemlost
366
      FROM issues, items
367
      FROM issues, items
367
     WHERE items.itemnumber = issues.itemnumber
368
     WHERE items.itemnumber = issues.itemnumber
368
      AND  DATE_SUB(CURDATE(), INTERVAL ? DAY)  > date_due
369
    ";
369
      AND  DATE_SUB(CURDATE(), INTERVAL ? DAY) <= date_due
370
    if ( !C4::Context->preference('OverdueNoticeCalendar') ) {
371
        $query .= "
372
          AND  DATE_SUB(CURDATE(), INTERVAL ? DAY)  > date_due
373
          AND  DATE_SUB(CURDATE(), INTERVAL ? DAY) <= date_due
374
        ";
375
    } else {
376
        $query .= "
377
          AND  TO_DAYS(NOW())-TO_DAYS(issues.date_due) >= 0
378
        ";
379
    }
380
    $query .= "
370
      AND  itemlost <> ?
381
      AND  itemlost <> ?
371
      $skip_lost_values_sql
382
      $skip_lost_values_sql
372
     ORDER BY date_due
383
     ORDER BY date_due
Lines 484-490 foreach my $startrange ( sort keys %$lost ) { Link Here
484
        $verbose
495
        $verbose
485
            and printf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n", ++$i,
496
            and printf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n", ++$i,
486
            $startrange, $endrange, $date2, $date1, $lostvalue;
497
            $startrange, $endrange, $date2, $date1, $lostvalue;
487
        $sth_items->execute( $startrange, $endrange, $lostvalue );
498
        if ( C4::Context->preference('OverdueNoticeCalendar') ) {
499
            $sth_items->execute($lostvalue);
500
        } else {
501
            $sth_items->execute( $startrange, $endrange, $lostvalue );
502
        }
488
        $count = 0;
503
        $count = 0;
489
    ITEM: while ( my $row = $sth_items->fetchrow_hashref ) {
504
    ITEM: while ( my $row = $sth_items->fetchrow_hashref ) {
490
            my $patron;
505
            my $patron;
Lines 511-516 foreach my $startrange ( sort keys %$lost ) { Link Here
511
                }
526
                }
512
                next ITEM unless ( $branches_to_process{$lib} );
527
                next ITEM unless ( $branches_to_process{$lib} );
513
            }
528
            }
529
            if ( C4::Context->preference('OverdueNoticeCalendar') ) {
530
                my $lib;
531
                if ( $circ_control_pref eq 'PatronLibrary' ) {
532
                    $patron ||= Koha::Patrons->find( $row->{borrowernumber} );
533
                    $lib = $patron->branchcode();
534
                } elsif ( $circ_control_pref eq 'PickupLibrary' ) {
535
                    $lib = C4::Context->userenv->{'branch'};
536
                } else {    # ( $circ_control_pref eq 'ItemHomeLibrary' )
537
                    if ( $circ_control_pref eq 'homebranch' ) {
538
                        $lib = Koha::Items->find( $row->{itemnumber} )->homebranch();
539
                    } else {    # ( $circ_control_pref eq 'holdingbranch' )
540
                        $lib = Koha::Items->find( $row->{itemnumber} )->holdingbranch();
541
                    }
542
                }
543
                my $calendar     = Koha::DiscreteCalendar->new({ branchcode => $lib });
544
                my $date_to_run  = dt_from_string();
545
                my $days_between = $calendar->days_between( dt_from_string( $row->{date_due} ), $date_to_run );
546
                $days_between = $days_between->in_units('days');
547
                my $longoverdue_days = C4::Context->preference('DefaultLongOverdueDays');
548
                if ( $days_between < $longoverdue_days ) {
549
                    next;
550
                }
551
            }
514
            if ($filter_itemtypes) {
552
            if ($filter_itemtypes) {
515
                my $it = uc Koha::Items->find( $row->{itemnumber} )->effective_itemtype();
553
                my $it = uc Koha::Items->find( $row->{itemnumber} )->effective_itemtype();
516
                next ITEM unless ( $itemtype_to_process{$it} );
554
                next ITEM unless ( $itemtype_to_process{$it} );
517
- 

Return to bug 17015