From 00894ac49544625b83fab7cb242bc3160429b938 Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Tue, 6 Dec 2011 19:13:55 +0100 Subject: [PATCH] Bug 2346 follow-up (UpdateBorrowerDebarred subroutine removed) notifyMailsOp.pl is deprecated : is was written by and for Ouest Provence (thus the OP) and is not used anymore. it's probably not working anymore. Removing the script --- misc/cronjobs/notifyMailsOp.pl | 219 --------------------------------- 1 file changed, 219 deletions(-) delete mode 100755 misc/cronjobs/notifyMailsOp.pl diff --git a/misc/cronjobs/notifyMailsOp.pl b/misc/cronjobs/notifyMailsOp.pl deleted file mode 100755 index 7c655c940a..0000000000 --- a/misc/cronjobs/notifyMailsOp.pl +++ /dev/null @@ -1,219 +0,0 @@ -#!/usr/bin/perl -use strict; -#use warnings; FIXME - Bug 2505 -use Carp; -BEGIN { - # find Koha's Perl modules - # test carefully before changing this - use FindBin; - eval { require "$FindBin::Bin/../kohalib.pl" }; -} -use C4::Context; -use C4::Dates qw/format_date/; -use Mail::Sendmail; # comment out if not doing e-mail notices -use Getopt::Long; -use C4::Circulation; -# use C4::Members; -# this module will notify only the mail case -# Now it's only programmed for ouest provence, you can modify it for yourself -# sub function for get all notifications are not sends -sub GetNotifys { -# my($branch) = @_; - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("SELECT DISTINCT notifys.borrowernumber , borrowers.surname , borrowers.firstname , borrowers.title AS borrower_title , categories.category_type AS categorycode , borrowers.email , borrowers.contacttitle , borrowers.contactname , borrowers.contactfirstname , - notifys.notify_level , notifys.method - FROM notifys,borrowers,categories WHERE (notifys.borrowernumber=borrowers.borrowernumber) AND (notifys.notify_send_date IS NULL) AND (borrowers.categorycode = categories.categorycode)"); - - $sth->execute(); - my @getnotifys; - my $i=0; - while (my $data=$sth->fetchrow_hashref){ - $getnotifys[$i]=$data; - $i++; - } - $sth->finish; - return(@getnotifys); - -} - -sub GetBorrowerNotifys{ - my ($borrowernumber) = @_; - my $dbh = C4::Context->dbh; - my @getnotifys2; - my $sth2=$dbh->prepare("SELECT notifys.itemnumber,notifys.notify_level,biblio.title ,itemtypes.description, - issues.date_due - FROM notifys,biblio,items,itemtypes,biblioitems,issues - WHERE - (items.itemnumber=notifys.itemnumber - AND biblio.biblionumber=items.biblionumber) - AND (itemtypes.itemtype=biblioitems.itemtype AND biblioitems.biblionumber=biblio.biblionumber) - AND - (notifys.borrowernumber=issues.borrowernumber AND notifys.itemnumber=issues.itemnumber) - AND - notifys.borrowernumber=? - AND notify_send_date IS NULL"); - $sth2->execute($borrowernumber); - my $j=0; - while (my $data2=$sth2->fetchrow_hashref){ - $getnotifys2[$j]=$data2; - $j++; - } - $sth2->finish; - return(@getnotifys2); - -} - -sub GetOverduerules{ - my($category,$notify_level) = @_; - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("SELECT letter".$notify_level.",debarred".$notify_level." FROM overduerules WHERE categorycode=?"); - $sth->execute($category); - my (@overduerules)=$sth->fetchrow_array; - $sth->finish; - return(@overduerules); - -} - -sub GetLetter{ - - my($letterid) = @_; - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("SELECT title,content FROM letter WHERE code=?"); - $sth->execute($letterid); - my (@getletter)=$sth->fetchrow_array; - $sth->finish; - return(@getletter); - -} - -sub UpdateBorrowerDebarred{ - my($borrowernumber) = @_; - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("UPDATE borrowers SET debarred='1' WHERE borrowernumber=?"); - $sth->execute($borrowernumber); - $sth->finish; - return 1; -} - -sub UpdateNotifySendDate{ - my($borrowernumber,$itemnumber,$notifyLevel) = @_; - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("UPDATE notifys SET notify_send_date=now() - WHERE borrowernumber=? AND itemnumber=? AND notify_send_date IS NULL AND notify_level=?"); - $sth->execute($borrowernumber,$itemnumber,$notifyLevel); - $sth->finish; - return 1; - -} - -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - -# work with get notifys -my $smtpserver = 'smtp.yoursmtpserver'; # your smtp server (the server who sent mails) -my $from = 'your@librarymailadress'; # all the mails sent to the borrowers will appear coming from here. - - -# initiate file for wrong_mails -my $outfile = 'wrong_mails.txt'; -open( OUT, ">$outfile" ); -binmode(OUT, 'utf8'); - -my @getnofifys = GetNotifys(); -foreach my $num (@getnofifys) { - my %notify; -# if we have a method mail, we check witch mail letter we launch - if ($num->{'method'} eq 'mail'){ - my ($letterid,$debarred) = GetOverduerules($num->{'categorycode'},$num->{'notify_level'}); -# now, we get the letter associated to letterid - my($title,$content) = GetLetter($letterid); - my $email = $num->{'email'}; - #my $email = 'alaurin@ouestprovence.fr'; - my $mailtitle = $title; # the title of the mails -# Work with the adult category code - if ($num->{'categorycode'} eq 'A') { - # now deal with $content - $content =~ s/\<\>/$num->{'borrower_title'}/g ; - $content =~ s/\<\>/$num->{'surname'}/g ; - $content =~ s/\<\>/$num->{'firstname'}/g ; - - my @getborrowernotify=GetBorrowerNotifys($num->{'borrowernumber'}); - my $overdueitems; - foreach my $notif(@getborrowernotify){ - my $date=format_date($notif->{'date_due'}); - if ($notif->{'notify_level'} eq $num->{'notify_level'}){ - $overdueitems .= " - ".$notif->{'title'}."" ; - $overdueitems .= " ( ".$notif->{'description'}." ) " ; - $overdueitems .= "emprunté le :".$date; - $overdueitems .= "
"; - -# FIXME at this time, the program consider the mail is send (in notify_send_date) but with no real check must be improved , we don't know if the mail was really to a real adress, and if there is a problem, we don't know how to return the notification to koha... - UpdateNotifySendDate($num->{'borrowernumber'},$notif->{'itemnumber'},$num->{'notify_level'}); -} - } - # if we don't have overdueitem replace content by nonotifys value, deal with it later - if ($overdueitems){ - $content =~ s/\<\>/$overdueitems/g; - } - else { - $content = 'nonotifys'; - } - } -# Work with the child category code (we add the parents infos) - if ($num->{'categorycode'} eq 'C') { - $content =~ s/\<\>/$num->{'contacttitle'}/g ; - $content =~ s/\<\>/$num->{'contactname'}/g ; - $content =~ s/\<\>/$num->{'contactfirstname'}/g ; - $content =~ s/\<\>/$num->{'borrower_title'}/g ; - $content =~ s/\<\>/$num->{'surname'}/g ; - $content =~ s/\<\>/$num->{'firstname'}/g ; - - my @getborrowernotify=GetBorrowerNotifys($num->{'borrowernumber'}); - my $overdueitems; - foreach my $notif(@getborrowernotify){ - my $date=format_date($notif->{'date_due'}); - - $overdueitems .= " - ".$notif->{'title'}."" ; - $overdueitems .= " ( ".$notif->{'description'}." ) " ; - $overdueitems .= "emprunté le :".$date; - $overdueitems .= "
"; -# FIXME at this time, the program consider the mail is send (in notify_send_date) but with no real check must be improved ... - UpdateNotifySendDate($num->{'borrowernumber'},$notif->{'itemnumber'},$num->{'notify_level'}); - } - - if ($overdueitems){ - $content =~ s/\<\>/$overdueitems/g; - } - else { - $content = 'nonotifys'; - } - } -# initiate the send mail - -# decoding mailtitle for lisibility of mailtitle (bug with utf-8 values, so decoding it) - utf8::decode($mailtitle); - - my $mailtext = $content; - unshift @{$Mail::Sendmail::mailcfg{'smtp'}} , $smtpserver; -# set your own mail server name here - my %mail = ( To => $email, - From => $from, - Subject => $mailtitle, - Message => $mailtext, - 'content-type' => 'text/html; charset="utf-8"', - ); - # if we don't have any content for the mail, we don't launch mail, but notify it in a file - if ($mailtext ne 'nonotifys') { - sendmail(%mail) or carp $Mail::Sendmail::error; - } - else { - print OUT $email ; - } - -# now deal with the debarred mode -# if ($debarred eq 1) { -# �ajouter : si le lecteur est en mode debarred, ajouter la fonction qui nous permettra cela -# UpdateBorrowerDebarred($num->{'borrowernumber'}); -# } - close(OUT); - } -} -- 2.39.5