Tweaking holds screen, trying to get additional patron information to show up in...
[koha_fer] / members / memberentry.pl
index 9830972..e5fe443 100755 (executable)
@@ -101,11 +101,12 @@ $category_type="A" unless $category_type; # FIXME we should display a error mess
 
 my %newdata;
 if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
-  my @names=($borrower_data?keys %$borrower_data:$input->param());
-  foreach my $key (@names){
-    $newdata{$key}=$input->param($key)||'';
-    $newdata{$key}=~ s/\"/"/gg unless $key eq 'borrowernotes' or $key eq 'opacnote';
-  }
+    
+    my @names= $borrower_data && $op ne 'save' ? keys %$borrower_data : $input->param();
+    foreach my $key (@names) {
+        $newdata{$key} = $input->param($key) || '';
+        $newdata{$key} =~ s/\"/"/gg unless $key eq 'borrowernotes' or $key eq 'opacnote';
+    }
 
 
   # WARN : some tests must be done whatever the step, because the librarian can click on any tab.
@@ -134,8 +135,7 @@ if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
 
   # CHECKS step by step
 # STEP 1
-#   if ($step eq 3) {
-    if ($op eq 'add' && checkcardnumber($cardnumber)){ 
+    if ($op eq 'insert' && checkcardnumber($cardnumber)){ 
       push @errors, 'ERROR_cardnumber';
       $nok = 1;
     } 
@@ -157,10 +157,8 @@ if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
         $nok = 1;
       }
     }
-#   }
 
 # STEP 2
-#   if ($step eq 2) {
     if ( ($newdata{'userid'} eq '')){
       my $onefirstnameletter=substr($data{'firstname'},0,1);
       my $fivesurnameletter=substr($data{'surname'},0,5);
@@ -168,16 +166,14 @@ if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
     }
 #   }
 # STEP 3
-#   if ($step eq 3) {
   if ($op eq 'insert'){
-    # this value show if the login and password are been used
-    my $loginexist=checkuserpassword($borrowernumber,$data{'userid'},$data{'password'});
-    # test to know if u must save or create the borrowers
-    if ($loginexist) {
-      push @errors, "ERROR_login_exist";
-      $nok=1;
+         my $loginexist;
+         # Check if the userid is unique
+         if ( !Check_Userid($data{'userid'},$borrowernumber)) {
+                 push @errors, "ERROR_login_exist";
+                 $loginexist = 1;
+                 $nok=1;
     } else {
-      warn Data::Dumper::Dumper(%newdata);  
       $borrowernumber = &AddMember(%newdata);
         if ($data{'organisations'}){            
           # need to add the members organisations
@@ -215,14 +211,29 @@ if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
 # }
 
 if ($op eq 'save'){
-  # test to know if another user have the same password and same login    
-  &ModMember(%newdata);    
-  print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrowernumber");
+       # test to know if another user have the same password and same login    
+       my $loginexist;                                                                                                                                      
+       # Check if the userid is unique                                                                                                                      
+       if ( !Check_Userid($data{'userid'},$borrowernumber)) {
+               push @errors, "ERROR_login_exist";
+               $loginexist = 1;
+               $nok=1;
+       }
+       if (!$loginexist){
+               &ModMember(%newdata);    
+               print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrowernumber");
+       }
 }
 
 if ($delete){
-  print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$borrowernumber");
+       print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$borrowernumber");
 }
+if ($nok){
+  $op="add" if ($op eq "insert");
+  $op="modify" if ($op eq "save");
+  %data=%newdata; 
+  $template->param( updtype => ($op eq "insert"?'I':'M'),step_1=>1,step_2=>1,step_3=>1,allsteps=>1);
+} 
 #  else {  # this else goes down the whole script
   # retrieve previous values : either in DB or in CGI, in case of errors in values
 #   my $data;
@@ -240,16 +251,20 @@ if ($delete){
     }
   }
   if ($op eq 'add'){
-    $template->param( updtype => 'I',step_1=>1,step_2=>1,step_3=>1);
+    $template->param( updtype => 'I',step_1=>1,step_2=>1,step_3=>1,allsteps=>1);
   } 
-  if ($op eq "Modify")  {
+  if ($op eq "modify")  {
     $template->param( updtype => 'M');
-    $template->param( step_1=>1,step_2=>1,step_3=>1) unless $step;
+    $template->param( step_1=>1,step_2=>1,step_3=>1,allsteps=>1) unless $step;
   }
 # my $cardnumber=$data{'cardnumber'};
   $data{'cardnumber'}=fixup_cardnumber($data{'cardnumber'}) if $op eq 'add';
   if ($data{'sex'} eq 'F'){
     $template->param(female => 1);
+  } elsif ($data{'sex'} eq 'M'){
+     $template->param(male => 1);
+  } else {
+     $template->param(none => 1);
   }
   my ($categories,$labels)=ethnicitycategories();