Koha/memberentry.pl
2003-04-08 12:34:14 +00:00

196 lines
5.7 KiB
Perl
Executable file

#!/usr/bin/perl
# NOTE: This file uses standard 8-space tabs
# DO NOT SET TAB SIZE TO 4
# $Id$
#script to set up screen for modification of borrower details
#written 20/12/99 by chris@katipo.co.nz
# Copyright 2000-2002 Katipo Communications
#
# 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 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., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
use strict;
use C4::Auth;
use C4::Context;
use C4::Output;
use C4::Interface::CGI::Output;
use CGI;
use C4::Search;
use C4::Members;
use C4::Koha;
use HTML::Template;
use Date::Manip;
use C4::Date;
my $input = new CGI;
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 $delete=$input->param('delete.x');
if ($delete){
print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$member");
} else { # this else goes down the whole script
if ($type ne 'Add'){
$template->param( header => 'Update Member Details'); # bad templating style
} 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=C4::Members::fixup_cardnumber($data->{'cardnumber'});
if ($data->{'sex'} eq 'F'){
$template->param(female => 1);
}
my ($categories,$labels)=ethnicitycategories();
my $ethnicitycategoriescount=$#{$categories};
my $ethcatpopup;
if ($ethnicitycategoriescount>=0) {
$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 @relationships = ('workplace', 'relative','friend', 'neighbour');
my @relshipdata;
while (@relationships) {
my $relship = shift @relationships;
my %row = ('relationship' => $relship);
if ($data->{'altrelationship'} eq $relship) {
$row{'selected'}=' selected';
} else {
$row{'selected'}='';
}
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]);
if ($data->{$key}) {
$row{'yes'}=' checked';
$row{'no'}='';
} else {
$row{'yes'}='';
$row{'no'}=' checked';
}
push(@flagdata, \%row);
}
if ($modify){
$template->param( modify => 1 );
}
#Convert dateofbirth to correct format
$data->{'dateofbirth'} = format_date($data->{'dateofbirth'});
my @branches;
my @select_branch;
my %select_branches;
my $branches=getbranches();
foreach my $branch (keys %$branches) {
push @select_branch, $branch;
$select_branches{$branch} = $branches->{$branch}->{'branchname'};
}
my $CGIbranch=CGI::scrolling_list( -name => 'branchcode',
-values => \@select_branch,
-default => $data->{'branchcode'},
-labels => \%select_branches,
-size => 1,
-multiple => 0 );
$template->param(
member => $member,
address => $data->{'streetaddress'},
firstname => $data->{'firstname'},
surname => $data->{'surname'},
othernames => $data->{'othernames'},
initials => $data->{'initials'},
ethcatpopup => $ethcatpopup,
catcodepopup => $catcodepopup,
streetaddress => $data->{'physstreet'},
streetcity => $data->{'streetcity'},
city => $data->{'city'},
phone => $data->{'phone'},
phoneday => $data->{'phoneday'},
faxnumber => $data->{'faxnumber'},
emailaddress => $data->{'emailaddress'},
textmessaging => $data->{'textmessaging'},
contactname => $data->{'contactname'},
altphone => $data->{'altphone'},
altnotes => $data->{'altnotes'},
borrowernotes => $data->{'borrowernotes'},
flagloop => \@flagdata,
relshiploop => \@relshipdata,
"title_".$data->{'title'} => " SELECTED ",
dateenrolled => $data->{'dateenrolled'},
expiry => $data->{'expiry'},
cardnumber => $cardnumber,
dateofbirth => $data->{'dateofbirth'},
dateformat => display_date_format(),
CGIbranch => $CGIbranch);
warn "title ==>".$data->{'title'}."<==";
output_html_with_http_headers $input, $cookie, $template->output;
}
# Local Variables:
# tab-width: 8
# End: