|
Lines 501-507
foreach my $branchcode (@branches) {
Link Here
|
| 501 |
$verbose and print "======================================\n"; |
501 |
$verbose and print "======================================\n"; |
| 502 |
$verbose and warn sprintf "branchcode : '%s' using %s\n", $branchcode, $branch_email_address; |
502 |
$verbose and warn sprintf "branchcode : '%s' using %s\n", $branchcode, $branch_email_address; |
| 503 |
|
503 |
|
| 504 |
my $sql2 = <<"END_SQL"; |
504 |
my $item_sql = <<"END_SQL"; |
| 505 |
SELECT biblio.*, items.*, issues.*, biblioitems.itemtype, branchname |
505 |
SELECT biblio.*, items.*, issues.*, biblioitems.itemtype, branchname |
| 506 |
FROM issues,items,biblio, biblioitems, branches b |
506 |
FROM issues,items,biblio, biblioitems, branches b |
| 507 |
WHERE items.itemnumber=issues.itemnumber |
507 |
WHERE items.itemnumber=issues.itemnumber |
|
Lines 514-524
SELECT biblio.*, items.*, issues.*, biblioitems.itemtype, branchname
Link Here
|
| 514 |
END_SQL |
514 |
END_SQL |
| 515 |
|
515 |
|
| 516 |
if ($owning_library) { |
516 |
if ($owning_library) { |
| 517 |
$sql2 .= ' AND items.homebranch = ? ' unless ($patron_homelibrary); |
517 |
$item_sql .= ' AND items.homebranch = ? ' unless ($patron_homelibrary); |
| 518 |
} else { |
518 |
} else { |
| 519 |
$sql2 .= ' AND issues.branchcode = ? ' unless ($patron_homelibrary); |
519 |
$item_sql .= ' AND issues.branchcode = ? ' unless ($patron_homelibrary); |
| 520 |
} |
520 |
} |
| 521 |
my $sth2 = $dbh->prepare($sql2); |
521 |
my $item_statement = $dbh->prepare($item_sql); |
| 522 |
|
522 |
|
| 523 |
my $query = "SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = ? "; |
523 |
my $query = "SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = ? "; |
| 524 |
$query .= " AND categorycode IN (" . join( ',', ('?') x @myborcat ) . ") " if (@myborcat); |
524 |
$query .= " AND categorycode IN (" . join( ',', ('?') x @myborcat ) . ") " if (@myborcat); |
|
Lines 589-597
END_SQL
Link Here
|
| 589 |
} |
589 |
} |
| 590 |
$borrower_sql .= ' AND categories.overduenoticerequired=1 ORDER BY issues.borrowernumber'; |
590 |
$borrower_sql .= ' AND categories.overduenoticerequired=1 ORDER BY issues.borrowernumber'; |
| 591 |
|
591 |
|
| 592 |
# $sth gets borrower info iff at least one overdue item has triggered the overdue action. |
592 |
# $borrower_statement gets borrower info if at least one overdue item has triggered the overdue action. |
| 593 |
my $sth = $dbh->prepare($borrower_sql); |
593 |
my $borrower_statement = $dbh->prepare($borrower_sql); |
| 594 |
$sth->execute(@borrower_parameters); |
594 |
$borrower_statement->execute(@borrower_parameters); |
| 595 |
|
595 |
|
| 596 |
if ( $verbose > 1 ) { |
596 |
if ( $verbose > 1 ) { |
| 597 |
warn sprintf "--------Borrower SQL------\n"; |
597 |
warn sprintf "--------Borrower SQL------\n"; |
|
Lines 602-610
END_SQL
Link Here
|
| 602 |
. $date_to_run->datetime() . ")\n"; |
602 |
. $date_to_run->datetime() . ")\n"; |
| 603 |
warn sprintf "--------------------------\n"; |
603 |
warn sprintf "--------------------------\n"; |
| 604 |
} |
604 |
} |
| 605 |
$verbose and warn sprintf "Found %s borrowers with overdues\n", $sth->rows; |
605 |
$verbose and warn sprintf "Found %s borrowers with overdues\n", $borrower_statement->rows; |
| 606 |
my $borrowernumber; |
606 |
my $borrowernumber; |
| 607 |
while ( my $data = $sth->fetchrow_hashref ) { |
607 |
while ( my $data = $borrower_statement->fetchrow_hashref ) { |
| 608 |
|
608 |
|
| 609 |
# check the borrower has at least one item that matches |
609 |
# check the borrower has at least one item that matches |
| 610 |
my $days_between; |
610 |
my $days_between; |
|
Lines 697-710
END_SQL
Link Here
|
| 697 |
} |
697 |
} |
| 698 |
my @params = $patron_homelibrary ? ($borrowernumber) : ( $borrowernumber, $branchcode ); |
698 |
my @params = $patron_homelibrary ? ($borrowernumber) : ( $borrowernumber, $branchcode ); |
| 699 |
|
699 |
|
| 700 |
$sth2->execute(@params); |
700 |
$item_statement->execute(@params); |
| 701 |
my $itemcount = 0; |
701 |
my $itemcount = 0; |
| 702 |
my $titles = ""; |
702 |
my $titles = ""; |
| 703 |
my @items = (); |
703 |
my @items = (); |
| 704 |
|
704 |
|
| 705 |
my $j = 0; |
705 |
my $j = 0; |
| 706 |
my $exceededPrintNoticesMaxLines = 0; |
706 |
my $exceededPrintNoticesMaxLines = 0; |
| 707 |
while ( my $item_info = $sth2->fetchrow_hashref() ) { |
707 |
while ( my $item_info = $item_statement->fetchrow_hashref() ) { |
| 708 |
if ( C4::Context->preference('OverdueNoticeCalendar') ) { |
708 |
if ( C4::Context->preference('OverdueNoticeCalendar') ) { |
| 709 |
$days_between = |
709 |
$days_between = |
| 710 |
$calendar->days_between( dt_from_string( $item_info->{date_due} ), $date_to_run ); |
710 |
$calendar->days_between( dt_from_string( $item_info->{date_due} ), $date_to_run ); |
|
Lines 745-751
END_SQL
Link Here
|
| 745 |
$itemcount++; |
745 |
$itemcount++; |
| 746 |
push @items, $item_info; |
746 |
push @items, $item_info; |
| 747 |
} |
747 |
} |
| 748 |
$sth2->finish; |
748 |
$item_statement->finish; |
| 749 |
|
749 |
|
| 750 |
my @message_transport_types = |
750 |
my @message_transport_types = |
| 751 |
@{ GetOverdueMessageTransportTypes( $notice_branchcode, $overdue_rules->{categorycode}, $i ) }; |
751 |
@{ GetOverdueMessageTransportTypes( $notice_branchcode, $overdue_rules->{categorycode}, $i ) }; |
|
Lines 887-893
END_SQL
Link Here
|
| 887 |
} |
887 |
} |
| 888 |
$already_queued{"$borrowernumber$i"} = 1; |
888 |
$already_queued{"$borrowernumber$i"} = 1; |
| 889 |
} |
889 |
} |
| 890 |
$sth->finish; |
890 |
$borrower_statement->finish; |
| 891 |
} |
891 |
} |
| 892 |
} |
892 |
} |
| 893 |
|
893 |
|
| 894 |
- |
|
|