[Koha-patches] [PATCH] Added 'warnings' support, fixed bug 2870.

Stan Brinkerhoff koha at brinkerhoff.org
Wed Dec 24 04:06:10 CET 2008


From: stan <stan at koha-dev.hsd1.vt.comcast.net>

---
 members/memberentry.pl |   45 +++++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/members/memberentry.pl b/members/memberentry.pl
index 7bc41e8..098dd83 100755
--- a/members/memberentry.pl
+++ b/members/memberentry.pl
@@ -19,7 +19,7 @@
 
 # pragma
 use strict;
-# use warnings;  # FIXME: really.
+use warnings;  # FIXME: really.
 
 # external modules
 use CGI;
@@ -95,7 +95,7 @@ foreach (@field_check) {
 	$template->param( "mandatory$_" => 1);    
 }
 $template->param("add"=>1) if ($op eq 'add');
-$template->param("checked" => 1) if ($nodouble eq 1);
+$template->param("checked" => 1) if (defined($nodouble) && $nodouble eq 1);
 ($borrower_data = GetMember($borrowernumber,'borrowernumber')) if ($op eq 'modify' or $op eq 'save');
 my $categorycode  = $input->param('categorycode') || $borrower_data->{'categorycode'};
 my $category_type = $input->param('category_type');
@@ -159,10 +159,10 @@ if ($op eq 'insert'){
 }
 
   #recover all data from guarantor address phone ,fax... 
-if (($category_type eq 'C' || $category_type eq 'P') and $guarantorid ne '' ){
+if (defined($guarantorid) and ($category_type eq 'C' || $category_type eq 'P') and $guarantorid ne '' ){
   my $guarantordata=GetMember($guarantorid);
   $guarantorinfo=$guarantordata->{'surname'}." , ".$guarantordata->{'firstname'};
-  if (($data{'contactname'} eq '' or $data{'contactname'} ne $guarantordata->{'surname'})) {
+  if (!defined($data{'contactname'}) or $data{'contactname'} eq '' or $data{'contactname'} ne $guarantordata->{'surname'}) {
     $data{'contactfirstname'}= $guarantordata->{'firstname'};
     $data{'contactname'}     = $guarantordata->{'surname'};
     $data{'contacttitle'}    = $guarantordata->{'title'};
@@ -173,7 +173,7 @@ if (($category_type eq 'C' || $category_type eq 'P') and $guarantorid ne '' ){
 }
 
 ###############test to take the right zipcode and city name ##############
-if ($guarantorid eq '') {
+if (!defined($guarantorid) or $guarantorid eq '') {
     # set only if parameter was passed from the form
     $newdata{'city'}    = $input->param('city')    if defined($input->param('city'));
     $newdata{'zipcode'} = $input->param('zipcode') if defined($input->param('zipcode'));
@@ -328,8 +328,10 @@ if ($op eq "modify")  {
 }
 # my $cardnumber=$data{'cardnumber'};
 $data{'cardnumber'}=fixup_cardnumber($data{'cardnumber'}) if $op eq 'add';
-if ($data{'sex'} eq 'F'){
-    $template->param(female => 1);
+if(!defined($data{'sex'})){
+    $template->param( none => 1);
+} elsif($data{'sex'} eq 'F'){
+    $template->param( female => 1);
 } elsif ($data{'sex'} eq 'M'){
     $template->param(  male => 1);
 } else {
@@ -359,7 +361,9 @@ foreach (qw(C A S P I X)) {
 	foreach my $cat (@$categories){
 		push @categoryloop,{'categorycode' => $cat,
 			  'categoryname' => $labels->{$cat},
-			  'categorycodeselected' => ($cat eq $borrower_data->{'categorycode'} || $cat eq $categorycode),
+			  'categorycodeselected' => ((defined($borrower_data->{'categorycode'}) && 
+                                                     $cat eq $borrower_data->{'categorycode'}) 
+                                                     || (defined($categorycode) && $cat eq $categorycode)),
 		};
 	}
 	my %typehash;
@@ -373,7 +377,7 @@ $template->param('typeloop' => \@typeloop);
 # test in city
 $select_city=getidcity($data{'city'}) if ($guarantorid ne '0');
 ($default_city=$select_city) if ($step eq 0);
-if ($select_city eq '' ){
+if (!defined($select_city) or $select_city eq '' ){
 	$default_city = &getidcity($data{'city'});
 }
 my($cityid);
@@ -414,7 +418,7 @@ my @relshipdata;
 while (@relationships) {
   my $relship = shift @relationships || '';
   my %row = ('relationship' => $relship);
-  if ($data{'relationship'} eq $relship) {
+  if (defined($data{'relationship'}) and $data{'relationship'} eq $relship) {
     $row{'selected'}=' selected';
   } else {
     $row{'selected'}='';
@@ -520,7 +524,7 @@ if ($nok) {
   
   #Formatting data for display    
   
-if ($data{'dateenrolled'} eq ''){
+if (!defined($data{'dateenrolled'}) or $data{'dateenrolled'} eq ''){
   $data{'dateenrolled'}=C4::Dates->today('iso');
 }
 if (C4::Context->preference('uppercasesurnames')) {
@@ -543,6 +547,7 @@ $template->param(%data);
 $template->param( "step_$step"  => 1) if $step;	# associate with step to know where u are
 $template->param(  step  => $step   ) if $step;	# associate with step to know where u are
 $template->param( debug  => $debug  ) if $debug;
+
 $template->param(
   BorrowerMandatoryField => C4::Context->preference("BorrowerMandatoryField"),#field to test with javascript
   category_type => $category_type,#to know the category type of the borrower
@@ -551,12 +556,12 @@ $template->param(
   "$category_type"  => 1,# associate with step to know where u are
   destination   => $destination,#to know wher u come from and wher u must go in redirect
   check_member    => $check_member,#to know if the borrower already exist(=>1) or not (=>0) 
-  flags   =>$data{'flags'},   
-  "op$op"   => 1,
+  "op$op"   => 1);
+
+$template->param(
   nodouble  => $nodouble,
-  borrowernumber  => $borrowernumber,#register number
-  "contacttitle_".$data{'contacttitle'} => "SELECTED" ,
-  guarantorid => $borrower_data ? $borrower_data->{'guarantorid'} : $guarantorid,
+  borrowernumber  => $borrowernumber, #register number
+  guarantorid => (defined($borrower_data->{'guarantorid'})) ? $borrower_data->{'guarantorid'} : $guarantorid,
   ethcatpopup => $ethcatpopup,
   relshiploop => \@relshipdata,
   citypopup => $citypopup,
@@ -574,6 +579,14 @@ $template->param(
   CGIorganisations => $CGIorganisations,
   NoUpdateLogin =>  $NoUpdateLogin
   );
+
+if(defined($data{'flags'})){
+  $template->param(flags=>$data{'flags'});
+}
+if(defined($data{'contacttitle'})){
+  $template->param("contacttitle_" . $data{'contacttitle'} => "SELECTED");
+}
+
   
 output_html_with_http_headers $input, $cookie, $template->output;
 
-- 
1.5.6.5




More information about the Koha-patches mailing list