X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=members%2Fmemberentry.pl;h=62f2002f448620fc3bc2a6aeb68e8f342423332d;hb=8a87b560ac569b7f9503fa3e4aeed258526f1193;hp=678bbcd919f3a81c54eb1a64f44b290d601df441;hpb=fe850f87373bdb3a28976c6525c369b9652a52ef;p=koha.git diff --git a/members/memberentry.pl b/members/memberentry.pl index 678bbcd919..62f2002f44 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -52,12 +52,15 @@ my ($template, $loggedinuser, $cookie) debug => 1, }); -my $member=$input->param('bornum'); +my $borrowernumber=$input->param('borrowernumber'); my $actionType=$input->param('actionType') || ''; my $modify=$input->param('modify'); my $delete=$input->param('delete'); my $op=$input->param('op'); my $categorycode=$input->param('categorycode'); +my $destination=$input->param('destination'); + + my $nok; # if a add or modify is requested => check validity of data. @@ -76,7 +79,7 @@ if ($op eq 'add' or $op eq 'modify') { } else { #check cardnumber is valid my $nounique; - if ( $data{'actionType'} eq "Add" ) { + if ( $op eq "add" ) { $nounique = 0; } else { $nounique = 1; @@ -87,6 +90,7 @@ if ($op eq 'add' or $op eq 'modify') { push @errors, "ERROR_invalid_cardnumber"; } } + if ($data{'sex'} eq '' && $categorycode ne "I"){ push @errors, "ERROR_gender"; $nok=1; @@ -99,7 +103,7 @@ if ($op eq 'add' or $op eq 'modify') { push @errors,"ERROR_surname"; $nok=1; } - if ($data{'address'} eq ''){ + if ($data{'streetaddress'} eq ''){ push @errors, "ERROR_address"; $nok=1; } @@ -107,6 +111,15 @@ if ($op eq 'add' or $op eq 'modify') { push @errors, "ERROR_city"; $nok=1; } + if (C4::Context->preference("IndependantBranches")) { + my $userenv = C4::Context->userenv; + if ($userenv->{flags} == 1){ + unless ($userenv->{branch} eq $data{'branchcode'}){ + push @errors, "ERROR_branch"; + $nok=1; + } + } + } if ($nok) { foreach my $error (@errors) { $template->param( $error => 1); @@ -117,66 +130,38 @@ if ($op eq 'add' or $op eq 'modify') { my $sth=$dbh->prepare($query); $sth->execute($data{'borrowernumber'}); if (my $data2=$sth->fetchrow_hashref){ - $data{'dateofbirth'}=format_date_in_iso($data{'dateofbirth'}); - $data{'joining'}=format_date_in_iso($data{'joining'}); - $data{'expiry'}=format_date_in_iso($data{'expiry'}); - $query="update borrowers set title='$data{'title'}',expiry='$data{'expiry'}', - cardnumber='$data{'cardnumber'}',sex='$data{'sex'}',ethnotes='$data{'ethnicnotes'}', - streetaddress='$data{'address'}',faxnumber='$data{'faxnumber'}',firstname='$data{'firstname'}', - altnotes='$data{'altnotes'}',dateofbirth='$data{'dateofbirth'}',contactname='$data{'contactname'}', - emailaddress='$data{'emailaddress'}',dateenrolled='$data{'joining'}',streetcity='$data{'streetcity'}', - altrelationship='$data{'altrelationship'}',othernames='$data{'othernames'}',phoneday='$data{'phoneday'}', - categorycode='$data{'categorycode'}',city='$data{'city'}',area='$data{'area'}',phone='$data{'phone'}', - borrowernotes='$data{'borrowernotes'}',altphone='$data{'altphone'}',surname='$data{'surname'}', - initials='$data{'initials'}',physstreet='$data{'streetaddress'}',ethnicity='$data{'ethnicity'}', - gonenoaddress='$data{'gna'}',lost='$data{'lost'}',debarred='$data{'debarred'}', - textmessaging='$data{'textmessaging'}', branchcode = '$data{'branchcode'}', - zipcode = '$data{'zipcode'}',homezipcode='$data{'homezipcode'}', sort1='$data{'sort1'}', sort2='$data{'sort2'}' - where borrowernumber=$data{'borrowernumber'}"; + &modmember(%data); }else{ - $data{'dateofbirth'}=format_date_in_iso($data{'dateofbirth'}); - $data{'joining'}=format_date_in_iso($data{'joining'}); - $data{'expiry'}=format_date_in_iso($data{'expiry'}); - $data{'borrowernumber'}=NewBorrowerNumber(); - $query="insert into borrowers (title,expiry,cardnumber,sex,ethnotes,streetaddress,faxnumber, - firstname,altnotes,dateofbirth,contactname,emailaddress,textmessaging,dateenrolled,streetcity, - altrelationship,othernames,phoneday,categorycode,city,area,phone,borrowernotes,altphone,surname, - initials,ethnicity,physstreet,branchcode,zipcode,homezipcode,sort1,sort2) values ('$data{'title'}','$data{'expiry'}','$data{'cardnumber'}', - '$data{'sex'}','$data{'ethnotes'}','$data{'address'}','$data{'faxnumber'}', - '$data{'firstname'}','$data{'altnotes'}','$data{'dateofbirth'}','$data{'contactname'}','$data{'emailaddress'}','$data{'textmessaging'}', - '$data{'joining'}','$data{'streetcity'}','$data{'altrelationship'}','$data{'othernames'}', - '$data{'phoneday'}','$data{'categorycode'}','$data{'city'}','$data{'area'}','$data{'phone'}', - '$data{'borrowernotes'}','$data{'altphone'}','$data{'surname'}','$data{'initials'}', - '$data{'ethnicity'}','$data{'streetaddress'}','$data{'branchcode'}','$data{'zipcode'}','$data{'homezipcode'}','$data{'sort1'}','$data{'sort2'}')"; + $borrowernumber = &newmember(%data); } - # ok if its an adult (type) it may have borrowers that depend on it as a guarantor - # so when we update information for an adult we should check for guarantees and update the relevant part - # of their records, ie addresses and phone numbers - if ($data{'categorycode'} eq 'A' || $data{'categorycode'} eq 'W'){ - # is adult check guarantees; - my ($count,$guarantees)=findguarantees($data{'borrowernumber'}); - for (my $i=0;$i<$count;$i++){ - # FIXME - # It looks like the $i is only being returned to handle walking through - # the array, which is probably better done as a foreach loop. - # - my $guaquery="update borrowers set streetaddress='$data{'address'}',faxnumber='$data{'faxnumber'}', - streetcity='$data{'streetcity'}',phoneday='$data{'phoneday'}',city='$data{'city'}',area='$data{'area'}',phone='$data{'phone'}' - ,streetaddress='$data{'address'}' - where borrowernumber='$guarantees->[$i]->{'borrowernumber'}'"; - my $sth3=$dbh->prepare($guaquery); - $sth3->execute; - $sth3->finish; - } + + if($destination eq "circ"){ + print $input->redirect("/cgi-bin/koha/circ/circulation.pl?findborrower=$data{'cardnumber'}"); + } else { + print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$borrowernumber"); } - my $sth2=$dbh->prepare($query); - $sth2->execute; - $sth2->finish; - $sth->finish; - print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$data{'borrowernumber'}"); } + } } if ($delete){ - print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$member"); + my @errors; + my $nok; + my $branch =$input->param('branchcode'); + if (C4::Context->preference("IndependantBranches")) { + my $userenv = C4::Context->userenv; + if ($userenv->{flags} == 1){ + if ($userenv->{branch} eq $branch){ + print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$borrowernumber"); + } else { + push @errors, "ERROR_branch"; + $nok=1; + print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$borrowernumber"); + } + } else { + print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$borrowernumber"); + } + } else { + print $input->redirect("/cgi-bin/koha/deletemem.pl?member=$borrowernumber"); + } } else { # this else goes down the whole script if ($actionType eq 'Add'){ $template->param( addAction => 1); @@ -191,7 +176,17 @@ if ($delete){ $data->{$key}=$input->param($key); } } else { - $data=borrdata('',$member); + $data=borrdata('',$borrowernumber); + } + if (C4::Context->preference("IndependantBranches")) { + my $userenv = C4::Context->userenv; + unless ($userenv->{flags} == 1){ + warn "userenv=".$userenv->{'branch'}." member branch :".$data->{'branchcode'}; + unless ($userenv->{'branch'} eq $data->{'branchcode'}){ + print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$borrowernumber"); + exit 1; + } + } } if ($actionType eq 'Add'){ $template->param( updtype => 'I'); @@ -221,7 +216,7 @@ if ($delete){ -default=>$data->{'categorycode'}, -labels=>$labels); - my @relationships = ('workplace', 'relative','friend', 'neighbour'); + my @relationships = ('','workplace', 'relative','friend', 'neighbour'); my @relshipdata; while (@relationships) { my $relship = shift @relationships; @@ -266,10 +261,26 @@ if ($delete){ my @select_branch; my %select_branches; my $branches=getbranches(); + my $default; foreach my $branch (keys %$branches) { - push @select_branch, $branch; - $select_branches{$branch} = $branches->{$branch}->{'branchname'}; + if (C4::Context->preference("IndependantBranches")) { + my $userenv = C4::Context->userenv; + if ($userenv->{flags} == 1){ + push @select_branch, $branch; + $select_branches{$branch} = $branches->{$branch}->{'branchname'}; + $default = $data->{'branchcode'}; + } else { + push @select_branch, $branch if ($branch eq $userenv->{branch}); + $select_branches{$branch} = $branches->{$branch}->{'branchname'} if ($branch eq $userenv->{branch}); + $default = $userenv->{branch}; + } + } else { + push @select_branch, $branch; + $select_branches{$branch} = $branches->{$branch}->{'branchname'}; + $default = $data->{'branchcode'}; + } } + my $CGIbranch=CGI::scrolling_list( -name => 'branchcode', -id => 'branchcode', -values => \@select_branch, @@ -277,9 +288,25 @@ if ($delete){ -labels => \%select_branches, -size => 1, -multiple => 0 ); + + + my $CGIsort1 = buildCGIsort("Bsort1","sort1",$data->{'sort1'}); + if ($CGIsort1) { + $template->param(CGIsort1 => $CGIsort1); + } else { + $template->param( sort1 => $data->{'sort1'}); + } + my $CGIsort2 = buildCGIsort("Bsort2","sort2",$data->{'sort2'}); + if ($CGIsort2) { + $template->param(CGIsort2 =>$CGIsort2); + } else { + $template->param( sort2 => $data->{'sort2'}); + } + $template->param( actionType => $actionType, - member => $member, + destination => $destination, + borrowernumber => $borrowernumber, address => $data->{'streetaddress'}, firstname => $data->{'firstname'}, surname => $data->{'surname'}, @@ -287,7 +314,8 @@ if ($delete){ initials => $data->{'initials'}, ethcatpopup => $ethcatpopup, catcodepopup => $catcodepopup, - streetaddress => $data->{'physstreet'}, + streetaddress => $data->{'streetaddress'}, + physstreet => $data->{'physstreet'}, zipcode => $data->{'zipcode'}, streetcity => $data->{'streetcity'}, homezipcode => $data->{'homezipcode'}, @@ -304,12 +332,10 @@ if ($delete){ flagloop => \@flagdata, relshiploop => \@relshipdata, "title_".$data->{'title'} => " SELECTED ", - dateenrolled => $data->{'dateenrolled'}, - expiry => $data->{'expiry'}, + joining => format_date($data->{'dateenrolled'}), + expiry => format_date($data->{'expiry'}), cardnumber => $cardnumber, dateofbirth => $data->{'dateofbirth'}, - sort1 => $data->{'sort1'}, - sort2 => $data->{'sort2'}, dateformat => display_date_format(), modify => $modify, CGIbranch => $CGIbranch);