Hi Small bug:
# Get destination address (private email else professional) if ($email) { my $to = $email; <<---------- REMOVE THE my } elsif ($emailpro) { my $to = $emailpro; <<---------- REMOVE THE my } else { next; } Regards, |----------------------------------------------------------------------------------------| Stay safe / Cuídate/ Reste sécurisé *7* Switch off as you go / Apaga lo que no usas / Débranchez au fur et à mesure. *q *Recycle always / Recicla siempre / Recyclez toujours P Print only if absolutely necessary / Imprime solo si es necesario / Imprimez seulement si nécessaire Le jeu. 5 nov. 2020 à 22:21, <pand...@imsc.res.in> a écrit : > Dear Alvaro, > > Thanks very much. I will check and get back should i need any > clarifications and help. > > Regards, > > Pandian > Quoting Alvaro Cornejo <cornejo.alv...@gmail.com>: > > > Hi > > > > Here is the report to setup as *public*: > > > > SELECT > > borrowers.surname, borrowers.firstname, borrowers.email, > > borrowers.emailpro, borrowers.sex, borrowers.lang > > FROM borrowers > > WHERE DATE_FORMAT(borrowers.dateofbirth, '%m-%d') = > DATE_FORMAT(CURDATE(), > > '%m-%d') > > LIMIT 50 > > > > You can add other fields to the report so you can do additional > > verifications/vaidations like the patron is active, has had activity in > > the last x months/years, etc. Be careful with the order of the fields > since > > this will have an impact on the script. We set LIMIT to 50 just to avoid > > the public report "hard record limit" of 10 records per query. You can > set > > it to anything you think is reasonable. > > > > The script is what is between ============ lines: > > > > The script uses sendmail to send plain text emails. You can modify it to > > use any of the perl email libraries and use html format instead. > > > > koha_birthdays.pl > > ================= > > #!/usr/bin/perl > > # Library includes > > use strict; > > use warnings; > > use LWP::UserAgent; > > use HTTP::Request; > > use JSON; > > > > print "\nEjecutando koha_birthday\n"; > > > > #My Global Variables > > my $hello = ""; > > my $subject = ""; > > my $body = ""; > > my $message = ""; > > my $to = ""; > > my $from = ""; > > my $result = ""; > > my $i = 0; > > > > # Capture report data: > > # Fields from report: surname firstname email emailpro sex lang > > # Prepare connection, call url and insert data (json format) to arrary > > my $ua = new LWP::UserAgent; > > $ua->agent("Perl API Client/1.0"); > > my $url = "https://YOURSITE/cgi-bin/koha/svc/report?id=XX"; # REPLACE > > YOUR SITE WITH YOUR OPAC BASE URL and XX WITH THE NUMBER OF THE REPORT > YOU > > CREATE ABOVE > > my $request = HTTP::Request->new("GET" => $url); > > my $response = $ua->request($request); > > my $json_obj = JSON->new->utf8->decode($response->content); > > my $row_num = scalar(@{$json_obj}); > > > > #Scroll/split each registry and send the email > > foreach my $row (@{$json_obj}) { > > if ($i < $row_num) { > > my $surname = @{$row}[0]; > > my $firstname = @{$row}[1]; > > my $email = @{$row}[2]; > > my $emailpro = @{$row}[3]; > > my $sex = @{$row}[4]; > > my $lang = @{$row}[5]; > > > > # Get destination address (private email else professional) > > if ($email) { > > my $to = $email; > > } elsif ($emailpro) { > > my $to = $emailpro; > > } else { > > next; > > } > > > > # Assemble the patron salutation string for each language. Our > > default is es-ES > > if ($lang eq "default" || $lang eq "es-ES") { > > if ($sex eq "M") { > > $hello = "Estimado Sr. $surname,\n" > > } elsif ($sex eq "F") { > > $hello = "Estimada Sra. $surname,\n" > > } else { > > $hello = "Estimado(a) $firstname $surname,\n" > > } > > } elsif ($lang eq "en") { > > if ($sex eq "M") { > > $hello = "Dear Mr. $surname,\n" > > } elsif ($sex eq "F") { > > $hello = "Dear Mrs. $surname,\n" > > } else { > > $hello = "Dear $firstname $surname,\n" > > } > > } > > > > # Define email subject & body > > if ($lang eq "default" || $lang eq "es-ES") { > > $subject = "Feliz cumpleaños le desea el CELACP!"; > > $body = "\n"; > > $body .= "El CELACP se complace en hacerle llegar sus mejores > > deseos en esta fecha tan importante para Ud.\n\n"; > > $body .= "Sinceramente esperamos tenga un muy feliz día y > > esperamos contar con su presencia en nuestro local\n"; > > $body .= "o a través de nuestra plataforma virtual en > > https://biblioteca.celacp.org\n\n"; > > $body .= "Atentamente,\n\n"; > > $body .= "Centro de Estudios Latinoaméricanos Antonio Cornejo > > Polar - CELACP -\n"; > > } elsif ($lang eq "en") { > > $subject = "Happy birthday from the CELACP!"; > > $body = "\n"; > > $body .= "The CELACP is pleased to send you its best wishes > on > > this important date for you.\n\n"; > > $body .= "We sincerely hope you have a very happy day and we > > look forward to seeing you at our library\n"; > > $body .= "or through our virtual platform at > > https://biblioteca.celacp.org\n\n"; > > $body .= "Sincerely,\n\n"; > > $body .= "Center for Latinamerican Estudies Antonio Cornejo > > Polar - CELACP -\n"; > > } > > > > # Final message assembly > > #$to = 'du...@gmail.com'; #Dummy address for testing purposes. > If > > uncommented, overrides the destination address and all emails will be > sent > > to this address. > > $from = 'source_ema...@mydomain.com'; > > $message = $hello; > > $message .= $body; > > > > # Create mail "session" > > open(MAIL, "|/usr/sbin/sendmail -t"); > > > > # Email Header > > print MAIL "To: $to\n"; > > print MAIL "From: $from\n"; > > print MAIL "Subject: $subject\n\n"; > > > > # Email Body > > print MAIL $message; > > > > # Send email & confirm > > $result = close(MAIL); > > if($result) { print "Se envió mensaje a $to\n";} else { print > > "Falló el envío del mensaje a $to!\n";} > > > > $i++; > > } # END IF > > } # END FOREACH > > > > print "Se enviaron $i mensajes de cumpleaños\n"; > > 1; > > ========================= > > > > To run from the command line: > > > > # perl /PATHTOSCRIPT/koha_birthdays.pl > > > > To run on a cron job > > > > add > > > > /usr/bin/perl /PATHTOSCRIPT/koha_birthdays.pl to, for > > example /etc/cron.daily/koha-common or if you are to use crontab you can > > add: > > > > 0 7 * * * USER /usr/bin/perl /PATHTOSCRIPT/koha_birthdays.pl > > > > This will run the script every day at 7:00 am and will use user USER > > privileges to run it. > > > > Hope this helps. > > > > Regards > > > > Alvaro > > > > > |----------------------------------------------------------------------------------------| > > Stay safe / Cuídate/ Reste sécurisé > > *7* Switch off as you go / Apaga lo que no usas / Débranchez au fur et à > > mesure. > > *q *Recycle always / Recicla siempre / Recyclez toujours > > P Print only if absolutely necessary / Imprime solo si es necesario / > > Imprimez seulement si nécessaire > > > > > > Le jeu. 5 nov. 2020 à 18:42, <pand...@imsc.res.in> a écrit : > > > >> Dear Alvaro, > >> > >> Thanks, yes can you please share the script codes so that we can use it. > >> > >> Regards > >> > >> Pandian > >> > >> Quoting Alvaro Cornejo <cornejo.alv...@gmail.com>: > >> > >> > Hi > >> > > >> > We have created a public report in koha that provides us the info we > need > >> > to send the emails and created a script that parses the output of that > >> > report and sends the email. We finally run this script with a cronjob. > >> > > >> > I can share the report and script if you think it will help you. > >> > > >> > Regards > >> > > >> > Alvaro > >> > > >> > |----------------------------------------------------------------------------------------| > >> > Stay safe / Cuídate/ Reste sécurisé > >> > *7* Switch off as you go / Apaga lo que no usas / Débranchez au fur > et à > >> > mesure. > >> > *q *Recycle always / Recicla siempre / Recyclez toujours > >> > P Print only if absolutely necessary / Imprime solo si es necesario / > >> > Imprimez seulement si nécessaire > >> > > >> > > >> > Le mer. 4 nov. 2020 à 12:56, Owen Leonard <oleon...@myacpl.org> a > écrit > >> : > >> > > >> >> > So how can we make this possible to send birthday wishes from Koha? > >> >> > >> >> Currently it is not possible. There is an open bug for this, but so > >> >> far no one has taken it on: > >> >> > >> >> https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22086 > >> >> > >> >> Owen > >> >> > >> >> -- > >> >> Web Developer > >> >> Athens County Public Libraries > >> >> (740) 737-6006 > >> >> https://www.myacpl.org > >> >> _______________________________________________ > >> >> > >> >> Koha mailing list http://koha-community.org > >> >> Koha@lists.katipo.co.nz > >> >> Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha > >> >> > >> > _______________________________________________ > >> > > >> > Koha mailing list http://koha-community.org > >> > Koha@lists.katipo.co.nz > >> > Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha > >> > >> > >> > > > _______________________________________________ Koha mailing list http://koha-community.org Koha@lists.katipo.co.nz Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha