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.
# 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;
}
$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);
}
# }
# 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
# }
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;
}
}
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();