[followup](bug #4051) add borrower "title", and complete address in csv
[koha.git] / members / memberentry.pl
index b3582f3..3b62849 100755 (executable)
@@ -136,7 +136,7 @@ if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
         }
     }
   # check permission to modify login info.
-    if (ref($borrower_data) && ($borrower_data->{'category_type'} eq 'S') && ! (C4::Auth::haspermission($dbh,$userenv->{'id'},{'staffaccess'=>1})) )  {
+    if (ref($borrower_data) && ($borrower_data->{'category_type'} eq 'S') && ! (C4::Auth::haspermission($userenv->{'id'},{'staffaccess'=>1})) )  {
         $NoUpdateLogin = 1;
     }
 }
@@ -163,21 +163,27 @@ if (($op eq 'insert') and !$nodouble){
 }
 
   #recover all data from guarantor address phone ,fax... 
-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 (!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'};
-         foreach (qw(streetnumber address streettype address2 zipcode city phone phonepro mobile fax email emailpro branchcode)) {
-               $data{$_} = $guarantordata->{$_};
-       }
-  }
+if ( defined($guarantorid) and
+     ( $category_type eq 'C' || $category_type eq 'P' ) and
+     $guarantorid ne ''  and
+     $guarantorid ne '0' ) {
+    if (my $guarantordata=GetMember($guarantorid)) {
+        $guarantorinfo=$guarantordata->{'surname'}." , ".$guarantordata->{'firstname'};
+        if ( !defined($data{'contactname'}) or $data{'contactname'} eq '' or
+             $data{'contactname'} ne $guarantordata->{'surname'} ) {
+            $newdata{'contactfirstname'}= $guarantordata->{'firstname'};
+            $newdata{'contactname'}     = $guarantordata->{'surname'};
+            $newdata{'contacttitle'}    = $guarantordata->{'title'};
+               foreach (qw(streetnumber address streettype address2
+                        zipcode city phone phonepro mobile fax email emailpro branchcode)) {
+                       $newdata{$_} = $guarantordata->{$_};
+               }
+        }
+    }
 }
 
 ###############test to take the right zipcode and city name ##############
-if (!defined($guarantorid) or $guarantorid eq '') {
+if (!defined($guarantorid) or $guarantorid eq '' or $guarantorid eq '0') {
     # 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'));
@@ -303,13 +309,13 @@ if ($delete){
 }
 
 if ($nok or !$nodouble){
-  $op="add" if ($op eq "insert");
-  $op="modify" if ($op eq "save");
-  %data=%newdata; 
-  $template->param( updtype => ($op eq 'add' ?'I':'M'));       # used to check for $op eq "insert"... but we just changed $op!
-  unless ($step){  
-    $template->param( step_1 => 1,step_2 => 1,step_3 => 1, step_4 => 1);
-  }  
+    $op="add" if ($op eq "insert");
+    $op="modify" if ($op eq "save");
+    %data=%newdata; 
+    $template->param( updtype => ($op eq 'add' ?'I':'M'));     # used to check for $op eq "insert"... but we just changed $op!
+    unless ($step){  
+        $template->param( step_1 => 1,step_2 => 1,step_3 => 1, step_4 => 1);
+    }  
 } 
 if (C4::Context->preference("IndependantBranches")) {
     my $userenv = C4::Context->userenv;