[Koha-cvs] CVS: koha/members memberentry.pl,1.1,1.2 member-password.pl,1.1,1.2

Paul POULAIN tipaul at users.sourceforge.net
Wed Mar 24 16:08:22 CET 2004


Update of /cvsroot/koha/koha/members
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15099/members

Modified Files:
	memberentry.pl member-password.pl 
Log Message:
css'ing & merging members management.
memberentry merges 
* memberentry, moremember & insertdata (form, validation & storing)
* and the I series (Institution management)

Index: memberentry.pl
===================================================================
RCS file: /cvsroot/koha/koha/members/memberentry.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** memberentry.pl	10 Mar 2004 15:13:45 -0000	1.1
--- memberentry.pl	24 Mar 2004 15:08:19 -0000	1.2
***************
*** 38,44 ****
--- 38,47 ----
  use Date::Manip;
  use C4::Date;
+ use C4::Input;
  
  my $input = new CGI;
  
+ my $dbh = C4::Context->dbh;
+ 
  my ($template, $loggedinuser, $cookie)
      = get_template_and_user({template_name => "members/memberentry.tmpl",
***************
*** 51,71 ****
  
  my $member=$input->param('bornum');
! # if ($member eq ''){
! #	$member=NewBorrowerNumber();
! # }
! my $type=$input->param('type') || '';
  my $modify=$input->param('modify');
  my $delete=$input->param('delete');
  if ($delete){
  	print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$member");
  } else {  # this else goes down the whole script
! 	if ($type eq 'Add'){
  		$template->param( addAction => 1);
  	} else {
  		$template->param( addAction =>0);
  	}
! 
! 	my $data=borrdata('',$member);
! 	if ($type eq 'Add'){
  		$template->param( updtype => 'I');
  	} else {
--- 54,198 ----
  
  my $member=$input->param('bornum');
! my $actionType=$input->param('actionType') || '';
  my $modify=$input->param('modify');
  my $delete=$input->param('delete');
+ my $op=$input->param('op');
+ my $categorycode=$input->param('categorycode');
+ 
+ my $nok;
+ # if a add or modify is requested => check validity of data.
+ if ($op eq 'add' or $op eq 'modify') {
+ 	my %data;
+ 	my @names=$input->param;
+ 	foreach my $key (@names){
+ 		$data{$key}=$input->param($key);
+ 		$data{$key}=~ s/\'/\\\'/g;
+ 		$data{$key}=~ s/\"/\\\"/g;
+ 	}
+ 	my @errors;
+ 	if ($data{'cardnumber'} eq ''){
+ 		push @errors,"ERROR_cardnumber";
+ 		$nok=1;
+ 	} else {
+ 		#check cardnumber is valid
+ 		my $nounique;
+ 		if ( $data{'actionType'} eq "Add" )    {
+ 			$nounique = 0;
+ 		} else {
+ 			$nounique = 1;
+ 		}
+ 		my $valid=checkdigit('',$data{'cardnumber'}, $nounique);
+ 		if ($valid != 1){
+ 			$nok=1;
+ 			push @errors, "ERROR_invalid_cardnumber";
+ 		}
+ 	}
+ 	if ($data{'sex'} eq '' && $categorycode ne "I"){
+ 		push @errors, "ERROR_gender";
+ 		$nok=1;
+ 	}
+ 	if ($data{'firstname'} eq '' && $categorycode ne "I"){
+ 		push @errors,"ERROR_firstname";
+ 		$nok=1;
+ 	}
+ 	if ($data{'surname'} eq ''){
+ 		push @errors,"ERROR_surname";
+ 		$nok=1;
+ 	}
+ 	if ($data{'address'} eq ''){
+ 		push @errors, "ERROR_address";
+ 		$nok=1;
+ 	}
+ 	if ($data{'city'} eq ''){
+ 		push @errors, "ERROR_city";
+ 		$nok=1;
+ 	}
+ 	if ($nok) {
+ 		foreach my $error (@errors) {
+ 			$template->param( $error => 1);
+ 		}
+ 		$template->param(nok => 1);
+ 	} else {
+ 		my $query="Select * from borrowers where borrowernumber=?";
+ 		my $sth=$dbh->prepare($query);
+ 		$sth->execute($data{'borrowernumber'});
+ 		if (my $data2=$sth->fetchrow_hashref){
+ 			$data{'dateofbirth'}=format_date_in_iso($data{'dateofbirth'});
+ 			$data{'joining'}=format_date_in_iso($data{'joining'});
+ 			$data{'expiry'}=format_date_in_iso($data{'expiry'});
+ 			$query="update borrowers set title='$data{'title'}',expiry='$data{'expiry'}',
+ 			cardnumber='$data{'cardnumber'}',sex='$data{'sex'}',ethnotes='$data{'ethnicnotes'}',
+ 			streetaddress='$data{'address'}',faxnumber='$data{'faxnumber'}',firstname='$data{'firstname'}',
+ 			altnotes='$data{'altnotes'}',dateofbirth='$data{'dateofbirth'}',contactname='$data{'contactname'}',
+ 			emailaddress='$data{'emailaddress'}',dateenrolled='$data{'joining'}',streetcity='$data{'streetcity'}',
+ 			altrelationship='$data{'altrelationship'}',othernames='$data{'othernames'}',phoneday='$data{'phoneday'}',
+ 			categorycode='$data{'categorycode'}',city='$data{'city'}',area='$data{'area'}',phone='$data{'phone'}',
+ 			borrowernotes='$data{'borrowernotes'}',altphone='$data{'altphone'}',surname='$data{'surname'}',
+ 			initials='$data{'initials'}',physstreet='$data{'streetaddress'}',ethnicity='$data{'ethnicity'}',
+ 			gonenoaddress='$data{'gna'}',lost='$data{'lost'}',debarred='$data{'debarred'}',
+ 			textmessaging='$data{'textmessaging'}', branchcode = '$data{'branchcode'}',
+ 			zipcode = '$data{'zipcode'}',homezipcode='$data{'homezipcode'}'
+ 			where borrowernumber=$data{'borrowernumber'}";
+ 		}else{
+ 			$data{'dateofbirth'}=format_date_in_iso($data{'dateofbirth'});
+ 			$data{'joining'}=format_date_in_iso($data{'joining'});
+ 			$data{'expiry'}=format_date_in_iso($data{'expiry'});
+ 			$data{'borrowernumber'}=NewBorrowerNumber();
+ 			$query="insert into borrowers (title,expiry,cardnumber,sex,ethnotes,streetaddress,faxnumber,
+ 			firstname,altnotes,dateofbirth,contactname,emailaddress,textmessaging,dateenrolled,streetcity,
+ 			altrelationship,othernames,phoneday,categorycode,city,area,phone,borrowernotes,altphone,surname,
+ 			initials,ethnicity,physstreet,branchcode,zipcode,homezipcode) values ('$data{'title'}','$data{'expiry'}','$data{'cardnumber'}',
+ 			'$data{'sex'}','$data{'ethnotes'}','$data{'address'}','$data{'faxnumber'}',
+ 			'$data{'firstname'}','$data{'altnotes'}','$data{'dateofbirth'}','$data{'contactname'}','$data{'emailaddress'}','$data{'textmessaging'}',
+ 			'$data{'joining'}','$data{'streetcity'}','$data{'altrelationship'}','$data{'othernames'}',
+ 			'$data{'phoneday'}','$data{'categorycode'}','$data{'city'}','$data{'area'}','$data{'phone'}',
+ 			'$data{'borrowernotes'}','$data{'altphone'}','$data{'surname'}','$data{'initials'}',
+ 			'$data{'ethnicity'}','$data{'streetaddress'}','$data{'branchcode'}','$data{'zipcode'}','$data{'homezipcode'}')";
+ 		}
+ 		# ok if its an adult (type) it may have borrowers that depend on it as a guarantor
+ 		# so when we update information for an adult we should check for guarantees and update the relevant part
+ 		# of their records, ie addresses and phone numbers
+ 		if ($data{'categorycode'} eq 'A' || $data{'categorycode'} eq 'W'){
+ 			# is adult check guarantees;
+ 			my ($count,$guarantees)=findguarantees($data{'borrowernumber'});
+ 			for (my $i=0;$i<$count;$i++){
+ 				# FIXME
+ 				# It looks like the $i is only being returned to handle walking through
+ 				# the array, which is probably better done as a foreach loop.
+ 				#
+ 				my $guaquery="update borrowers set streetaddress='$data{'address'}',faxnumber='$data{'faxnumber'}',
+ 				streetcity='$data{'streetcity'}',phoneday='$data{'phoneday'}',city='$data{'city'}',area='$data{'area'}',phone='$data{'phone'}'
+ 				,streetaddress='$data{'address'}'
+ 				where borrowernumber='$guarantees->[$i]->{'borrowernumber'}'";
+ 				my $sth3=$dbh->prepare($guaquery);
+ 				$sth3->execute;
+ 				$sth3->finish;
+ 			}
+ 		}
+ 		my $sth2=$dbh->prepare($query);
+ 		$sth2->execute;
+ 		$sth2->finish;
+ 		$sth->finish;
+ 		print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$data{'borrowernumber'}");	}
+ }
  if ($delete){
  	print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$member");
  } else {  # this else goes down the whole script
! 	if ($actionType eq 'Add'){
  		$template->param( addAction => 1);
  	} else {
  		$template->param( addAction =>0);
  	}
! 	# retrieve previous values : either in DB or in CGI, in case of errors in values
! 	my $data;
! 	if ($nok) {
! 		my @names=$input->param;
! 		foreach my $key (@names){
! 			$data->{$key}=$input->param($key);
! 		}
! 	} else {
! 		$data=borrdata('',$member);
! 	}
! 	if ($actionType eq 'Add'){
  		$template->param( updtype => 'I');
  	} else {
***************
*** 152,156 ****
  				-multiple => 0 );
  
! 	$template->param(	type 		=> $type,
  				member          => $member,
  				address         => $data->{'streetaddress'},
--- 279,283 ----
  				-multiple => 0 );
  
! 	$template->param(	actionType 		=> $actionType,
  				member          => $member,
  				address         => $data->{'streetaddress'},
***************
*** 185,188 ****
--- 312,316 ----
  			        modify          => $modify,
  				CGIbranch => $CGIbranch);
+ 	$template->param(Institution => 1) if ($categorycode eq "I");
  	output_html_with_http_headers $input, $cookie, $template->output;
  

Index: member-password.pl
===================================================================
RCS file: /cvsroot/koha/koha/members/member-password.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** member-password.pl	10 Mar 2004 15:13:45 -0000	1.1
--- member-password.pl	24 Mar 2004 15:08:20 -0000	1.2
***************
*** 70,77 ****
  		#Everything is good so we can update the information.
  		my $sth=$dbh->prepare("update borrowers set userid=?, password=? where borrowernumber=?");
!     	$sth->execute($uid, $digest, $member);
  		$template->param(newpassword => $newpassword);
  	}
- 
  } else {
      my $userid = $bor->{'userid'};
--- 70,77 ----
  		#Everything is good so we can update the information.
  		my $sth=$dbh->prepare("update borrowers set userid=?, password=? where borrowernumber=?");
!     		$sth->execute($uid, $digest, $member);
  		$template->param(newpassword => $newpassword);
+ 		print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$member");
  	}
  } else {
      my $userid = $bor->{'userid'};





More information about the Koha-cvs mailing list