[Koha-patches] [PATCH] [3.0.x](bug #3242) send email when hold is placed

Nahuel ANGELINETTI nahuel.angelinetti at biblibre.com
Fri Aug 28 15:54:32 CEST 2009


This patch applies on head too.

Le Fri, 28 Aug 2009 15:21:36 +0200,
Nahuel ANGELINETTI <nahuel.angelinetti at biblibre.com> a écrit :

> This add a new letter in database, and each time a new hold is
> placed, a new mail is enqueued. ---
>  C4/Reserves.pm                           |   29
> +++++++++++++++++++++++++++++
> installer/data/mysql/updatedatabase30.pl |    7 +++++++ 2 files
> changed, 36 insertions(+), 0 deletions(-)
> 
> diff --git a/C4/Reserves.pm b/C4/Reserves.pm
> index c0c51e9..0068b5b 100644
> --- a/C4/Reserves.pm
> +++ b/C4/Reserves.pm
> @@ -26,6 +26,7 @@ package C4::Reserves;
>  use strict;
>  use C4::Context;
>  use C4::Biblio;
> +use C4::Members;
>  use C4::Items;
>  use C4::Search;
>  use C4::Circulation;
> @@ -170,6 +171,33 @@ sub AddReserve {
>          $found,          $waitingdate
>      );
>  
> +    # Send e-mail to librarian if syspref is active
> +    if(C4::Context->preference("emailLibrarianWhenHoldIsPlaced")){
> +        my $borrower = GetMemberDetails($borrowernumber);
> +        my $biblio   = GetBiblioData($biblionumber);
> +        my $letter = C4::Letters::getletter( 'reserves',
> 'HOLDPLACED');
> +        my $admin_email_address =
> C4::Context->preference('KohaAdminEmailAddress'); +
> +        my %keys = (%$borrower, %$biblio);
> +        foreach my $key (keys %keys) {
> +            my $replacefield = "<<$key>>";
> +            $letter->{content} =~ s/$replacefield/$keys{$key}/g;
> +            $letter->{title} =~ s/$replacefield/$keys{$key}/g;
> +        }
> +        
> +        C4::Letters::EnqueueLetter(
> +                            {   letter                 => $letter,
> +                                borrowernumber         =>
> $borrowernumber,
> +                                message_transport_type => 'email',
> +                                from_address           =>
> $admin_email_address,
> +                                to_address           =>
> $admin_email_address,
> +                            }
> +                        );
> +        
> +
> +    }
> +
> +
>      #}
>      ($const eq "o" || $const eq "e") or return;   # FIXME: why not
> have a useful return value? $query = qq/
> @@ -182,6 +210,7 @@ sub AddReserve {
>      foreach (@$bibitems) {
>          $sth->execute($borrowernumber, $biblionumber, $resdate, $_);
>      }
> +        
>      return;     # FIXME: why not have a useful return value?
>  }
>  
> diff --git a/installer/data/mysql/updatedatabase30.pl
> b/installer/data/mysql/updatedatabase30.pl index 6330cbb..171dd92
> 100644 --- a/installer/data/mysql/updatedatabase30.pl
> +++ b/installer/data/mysql/updatedatabase30.pl
> @@ -338,6 +338,13 @@ if (C4::Context->preference("Version") <
> TransformToNum($DBversion)) { SetVersion ($DBversion);
>  }
>  
> +$DBversion = '3.00.03.001';
> +if (C4::Context->preference('Version') < TransformToNum($DBversion)){
> +    $dbh->do("
> +        INSERT INTO `letter` (module, code, name, title,
> content)         VALUES('reserves', 'HOLDPLACED', 'Hold Placed on
> Item', 'Hold Placed on Item','An hold has been placed on the
> following item : <<title>> (<<biblionumber>>) by the user
> <<firstname>> <<surname>> (<<cardnumber>>).');
> +    ");
> +}
> +
>  =item DropAllForeignKeys($table)
>  
>    Drop all foreign keys of the table $table


-- 
Nahuel ANGELINETTI




More information about the Koha-patches mailing list