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.
} else {
#check cardnumber is valid
my $nounique;
- if ( $data{'actionType'} eq "Add" ) {
+ if ( $op eq "add" ) {
$nounique = 0;
} else {
$nounique = 1;
push @errors, "ERROR_invalid_cardnumber";
}
}
+
if ($data{'sex'} eq '' && $categorycode ne "I"){
push @errors, "ERROR_gender";
$nok=1;
push @errors,"ERROR_surname";
$nok=1;
}
- if ($data{'address'} eq ''){
+ if ($data{'streetaddress'} eq ''){
push @errors, "ERROR_address";
$nok=1;
}
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);
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'}'
- 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) 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'}')";
+ $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);
$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');
-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;
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,
-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'},
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'},
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'},
dateformat => display_date_format(),