X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=misc%2Fcronjobs%2Fj2a.pl;h=ba90ad0ccd1969e6f04335901df92bfe4b0a209d;hb=a7978a9e97e98c5f2322b16b32289bb59bd1f26f;hp=87edaa4bb7a25ba4e727400eaba896d2f9836d9e;hpb=367c4fb8815bfe4a01869a25bcd8222989c15dcd;p=koha.git diff --git a/misc/cronjobs/j2a.pl b/misc/cronjobs/j2a.pl index 87edaa4bb7..ba90ad0ccd 100755 --- a/misc/cronjobs/j2a.pl +++ b/misc/cronjobs/j2a.pl @@ -4,21 +4,20 @@ # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; BEGIN { # find Koha's Perl modules @@ -27,11 +26,11 @@ BEGIN { eval { require "$FindBin::Bin/../kohalib.pl" }; } - use C4::Context; use C4::Members; use Getopt::Long; use Pod::Usage; +use C4::Log; =head1 NAME @@ -42,13 +41,14 @@ juv2adult.pl - convert juvenile/child patrons from juvenile patron category and juv2adult.pl [ -b= -f= -t= ] Options: - --help brief help message - --man full documentation - -v verbose mode - -n take no action, display only - -b only deal with patrons from this library/branch - -f change patron category from this category - -t change patron category to this category + --help brief help message + --man full documentation + -v verbose mode + -n take no action, display only + -b only deal with patrons from this library/branch + -f change patron category from this category + -t change patron category to this category + =head1 OPTIONS =over 8 @@ -100,138 +100,180 @@ C -f= -t= -v -n - Processes all branch # These variables are set by command line options. # They are initially set to default values. - -my $help = 0; -my $man = 0; -my $verbose = 0; +my $help = 0; +my $man = 0; +my $verbose = 0; my $noaction = 0; my $mybranch; my $fromcat; my $tocat; GetOptions( - 'help|?' => \$help, - 'man' => \$man, - 'v' => \$verbose, - 'n' => \$noaction, - 'f=s' => \$fromcat, - 't=s' => \$tocat, - 'b=s' => \$mybranch, + 'help|?' => \$help, + 'man' => \$man, + 'v' => \$verbose, + 'n' => \$noaction, + 'f=s' => \$fromcat, + 't=s' => \$tocat, + 'b=s' => \$mybranch, ) or pod2usage(2); pod2usage(1) if $help; pod2usage( -verbose => 2 ) if $man; -if(not $fromcat && $tocat) { #make sure we've specified the info we need. - print "please specify -help for usage tips.\n"; - exit; +if ( not $fromcat && $tocat ) { #make sure we've specified the info we need. + print "please specify -help for usage tips.\n"; + exit; } -my $dbh=C4::Context->dbh; -my @branches = C4::Branch::GetBranches(); +cronlogaction(); + +my $dbh = C4::Context->dbh; + #get today's date, format it and subtract upperagelimit -my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); -$year +=1900; -$mon +=1; if ($mon < 10) {$mon = "0".$mon;} -if ($mday < 10) {$mday = "0".$mday;} +my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = + localtime(time); +$year += 1900; +$mon += 1; +if ( $mon < 10 ) { $mon = "0" . $mon; } +if ( $mday < 10 ) { $mday = "0" . $mday; } + # get the upperagelimit from the category to be transitioned from -my $query=qq|SELECT upperagelimit from categories where categorycode =?|; -my $sth=$dbh->prepare( $query ); -$sth->execute( $fromcat ) - or die "Couldn't execute statement: " . $sth->errstr; +my $query = qq|SELECT upperagelimit from categories where categorycode =?|; +my $sth = $dbh->prepare($query); +$sth->execute($fromcat) + or die "Couldn't execute statement: " . $sth->errstr; my $agelimit = $sth->fetchrow_array(); if ( not $agelimit ) { - - die "No patron category $fromcat. Please try again. \n"; + die "No patron category $fromcat. Please try again. \n"; } -$query=qq|SELECT categorycode from categories where categorycode=?|; -$sth=$dbh->prepare( $query ); -$sth->execute( $tocat ) - or die "Couldn't execute statement: " . $sth->errstr; + +$query = qq|SELECT categorycode from categories where categorycode=?|; +$sth = $dbh->prepare($query); +$sth->execute($tocat) + or die "Couldn't execute statement: " . $sth->errstr; my $tocatage = $sth->fetchrow_array(); -if ( not $tocatage ){ - die "No patron category $tocat. Please try again. \n"; +if ( not $tocatage ) { + die "No patron category $tocat. Please try again. \n"; } -$sth->finish( ); -$year -=$agelimit; + +$year -= $agelimit; $verbose and print "The age limit for category $fromcat is $agelimit\n"; my $itsyourbirthday = "$year-$mon-$mday"; - -if ( not $noaction) { - if ( $mybranch ) { #yep, we received a specific branch to work on. - $verbose and print "Looking for patrons of $mybranch to update from $fromcat to $tocat that were born before $itsyourbirthday\n"; - my $query=qq|UPDATE borrowers - SET guarantorid ='0', - categorycode =? - WHERE dateofbirth<=? - AND dateofbirth!='0000-00-00' - AND branchcode=? - AND categorycode IN (select categorycode from categories where category_type='C' and categorycode=?)|; - my $sth=$dbh->prepare($query); - my $res = $sth->execute( $tocat, $itsyourbirthday, $mybranch, $fromcat ) or die "can't execute"; - if ($res eq '0E0') { print "No patrons updated\n"; - } else { print "Updated $res patrons\n"; } - } else { # branch was not supplied, processing all branches - $verbose and print "Looking in all branches for patrons to update from $fromcat to $tocat that were born before $itsyourbirthday\n"; - foreach my $branchcode (@branches) { - my $query=qq|UPDATE borrowers - SET guarantorid ='0', - categorycode =? - WHERE dateofbirth<=? - AND dateofbirth!='0000-00-00' - AND categorycode IN (select categorycode from categories where category_type='C' and categorycode=?)|; - my $sth=$dbh->prepare($query); - my $res = $sth->execute( $tocat, $itsyourbirthday, $fromcat ) or die "can't execute"; - if ($res eq '0E0') { print "No patrons updated\n"; - } else { print "Updated $res patrons\n"; } - } - } -} else { - my $birthday; - if ( $mybranch ) { - $verbose and print "Displaying patrons that would be updated from $fromcat to $tocat from $mybranch\n"; - my $query=qq|SELECT firstname, - surname, - cardnumber, - dateofbirth - FROM borrowers - WHERE dateofbirth<=? - AND dateofbirth!='0000-00-00' - AND branchcode=? - AND categorycode IN (select categorycode from categories where category_type='C' and categorycode=?)|; - my $sth=$dbh->prepare( $query ); - $sth->execute( $itsyourbirthday, $mybranch, $fromcat ) - or die "Couldn't execute statement: " . $sth->errstr; - while ( my @res = $sth->fetchrow_array()) { - my $firstname = $res[0]; - my $surname = $res[1]; - my $barcode = $res[2]; - $birthday = $res[3]; - print "$firstname $surname $barcode $birthday\n"; - } - } else { - $verbose and print "Displaying patrons that would be updated from $fromcat to $tocat.\n"; - my $query=qq|SELECT firstname, - surname, - cardnumber, - dateofbirth - FROM borrowers - WHERE dateofbirth<=? - AND dateofbirth!='0000-00-00' - AND categorycode IN (select categorycode from categories where category_type='C' and categorycode=?)|; - my $sth=$dbh->prepare( $query ); - $sth->execute( $itsyourbirthday, $fromcat ) - or die "Couldn't execute statement: " . $sth->errstr; - while ( my @res = $sth->fetchrow_array()) { - my $firstname = $res[0]; - my $surname = $res[1]; - my $barcode = $res[2]; - $birthday = $res[3]; - print "$firstname $surname $barcode $birthday\n"; - } - } - $sth->finish( ); +if ( not $noaction ) { + if ($mybranch) { #yep, we received a specific branch to work on. + $verbose and print "Looking for patrons of $mybranch to update from $fromcat to $tocat that were born before $itsyourbirthday\n"; + my $query = qq| + UPDATE borrowers + SET guarantorid ='0', + categorycode = ? + WHERE dateofbirth <= ? + AND dateofbirth != '0000-00-00' + AND branchcode = ? + AND categorycode IN ( + SELECT categorycode + FROM categories + WHERE category_type = 'C' + AND categorycode = ? + )|; + my $sth = $dbh->prepare($query); + my $res = $sth->execute( $tocat, $itsyourbirthday, $mybranch, $fromcat ) + or die "can't execute"; + + if ( $res eq '0E0' ) { + print "No patrons updated\n"; + } + else { + print "Updated $res patrons\n"; + } + } + else { # branch was not supplied, processing all branches + $verbose and print "Looking in all branches for patrons to update from $fromcat to $tocat that were born before $itsyourbirthday\n"; + my $query = qq| + UPDATE borrowers + SET guarantorid = '0', + categorycode = ? + WHERE dateofbirth <= ? + AND dateofbirth!='0000-00-00' + AND categorycode IN ( + SELECT categorycode + FROM categories + WHERE category_type = 'C' + AND categorycode = ? + )|; + my $sth = $dbh->prepare($query); + my $res = $sth->execute( $tocat, $itsyourbirthday, $fromcat ) + or die "can't execute"; + + if ( $res eq '0E0' ) { + print "No patrons updated\n"; + } + else { + print "Updated $res patrons\n"; + } + } +} +else { + my $birthday; + if ($mybranch) { + $verbose and print "Displaying patrons that would be updated from $fromcat to $tocat from $mybranch\n"; + my $query = qq| + SELECT firstname, + surname, + cardnumber, + dateofbirth + FROM borrowers + WHERE dateofbirth <= ? + AND dateofbirth != '0000-00-00' + AND branchcode = ? + AND categorycode IN ( + SELECT categorycode + FROM categories + WHERE category_type = 'C' + AND categorycode = ? + ) + |; + my $sth = $dbh->prepare($query); + $sth->execute( $itsyourbirthday, $mybranch, $fromcat ) + or die "Couldn't execute statement: " . $sth->errstr; + + while ( my @res = $sth->fetchrow_array() ) { + my $firstname = $res[0]; + my $surname = $res[1]; + my $barcode = $res[2]; + $birthday = $res[3]; + print "$firstname $surname $barcode $birthday\n"; + } + } + else { + $verbose and print "Displaying patrons that would be updated from $fromcat to $tocat.\n"; + my $query = qq| + SELECT firstname, + surname, + cardnumber, + dateofbirth + FROM borrowers + WHERE dateofbirth <= ? + AND dateofbirth != '0000-00-00' + AND categorycode IN ( + SELECT categorycode + FROM categories + WHERE category_type = 'C' + AND categorycode = ? + ) + |; + my $sth = $dbh->prepare($query); + $sth->execute( $itsyourbirthday, $fromcat ) + or die "Couldn't execute statement: " . $sth->errstr; + + while ( my @res = $sth->fetchrow_array() ) { + my $firstname = $res[0]; + my $surname = $res[1]; + my $barcode = $res[2]; + $birthday = $res[3]; + print "$firstname $surname $barcode $birthday\n"; + } + } } -$dbh->disconnect();