Added 'warnings' support, fixed bug 2870.
authorstan <stan@koha-dev.hsd1.vt.comcast.net>
Wed, 24 Dec 2008 03:06:10 +0000 (22:06 -0500)
committerHenri-Damien LAURENT <henridamien@koha-fr.org>
Tue, 27 Jan 2009 11:19:41 +0000 (12:19 +0100)
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
members/memberentry.pl

index 91095ad..57b520d 100755 (executable)
@@ -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');
@@ -161,10 +161,10 @@ if (($op eq 'insert') and !$nodouble){
 }
 
   #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'};
@@ -175,7 +175,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'));
@@ -329,8 +329,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 {
@@ -360,7 +362,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;
@@ -374,7 +378,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);
@@ -415,7 +419,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'}='';
@@ -521,7 +525,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')) {
@@ -544,6 +548,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
@@ -552,12 +557,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,
@@ -575,6 +580,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;