3 #script to set up screen for modification of borrower details
4 #written 20/12/99 by chris@katipo.co.nz
13 my $member=$input->param('bornum');
15 $member=NewBorrowerNumber();
17 my $type=$input->param('type');
18 my $modify=$input->param('modify.x');
21 print startmenu('member');
24 print mkheadr(1,'Update Member Details');
26 print mkheadr(1,'Add New Member');
28 my $data=borrdata('',$member);
30 <form action=/cgi-bin/koha/newmember.pl method=post>
31 <input type=hidden name=joining value="$data->{'dateenrolled'}">
32 <input type=hidden name=expiry value="$data->{'expiry'}">
33 <input type=hidden name=type value="borrowers">
34 <input type=hidden name=borrowernumber value="$member">
38 print "<input type=hidden name=updtype value=I>";
40 print "<input type=hidden name=updtype value=M>";
43 my $cardnumber=$data->{'cardnumber'};
44 my %systemprefs=systemprefs();
45 if ($cardnumber eq '' && $systemprefs{'autoMemberNum'} eq '1') {
47 my $query="select max(substring(borrowers.cardnumber,2,7)) from borrowers";
48 my $sth=$dbh->prepare($query);
50 my $data=$sth->fetchrow_hashref;
51 $cardnumber=$data->{'max(substring(borrowers.cardnumber,2,7))'};
54 # purpose: generate checksum'd member numbers.
55 # We'll assume we just got the max value of digits 2-8 of member #'s from the database and our job is to
56 # increment that by one, determine the 1st and 9th digits and return the full string.
57 my @weightings = (8,4,6,3,5,2,1);
60 if (! $cardnumber) { # If DB has no values, start at 1000000
61 $cardnumber = 1000000;
63 $cardnumber = $cardnumber + 1;
66 while ($i <8) { # step from char 1 to 7.
67 my $temp1 = $weightings[$i]; # read weightings, left to right, 1 char at a time
68 my $temp2 = substr($cardnumber,$i,1); # sequence left to right, 1 char at a time
70 $sum = $sum + ($temp1*$temp2); # mult each char 1-7 by its corresponding weighting
71 $i++; # increment counter
73 my $rem = ($sum%11); # remainder of sum/11 (eg. 9999999/11, remainder=2)
74 if ($rem == 10) { # if remainder is 10, use X instead
77 $cardnumber="V$cardnumber$rem";
79 $cardnumber=$data->{'cardnumber'};
84 <table border=0 cellspacing=0 cellpadding=5 >
87 <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'>
88 Member# $member, Card Number* <input type=text name=cardnumber size=10 value="$cardnumber"><br>
92 <tr valign=top ><td COLSPAN=3 background="/images/background-mem.gif">
93 <B>MEMBER PERSONAL DETAILS</b></td> <td COLSPAN=2 ALIGN=RIGHT background="/images/background-mem.gif">
94 * <input type="radio" name="sex" value="F"
97 if ($data->{'sex'} eq 'F'){
102 <input type="radio" name="sex" value="M"
105 if ($data->{'sex'} eq 'M'){
110 <B>Date of Birth</B> (dd/mm/yy)
111 <input type=text name=dateofbirth size=10 value="$data->{'dateofbirth'}">
113 <tr valign=top bgcolor=white>
114 <td><SELECT NAME="title" SIZE="1">
115 <OPTION value=" ">No Title
119 if ($data->{'title'} eq 'Miss'){
124 if ($data->{'title'} eq 'Mrs'){
129 if ($data->{'title'} eq 'Ms'){
134 if ($data->{'title'} eq 'Mr'){
139 if ($data->{'title'} eq 'Dr'){
144 if ($data->{'title'} eq 'Sir'){
152 <td><input type=text name=initials size=5 value="$data->{'initials'}"></td>
153 <td><input type=text name=firstname size=20 value="$data->{'firstname'}"></td>
154 <td><input type=text name=surname size=20 value="$data->{'surname'}"></td>
155 <td><input type=text name=othernames size=20 value="$data->{'othernames'}"></td></tr>
156 <tr valign=top bgcolor=white>
157 <td><FONT SIZE=2>Title</FONT></td>
158 <td><FONT SIZE=2>Initials</FONT></td>
159 <td><FONT SIZE=2>Given Names*</FONT></td>
160 <td><FONT SIZE=2>Surname*</FONT></td>
161 <td><FONT SIZE=2>Prefered Name</FONT></td>
164 <tr><td> </TD></TR>
165 <tr valign=top bgcolor=white>
166 <td colspan=2><SELECT NAME="ethnicity" SIZE="1">
169 print "<OPTION value=\" \">
170 <OPTION value=european";
171 if ($data->{'ethnicity'} eq 'european'){
176 <OPTION value=maori";
177 if ($data->{'ethnicity'} eq 'maori'){
181 <OPTION value=asian";
182 if ($data->{'ethnicity'} eq 'asian'){
187 if ($data->{'ethnicity'} eq 'pi'){
190 print ">Pacific Island
191 <OPTION value=other";
192 if ($data->{'ethnicity'} eq 'other'){
197 >Other - please specify-->
200 <td colspan=2><input type=text name=ethnicnotes size=40 ></td>
201 <td> <select name=categorycode>
205 if ($data->{'categorycode'} eq 'A'){
210 if ($data->{'categorycode'} eq 'B'){
215 if ($data->{'categorycode'} eq 'P'){
220 if ($data->{'categorycode'} eq 'E'){
223 print ">Senior Citizen
225 if ($data->{'categorycode'} eq 'W'){
230 if ($data->{'categorycode'} eq 'I'){
235 if ($data->{'categorycode'} eq 'C'){
240 if ($data->{'categorycode'} eq 'L'){
245 if ($data->{'categorycode'} eq 'F'){
253 <tr valign=top bgcolor=white>
254 <td colspan=2><FONT SIZE=2>Ethnicity</FONT></td>
255 <td colspan=2><FONT SIZE=2>Ethnicity Notes</FONT></td>
256 <td><FONT SIZE=2>Membership Category*</FONT></td>
258 <tr><td> </TD></TR>
260 <tr valign=top bgcolor="99cc33" ><td COLSPAN=5 background="/images/background-mem.gif">
261 <B>MEMBER ADDRESS</b></td></tr>
262 <tr valign=top bgcolor=white>
263 <td COLSPAN=3><input type=text name=address size=40 value="$data->{'streetaddress'}">
264 <td><input type=text name=city size=20 value="$data->{'city'}"></td>
266 <SELECT NAME="area" SIZE="1">
271 print "<OPTION value=EEBF";
272 if ($data->{'area'} eq 'EEBF'){
275 print ">EEBF - Delphi-E Flint
277 if ($data->{'area'} eq 'L'){
282 if ($data->{'area'} eq 'F'){
287 if ($data->{'area'} eq 'S'){
292 if ($data->{'area'} eq 'H'){
295 print ">H - Horowhenua
297 if ($data->{'area'} eq 'K'){
302 if ($data->{'area'} eq 'O'){
305 print ">O - Out of District
307 if ($data->{'area'} eq 'X'){
310 print ">X - Temporary Visitor
312 if ($data->{'area'} eq 'Z'){
315 print ">Z - Interloan Libraries
317 if ($data->{'area'} eq 'V'){
320 print ">V - Villlage";
323 <tr valign=top bgcolor=white>
324 <td COLSPAN=3><FONT SIZE=2>Postal Address*</FONT></td>
325 <td><FONT SIZE=2>Town*</FONT></td>
326 <td><FONT SIZE=2>Area</FONT></td>
328 <tr><td> </TD></TR>
329 <tr valign=top bgcolor=white>
331 <td COLSPAN=3><input type=text name=streetaddress size=40 value="$data->{'physstreet'}"></td>
332 <td><input type=text name=streetcity size=20 value="$data->{'streetcity'}"></td>
335 <tr valign=top bgcolor=white>
337 <td COLSPAN=3><FONT SIZE=2>Street Address if different</FONT></td>
338 <td><FONT SIZE=2>Town</FONT></td>
340 <tr><td> </TD></TR>
341 <tr valign=top bgcolor="99cc33" ><td COLSPAN=5 background="/images/background-mem.gif">
342 <B>MEMBER CONTACT DETAILS</b></td></tr>
345 <tr valign=top bgcolor=white>
346 <td COLSPAN=2 ><input type=text name=phone size=20 value="$data->{'phone'}"></td>
347 <td><input type=text name=phoneday size=20 value="$data->{'phoneday'}"></td>
348 <td><input type=text name=faxnumber size=20 value="$data->{'faxnumber'}"></td>
349 <td><input type=text name=emailaddress size=20 value="$data->{'emailaddress'}"></td></tr>
351 <tr valign=top bgcolor=white>
352 <td COLSPAN=2 ><FONT SIZE=2>Phone (Home)</td>
353 <td><FONT SIZE=2>Phone (day)</td>
354 <td><FONT SIZE=2>Fax</td>
355 <td><FONT SIZE=2>Email</td></tr>
356 <tr><td> </TD></TR>
357 <tr valign=top bgcolor="99cc33" ><td COLSPAN=5 background="/images/background-mem.gif">
358 <B>ALTERNATE CONTACT DETAILS</b> </td></tr>
360 <tr valign=top bgcolor=white>
361 <td COLSPAN=3 ><input type=text name=contactname size=40 value="$data->{'contactname'}"></td>
362 <td><input type=text name=altphone size=20 value="$data->{'altphone'}"></td>
363 <td><select name=altrelationship size=1>
364 <option value="workplace"
367 if ($data->{'altrelationship'} eq 'workplace'){
372 <option value=\"relative\"";
373 if ($data->{'altrelationship'} eq 'relative'){
377 <option value=\"friend\"";
378 if ($data->{'altrelationship'} eq 'workplace'){
382 <option value=\"neighbour\"";
383 if ($data->{'altrelationship'} eq 'workplace'){
390 <tr valign=top bgcolor=white>
391 <td COLSPAN=3 ><FONT SIZE=2>Name*</td>
392 <td><FONT SIZE=2>Phone</td>
393 <td><FONT SIZE=2>Relationship*</td></tr>
397 <tr><td> </TD></TR>
400 <tr valign=top bgcolor=white>
402 <td><FONT SIZE=2>Notes</font></td>
403 <td COLSPAN=4><textarea name=altnotes wrap=physical cols=70 rows=3>$data->{'altnotes'}</textarea></td></tr>
407 <tr><td> </TD></TR>
410 <tr valign=top bgcolor="99cc33" >
412 <td COLSPAN=5 background="/images/background-mem.gif"><B>LIBRARY USE</B></td>
418 <td><FONT SIZE=2>Notes</font></td>
419 <td COLSPAN=4><textarea name=borrowernotes wrap=physical cols=70 rows=3>$data->{'borrowernotes'}</textarea></td></tr>
420 <tr><td> </TD></TR>
421 <tr valign=top bgcolor=white><td COLSPAN=5 align=right >
426 <tr><td><Font size=2>FLAGS</font></td></tr>
427 <tr><td>Gone No Address</td>
428 <td><input type=radio name=gna value=1
431 if ($data->{'gonenoaddress'} eq '1'){
434 print ">Yes <input type=radio name=gna value=0";
435 if ($data->{'gonenoaddress'} eq '0'){
438 print ">No</td></tr>\n";
439 print "<tr><td>Lost</td><td><input type=radio name=lost value=1";
440 if ($data->{'lost'} eq '1'){
443 print ">Yes<input type=radio name=lost value=0";
444 if ($data->{'lost'} eq '0'){
447 print ">No</td></tr>\n";
448 print "<tr><td>Debarred</td><td><input type=radio name=debarred value=1";
449 if ($data->{'debarred'} eq '1'){
452 print ">Yes<input type=radio name=debarred value=0";
453 if ($data->{'debarred'} eq '0'){
456 print ">No</td></tr>\n";
459 if ($type ne 'modify'){
461 <tr><td></td><td><input type=image src="/images/save-changes.gif" WIDTH=188 HEIGHT=44 ALT="Add New Member" border=0 ></td>
466 <td><td></td><td><input type=image src="/images/save-changes.gif" WIDTH=188 HEIGHT=44 ALT="Add New Member" border=0 ></td>
481 print endmenu('member');