Update of /cvsroot/koha/koha In directory usw-pr-cvs1:/tmp/cvs-serv13697 Modified Files: memberentry.pl Log Message: Modified to include Glen Stewarts automatic member/patron cardnumber incrementation Index: memberentry.pl =================================================================== RCS file: /cvsroot/koha/koha/memberentry.pl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** memberentry.pl 2001/03/07 01:48:48 1.2 --- memberentry.pl 2001/03/12 23:29:44 1.3 *************** *** 8,13 **** use CGI; use C4::Search; - my $input = new CGI; my $member=$input->param('bornum'); --- 8,13 ---- use CGI; use C4::Search; + use C4::Database; my $input = new CGI; my $member=$input->param('bornum'); *************** *** 16,24 **** } my $type=$input->param('type'); ! my $modify=$input->param('modify.x'); print $input->header; print startpage(); print startmenu('member'); ! #print $modify; if ($type ne 'Add'){ print mkheadr(1,'Update Member Details'); --- 16,24 ---- } my $type=$input->param('type'); ! my $modify=$input->param('modify.x'); print $input->header; print startpage(); print startmenu('member'); ! if ($type ne 'Add'){ print mkheadr(1,'Update Member Details'); *************** *** 40,43 **** --- 40,83 ---- print "<input type=hidden name=updtype value=M>"; } + + my $cardnumber=$data->{'cardnumber'}; + my %systemprefs=systemprefs(); + if ($cardnumber eq '' && $systemprefs{'autoMemberNum'} eq '1') { + my $dbh=C4Connect; + my $query="select max(substring(borrowers.cardnumber,2,7)) from borrowers"; + my $sth=$dbh->prepare($query); + $sth->execute; + my $data=$sth->fetchrow_hashref; + $cardnumber=$data->{'max(substring(borrowers.cardnumber,2,7))'}; + $sth->finish; + $dbh->disconnect; + # purpose: generate checksum'd member numbers. + # We'll assume we just got the max value of digits 2-8 of member #'s from the database and our job is to + # increment that by one, determine the 1st and 9th digits and return the full string. + my @weightings = (8,4,6,3,5,2,1); + my $sum; + my $i = 0; + if (! $cardnumber) { # If DB has no values, start at 1000000 + $cardnumber = 1000000; + } else { + $cardnumber = $cardnumber + 1; + } + + while ($i <8) { # step from char 1 to 7. + my $temp1 = $weightings[$i]; # read weightings, left to right, 1 char at a time + my $temp2 = substr($cardnumber,$i,1); # sequence left to right, 1 char at a time + #print "$temp2<br>"; + $sum = $sum + ($temp1*$temp2); # mult each char 1-7 by its corresponding weighting + $i++; # increment counter + } + my $rem = ($sum%11); # remainder of sum/11 (eg. 9999999/11, remainder=2) + if ($rem == 10) { # if remainder is 10, use X instead + $rem = "X"; + } + $cardnumber="V$cardnumber$rem"; + } else { + $cardnumber=$data->{'cardnumber'}; + } + print <<printend *************** *** 46,50 **** <tr valign=top><td COLSPAN=2><input type=reset value="Clear all Fields"></td><td COLSPAN=3 ALIGN=RIGHT ><font size=4 face='arial,helvetica'> ! Member# $member, Card Number* <input type=text name=cardnumber size=10 value="$data->{'cardnumber'}"><br> </td></tr> --- 86,90 ---- <tr valign=top><td COLSPAN=2><input type=reset value="Clear all Fields"></td><td COLSPAN=3 ALIGN=RIGHT ><font size=4 face='arial,helvetica'> ! Member# $member, Card Number* <input type=text name=cardnumber size=10 value="$cardnumber"><br> </td></tr> *************** *** 225,231 **** <td> <SELECT NAME="area" SIZE="1"> - <OPTION value=L printend ; if ($data->{'area'} eq 'L'){ print " Selected"; --- 265,278 ---- <td> <SELECT NAME="area" SIZE="1"> printend ; + + + print "<OPTION value=EEBF"; + if ($data->{'area'} eq 'EEBF'){ + print " Selected"; + } + print ">EEBF - Delphi-E Flint + <OPTION value=L"; if ($data->{'area'} eq 'L'){ print " Selected"; *************** *** 372,426 **** <td COLSPAN=4><textarea name=borrowernotes wrap=physical cols=70 rows=3>$data->{'borrowernotes'}</textarea></td></tr> <tr><td> </TD></TR> ! ! printend ! ; ! if ($modify){ ! print <<printend ! <tr><td><Font size=2>FLAGS</font></td></tr> ! <tr><td>Gone No Address</td> ! <td><input type=radio name=gna value=1 printend ; ! if ($data->{'gonenoaddress'} eq '1'){ ! print " checked"; ! } ! print ">Yes <input type=radio name=gna value=0"; ! if ($data->{'gonenoaddress'} eq '0'){ ! print " checked"; ! } ! print ">No</td></tr>\n"; ! print "<tr><td>Lost</td><td><input type=radio name=lost value=1"; ! if ($data->{'lost'} eq '1'){ ! print " checked"; ! } ! print ">Yes<input type=radio name=lost value=0"; ! if ($data->{'lost'} eq '0'){ ! print " checked"; ! } ! print ">No</td></tr>\n"; ! print "<tr><td>Debarred</td><td><input type=radio name=debarred value=1"; ! if ($data->{'debarred'} eq '1'){ ! print " checked"; ! } ! print ">Yes<input type=radio name=debarred value=0"; ! if ($data->{'debarred'} eq '0'){ ! print " checked"; ! } ! print ">No</td></tr>\n"; ! } ! if ($type eq 'Add'){ print <<printend ! <tr valign=top bgcolor=white><td COLSPAN=5 align=right > ! <input type=image src="/images/save-changes.gif" WIDTH=188 HEIGHT=44 ALT="Add New Member" border=0 ></td> printend ; } else { print <<printend ! <tr valign=top bgcolor=white><td COLSPAN=5 align=right > ! <input type=image src="/images/save-changes.gif" WIDTH=188 HEIGHT=44 ALT="Add New Member" border=0 ></td> printend ; } print <<printend </tr> </TABLE> --- 419,473 ---- <td COLSPAN=4><textarea name=borrowernotes wrap=physical cols=70 rows=3>$data->{'borrowernotes'}</textarea></td></tr> <tr><td> </TD></TR> ! <tr valign=top bgcolor=white><td COLSPAN=5 align=right > printend ; ! if ($modify){ ! print <<printend ! <tr><td><Font size=2>FLAGS</font></td></tr> ! <tr><td>Gone No Address</td> ! <td><input type=radio name=gna value=1 ! printend ! ; ! if ($data->{'gonenoaddress'} eq '1'){ ! print " checked"; ! } ! print ">Yes <input type=radio name=gna value=0"; ! if ($data->{'gonenoaddress'} eq '0'){ ! print " checked"; ! } ! print ">No</td></tr>\n"; ! print "<tr><td>Lost</td><td><input type=radio name=lost value=1"; ! if ($data->{'lost'} eq '1'){ ! print " checked"; ! } ! print ">Yes<input type=radio name=lost value=0"; ! if ($data->{'lost'} eq '0'){ ! print " checked"; ! } ! print ">No</td></tr>\n"; ! print "<tr><td>Debarred</td><td><input type=radio name=debarred value=1"; ! if ($data->{'debarred'} eq '1'){ ! print " checked"; ! } ! print ">Yes<input type=radio name=debarred value=0"; ! if ($data->{'debarred'} eq '0'){ ! print " checked"; ! } ! print ">No</td></tr>\n"; ! } ! ! if ($type ne 'modify'){ print <<printend ! <tr><td></td><td><input type=image src="/images/save-changes.gif" WIDTH=188 HEIGHT=44 ALT="Add New Member" border=0 ></td> printend ; } else { print <<printend ! <td><td></td><td><input type=image src="/images/save-changes.gif" WIDTH=188 HEIGHT=44 ALT="Add New Member" border=0 ></td> printend ; } print <<printend + </form> </tr> </TABLE>