[Koha-patches] [PATCH] Bug 2660: Prevent duplication of overdue notices.

Ryan Higgins ryan.higgins at liblime.com
Fri Oct 10 18:57:11 CEST 2008


Withdrawing this patch, and replacing with one that actually does what the
commit message advertises properly  :)


On Wed, Oct 8, 2008 at 12:49 PM, Ryan Higgins <rch at liblime.com> wrote:

> This limits generation of notices to days that an overdue item actually
> hits the overdue trigger.
> ---
>  misc/cronjobs/overdue_notices.pl |   11 ++++++++---
>  1 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/misc/cronjobs/overdue_notices.pl
> b/misc/cronjobs/overdue_notices.pl
> index 225a41f..97f6ae6 100755
> --- a/misc/cronjobs/overdue_notices.pl
> +++ b/misc/cronjobs/overdue_notices.pl
> @@ -285,7 +285,7 @@ foreach my $branchcode (@branches) {
>     $verbose and warn sprintf "branchcode : '%s' using %s\n", $branchcode,
> $admin_email_address;
>
>     my $sth2 = $dbh->prepare( <<'END_SQL' );
> -SELECT biblio.*, items.*, issues.*
> +SELECT biblio.*, items.*, issues.*, TO_DAYS(NOW())-TO_DAYS(date_due) AS
> days_overdue
>   FROM issues,items,biblio
>   WHERE items.itemnumber=issues.itemnumber
>     AND biblio.biblionumber   = items.biblionumber
> @@ -340,11 +340,12 @@ END_SQL
>             push @borrower_parameters, $mindays, $maxdays;
>             my $sth = $dbh->prepare($borrower_sql);
>             $sth->execute(@borrower_parameters);
> -            $verbose and warn $borrower_sql . "\n\n ($mindays,
> $maxdays)\nreturns " . $sth->rows . " rows";
> +            $verbose and warn $borrower_sql . "\n $branchcode | " .
> $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " .
> $sth->rows . " rows";
>
>             while ( my ( $itemcount, $borrowernumber, $firstname,
> $lastname, $address1, $address2, $city, $postcode, $email ) = $sth->fetchrow
> ) {
>                 warn "borrower $firstname, $lastname ($borrowernumber) has
> $itemcount items overdue." if $verbose;
>
> +                my $notify = 0;
>                 my $letter = C4::Letters::getletter( 'circulation',
> $overdue_rules->{"letter$i"} );
>                 unless ($letter) {
>                     $verbose and warn "Message '$overdue_rules->{letter$i}'
> content not found";
> @@ -365,6 +366,8 @@ END_SQL
>                 while ( my $item_info = $sth2->fetchrow_hashref() ) {
>                     my @item_info = map { $_ =~ /date$/ ? format_date(
> $item_info->{$_} ) : $item_info->{$_} || '' } @item_content_fields;
>                     $titles .= join("\t", @item_info) . "\n";
> +                    # only send the notice if at least one of the items
> hits the delay trigger.
> +                    $notify++ if( ($maxdays != $MAX) &&
> ($item_info->{'days_overdue'} == $mindays) );
>                 }
>                 $sth2->finish;
>
> @@ -386,7 +389,8 @@ END_SQL
>                 $letter->{'content'} =~ s/\<[^<>]*?\>//g;    # Now that
> we've warned about them, remove them.
>                 $letter->{'content'} =~ s/\<[^<>]*?\>//g;    # 2nd pass for
> the double nesting.
>
> -                if ($nomail) {
> +                if($notify) {
> +                  if ($nomail) {
>
>                     push @output_chunks,
>                       prepare_letter_for_printing(
> @@ -433,6 +437,7 @@ END_SQL
>                             }
>                           );
>                     }
> +                  }
>                 }
>
>             }
> --
> 1.5.5.GIT
>
>


-- 
Ryan Higgins

LibLime  *  Open-Source Solutions for Libraries
Featuring KohaZOOM ILS
888-564-2457  x704
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-patches/attachments/20081010/922f4c79/attachment-0001.htm>


More information about the Koha-patches mailing list