Bug 2725: Fixes uppercasesurnames preference.
[koha.git] / members / memberentry.pl
index c99dcb9..c121460 100755 (executable)
@@ -69,7 +69,6 @@ my $op             = $input->param('op');
 my $destination    = $input->param('destination');
 my $cardnumber     = $input->param('cardnumber');
 my $check_member   = $input->param('check_member');
-my $name_city      = $input->param('name_city');
 my $nodouble       = $input->param('nodouble');
 $nodouble = 1 if $op eq 'modify'; # FIXME hack to represent fact that if we're
                                   # modifying an existing patron, it ipso facto
@@ -247,6 +246,11 @@ if ($op eq 'save' || $op eq 'insert'){
          $template->param('ERROR_age_limitations' => "$low to $high");
     }
   }
+  
+    if(C4::Context->preference('uppercasesurnames')) {
+        $newdata{'surname'} = uc($newdata{'surname'});
+    }
+
   if (C4::Context->preference("IndependantBranches")) {
     if ($userenv && $userenv->{flags} % 2 != 1){
       $debug and print STDERR "  $newdata{'branchcode'} : ".$userenv->{flags}.":".$userenv->{branch};
@@ -336,7 +340,10 @@ if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
                        delete $newdata{'password'};
                        delete $newdata{'userid'};
                }
-               &ModMember(%newdata);
+               &ModMember(%newdata) unless scalar(keys %newdata) <= 1; # bug 4508 - avoid crash if we're not
+                                                                # updating any columns in the borrowers table,
+                                                                # which can happen if we're only editing the
+                                                                # patron attributes or messaging preferences sections
         if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) {
             C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes);
         }
@@ -434,15 +441,20 @@ $select_city=getidcity($data{'city'}) if defined $guarantorid and ($guarantorid
 if (!defined($select_city) or $select_city eq '' ){
        $default_city = &getidcity($data{'city'});
 }
-my($cityid);
-($cityid,$name_city)=GetCities();
-$template->param( city_cgipopup => 1) if ($cityid );
-my $citypopup = CGI::popup_menu(-name=>'select_city',
-        -id => 'select_city',
-        '-values' =>$cityid,
-        -labels=>$name_city,
-        -default=>$default_city,
-        );  
+
+my $city_arrayref = GetCities();
+if (@{$city_arrayref} ) {
+    $template->param( city_cgipopup => 1);
+
+    if ($default_city) { # flag the current or default val
+        for my $city ( @{$city_arrayref} ) {
+            if ($default_city == $city->{cityid}) {
+                $city->{selected} = 1;
+                last;
+            }
+        }
+    }
+}
   
 my $default_roadtype;
 $default_roadtype=$data{'streettype'} ;
@@ -628,7 +640,7 @@ $template->param(
   guarantorid => (defined($borrower_data->{'guarantorid'})) ? $borrower_data->{'guarantorid'} : $guarantorid,
   ethcatpopup => $ethcatpopup,
   relshiploop => \@relshipdata,
-  citypopup => $citypopup,
+  city_loop => $city_arrayref,
   roadpopup => $roadpopup,  
   borrotitlepopup => $borrotitlepopup,
   guarantorinfo   => $guarantorinfo,