(bug #3284) fix borrower deletion in independantbranches mode
[koha.git] / members / deletemem.pl
index 33f35ae..a1694f6 100755 (executable)
@@ -1,11 +1,9 @@
 #!/usr/bin/perl
 
-
 #script to delete items
 #written 2/5/00
 #by chris@katipo.co.nz
 
-
 # Copyright 2000-2002 Katipo Communications
 #
 # This file is part of Koha.
@@ -24,6 +22,7 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+# use warnings; # FIXME
 
 use CGI;
 use C4::Context;
@@ -31,11 +30,8 @@ use C4::Output;
 use C4::Auth;
 use C4::Members;
 
-
 my $input = new CGI;
 
-my $flagsrequired;
-$flagsrequired->{borrowers}=1;
 my ($template, $borrowernumber, $cookie)
                 = get_template_and_user({template_name => "members/deletemem.tmpl",
                                         query => $input,
@@ -47,34 +43,33 @@ my ($template, $borrowernumber, $cookie)
 
 #print $input->header;
 my $member=$input->param('member');
-my %member2;
-$member2{'borrowernumber'}=$member;
-my ($countissues,$issues)=GetPendingIssues($member);
+my $issues = GetPendingIssues($member);     # FIXME: wasteful call when really, we only want the count
+my $countissues = scalar(@$issues);
 
 my ($bor)=GetMemberDetails($member,'');
 my $flags=$bor->{flags};
 my $userenv = C4::Context->userenv;
 if ($bor->{category_type} eq "S") {
-    unless(C4::Auth::haspermission(undef,$userenv->{'id'},{'staffaccess'=>1})) {
+    unless(C4::Auth::haspermission($userenv->{'id'},{'staffaccess'=>1})) {
         print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE_STAFF");
         exit 1;
     }
 }
 
 if (C4::Context->preference("IndependantBranches")) {
-    unless ($userenv->{flags} == 1){
-        unless ($userenv->{'branch'} eq $bor->{'branchcode'}){
-#           warn "user ".$userenv->{'branch'} ."borrower :". $bor->{'branchcode'};
+    my $userenv = C4::Context->userenv;
+    if ($userenv->{flags} != 1 && $bor->{'branchcode'}){
+        unless ($userenv->{branch} eq $bor->{'branchcode'}){
             print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE_OTHERLIBRARY");
-            exit 1;
+            exit;
         }
     }
 }
+
 my $dbh = C4::Context->dbh;
 my $sth=$dbh->prepare("Select * from borrowers where guarantorid=?");
 $sth->execute($member);
 my $data=$sth->fetchrow_hashref;
-$sth->finish;
 if ($countissues > 0 or $flags->{'CHARGES'}  or $data->{'borrowernumber'}){
     #   print $input->header;
     $template->param(borrowernumber => $member);
@@ -84,7 +79,7 @@ if ($countissues > 0 or $flags->{'CHARGES'}  or $data->{'borrowernumber'}){
     if ($flags->{'CHARGES'} ne '') {
         $template->param(charges => $flags->{'CHARGES'}->{'amount'});
     }
-    if ($data ne '') {
+    if ($data) {
         $template->param(guarantees => 1);
     }
 output_html_with_http_headers $input, $cookie, $template->output;