Lines 298-304
if ( defined $csvfilename ) {
Link Here
|
298 |
} |
298 |
} |
299 |
|
299 |
|
300 |
foreach my $branchcode (@branches) { |
300 |
foreach my $branchcode (@branches) { |
301 |
|
|
|
302 |
my $branch_details = C4::Branch::GetBranchDetail($branchcode); |
301 |
my $branch_details = C4::Branch::GetBranchDetail($branchcode); |
303 |
my $admin_email_address = $branch_details->{'branchemail'} || C4::Context->preference('KohaAdminEmailAddress'); |
302 |
my $admin_email_address = $branch_details->{'branchemail'} || C4::Context->preference('KohaAdminEmailAddress'); |
304 |
my @output_chunks; # may be sent to mail or stdout or csv file. |
303 |
my @output_chunks; # may be sent to mail or stdout or csv file. |
Lines 307-325
foreach my $branchcode (@branches) {
Link Here
|
307 |
|
306 |
|
308 |
my $sth2 = $dbh->prepare( <<'END_SQL' ); |
307 |
my $sth2 = $dbh->prepare( <<'END_SQL' ); |
309 |
SELECT biblio.*, items.*, issues.*, TO_DAYS(NOW())-TO_DAYS(date_due) AS days_overdue |
308 |
SELECT biblio.*, items.*, issues.*, TO_DAYS(NOW())-TO_DAYS(date_due) AS days_overdue |
310 |
FROM issues,items,biblio |
309 |
FROM issues |
311 |
WHERE items.itemnumber=issues.itemnumber |
310 |
LEFT JOIN items USING(itemnumber) |
312 |
AND biblio.biblionumber = items.biblionumber |
311 |
LEFT JOIN biblio USING(biblionumber) |
313 |
AND issues.borrowernumber = ? |
312 |
WHERE issues.borrowernumber = ? |
314 |
AND TO_DAYS(NOW())-TO_DAYS(date_due) BETWEEN ? and ? |
313 |
AND TO_DAYS(NOW())-TO_DAYS(date_due) BETWEEN ? and ? |
315 |
END_SQL |
314 |
END_SQL |
316 |
|
315 |
|
317 |
my $rqoverduerules = $dbh->prepare("SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = ? "); |
316 |
my $rqoverduerules = $dbh->prepare("SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = ? "); |
318 |
$rqoverduerules->execute($branchcode); |
317 |
$rqoverduerules->execute($branchcode); |
|
|
318 |
|
319 |
# We get default rules is there is no rule for this branch |
320 |
if($rqoverduerules->rows == 0){ |
321 |
$rqoverduerules = $dbh->prepare("SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = '' "); |
322 |
$rqoverduerules->execute(); |
323 |
} |
324 |
|
319 |
# my $outfile = 'overdues_' . ( $mybranch || $branchcode || 'default' ); |
325 |
# my $outfile = 'overdues_' . ( $mybranch || $branchcode || 'default' ); |
320 |
while ( my $overdue_rules = $rqoverduerules->fetchrow_hashref ) { |
326 |
while ( my $overdue_rules = $rqoverduerules->fetchrow_hashref ) { |
321 |
PERIOD: foreach my $i ( 1 .. 3 ) { |
327 |
PERIOD: foreach my $i ( 1 .. 3 ) { |
322 |
|
|
|
323 |
$verbose and warn "branch '$branchcode', pass $i\n"; |
328 |
$verbose and warn "branch '$branchcode', pass $i\n"; |
324 |
my $mindays = $overdue_rules->{"delay$i"}; # the notice will be sent after mindays days (grace period) |
329 |
my $mindays = $overdue_rules->{"delay$i"}; # the notice will be sent after mindays days (grace period) |
325 |
my $maxdays = ( |
330 |
my $maxdays = ( |
Lines 341-349
END_SQL
Link Here
|
341 |
|
346 |
|
342 |
my $borrower_sql = <<'END_SQL'; |
347 |
my $borrower_sql = <<'END_SQL'; |
343 |
SELECT COUNT(*), issues.borrowernumber, firstname, surname, address, address2, city, zipcode, email, MIN(date_due) as longest_issue |
348 |
SELECT COUNT(*), issues.borrowernumber, firstname, surname, address, address2, city, zipcode, email, MIN(date_due) as longest_issue |
344 |
FROM issues,borrowers,categories |
349 |
FROM issues |
345 |
WHERE issues.borrowernumber=borrowers.borrowernumber |
350 |
LEFT JOIN borrowers USING (borrowernumber) |
346 |
AND borrowers.categorycode=categories.categorycode |
351 |
LEFT JOIN categories ON (borrowers.categorycode=categories.categorycode) |
|
|
352 |
WHERE 1 |
347 |
END_SQL |
353 |
END_SQL |
348 |
my @borrower_parameters; |
354 |
my @borrower_parameters; |
349 |
if ($branchcode) { |
355 |
if ($branchcode) { |
350 |
- |
|
|