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 |
- |
|
|