#!/usr/bin/perl
+# $Id$
+
#script to set up screen for modification of borrower details
#written 20/12/99 by chris@katipo.co.nz
# Suite 330, Boston, MA 02111-1307 USA
use strict;
+use C4::Auth;
+use C4::Context;
use C4::Output;
+use C4::Charset;
use CGI;
use C4::Search;
-use C4::Database;
use C4::Koha;
use HTML::Template;
my $input = new CGI;
-my $theme = $input->param('theme'); # only used if allowthemeoverride is set
-my %tmpldata = pathtotemplate ( template => 'memberentry.tmpl', theme => $theme );
-my $template = HTML::Template->new(filename => $tmpldata{'path'}, die_on_bad_params => 0);
+my ($template, $loggedinuser, $cookie)
+ = get_template_and_user({template_name => "members/memberentry.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => {borrowers => 1},
+ debug => 1,
+ });
my $member=$input->param('bornum');
if ($member eq ''){
$member=NewBorrowerNumber();
}
my $type=$input->param('type') || '';
-my $modify=$input->param('modify.x');
+my $modify=$input->param('modify.x');
my $delete=$input->param('delete.x');
if ($delete){
print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$member");
} else {
$template->param( header => 'Add New Member');
}
-
+
my $data=borrdata('',$member);
-
+
if ($type eq 'Add'){
$template->param( updtype => 'I');
} else {
$template->param( updtype => 'M');
}
-
+
my $cardnumber=$data->{'cardnumber'};
- my %systemprefs=systemprefs();
+ my $autonumber_members = C4::Context->preference("autoMemberNum") || 0;
+ # Find out whether member numbers should be generated
+ # automatically. Should be either "1" or something else.
+ # Defaults to "0", which is interpreted as "no".
# FIXME
# This logic should probably be moved out of the presentation code.
# Not tonight though.
#
- if ($cardnumber eq '' && $systemprefs{'autoMemberNum'} eq '1') {
- my $dbh=C4Connect;
+ if ($cardnumber eq '' && $autonumber_members eq '1') {
+ my $dbh = C4::Context->dbh;
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.
if (! $cardnumber) { # If DB has no values, start at 1000000
$cardnumber = 1000000;
} else {
- $cardnumber = $cardnumber + 1;
+ $cardnumber = $cardnumber + 1; # FIXME - $cardnumber++;
}
-
+
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
+ $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'};
}
-
+
if ($data->{'sex'} eq 'F'){
$template->param(female => 1);
- }
-
+ }
+
my @titles = ('Miss', 'Mrs', 'Ms', 'Mr', 'Dr', 'Sir');
+ # FIXME - Assumes English. This ought to be made part of i18n.
my @titledata;
while (@titles) {
my %row;
}
push(@titledata, \%row);
}
-
+
my ($categories,$labels)=ethnicitycategories();
my $ethnicitycategoriescount=$#{$categories};
my $ethcatpopup;
if ($ethnicitycategoriescount>=0) {
- $ethcatpopup = popup_menu(-name=>'ethnicity',
+ $ethcatpopup = CGI::popup_menu(-name=>'ethnicity',
-values=>$categories,
-default=>$data->{'ethnicity'},
-labels=>$labels);
$template->param(ethcatpopup => $ethcatpopup); # bad style, has to be fixed
}
-
+
($categories,$labels)=borrowercategories();
my $catcodepopup = CGI::popup_menu(-name=>'categorycode',
-values=>$categories,
-default=>$data->{'categorycode'},
-labels=>$labels);
-
+
my @areas = ('L','F','S','H','K','O','X','Z','V');
my %arealabels = ('L' => 'Levin',
'F' => 'Foxton',
'X' => 'Temporary Visitor',
'Z' => 'Interloan Libraries',
'V' => 'Village');
-
+
my @areadata;
while (@areas) {
my %row;
$row{'area'}=$arealabels{$shortcut};
push(@areadata, \%row);
}
-
-
+
+
my @relationships = ('workplace', 'relative','friend', 'neighbour');
my @relshipdata;
while (@relationships) {
}
push(@relshipdata, \%row);
}
-
+
# %flags: keys=$data-keys, datas=[formname, HTML-explanation]
my %flags = ('gonenoaddress' => ['gna', 'Gone no address'],
'lost' => ['lost', 'Lost'],
'debarred' => ['debarred', 'Debarred']);
-
+
my @flagdata;
foreach (keys(%flags)) {
my $key = $_;
my %row = ('key' => $key,
- 'name' => $flags{$key}[0],
- 'html' => $flags{$key}[1]);
+ 'name' => $flags{$key}[0],
+ 'html' => $flags{$key}[1]);
if ($data->{$key}) {
$row{'yes'}=' checked';
$row{'no'}='';
if ($modify){
$template->param( modify => 1 );
}
-
+
$template->param( startmenumember => join ('', startmenu('member')),
endmenumember => join ('', endmenu('member')),
member => $member,
initials => $data->{'initials'},
ethcatpopup => $ethcatpopup,
catcodepopup => $catcodepopup,
- streetaddress => $data->{'physstreet'},
+ streetaddress => $data->{'streetaddress'},
streetcity => $data->{'streetcity'},
city => $data->{'city'},
phone => $data->{'phone'},
expiry => $data->{'expiry'},
cardnumber => $cardnumber,
dateofbirth => $data->{'dateofbirth'});
-
- print "Content-Type: text/html\n\n", $template->output;
-
+
+print $input->header(
+ -type => guesstype($template->output),
+ -cookie => $cookie
+),$template->output;
+
}