View | Details | Raw Unified | Return to bug 17578
Collapse All | Expand All

(-)a/C4/Circulation.pm (-4 / +6 lines)
Lines 725-738 sub CanBookBeIssued { Link Here
725
        ModDateLastSeen( $item->{'itemnumber'} );
725
        ModDateLastSeen( $item->{'itemnumber'} );
726
        return( { STATS => 1 }, {});
726
        return( { STATS => 1 }, {});
727
    }
727
    }
728
    if ( ref $borrower->{flags} ) {
728
729
        if ( $borrower->{flags}->{GNA} ) {
729
    my $flags = C4::Members::patronflags( $borrower );
730
    if ( ref $flags ) {
731
        if ( $flags->{GNA} ) {
730
            $issuingimpossible{GNA} = 1;
732
            $issuingimpossible{GNA} = 1;
731
        }
733
        }
732
        if ( $borrower->{flags}->{'LOST'} ) {
734
        if ( $flags->{'LOST'} ) {
733
            $issuingimpossible{CARD_LOST} = 1;
735
            $issuingimpossible{CARD_LOST} = 1;
734
        }
736
        }
735
        if ( $borrower->{flags}->{'DBARRED'} ) {
737
        if ( $flags->{'DBARRED'} ) {
736
            $issuingimpossible{DEBARRED} = 1;
738
            $issuingimpossible{DEBARRED} = 1;
737
        }
739
        }
738
    }
740
    }
(-)a/C4/ILSDI/Services.pm (-3 / +3 lines)
Lines 361-374 sub GetPatronInfo { Link Here
361
361
362
    # Get Member details
362
    # Get Member details
363
    my $borrowernumber = $cgi->param('patron_id');
363
    my $borrowernumber = $cgi->param('patron_id');
364
    my $borrower = GetMemberDetails( $borrowernumber );
364
    my $borrower = GetMember( borrowernumber => $borrowernumber );
365
    return { code => 'PatronNotFound' } unless $$borrower{borrowernumber};
365
    return { code => 'PatronNotFound' } unless $$borrower{borrowernumber};
366
366
367
    # Cleaning the borrower hashref
367
    # Cleaning the borrower hashref
368
    $borrower->{'charges'}    = $borrower->{'flags'}->{'CHARGES'}->{'amount'};
368
    my $flags = C4::Members::patronflags( $borrower );
369
    $borrower->{'charges'}    = $flags>{'CHARGES'}->{'amount'};
369
    my $library = Koha::Libraries->find( $borrower->{branchcode} );
370
    my $library = Koha::Libraries->find( $borrower->{branchcode} );
370
    $borrower->{'branchname'} = $library ? $library->branchname : '';
371
    $borrower->{'branchname'} = $library ? $library->branchname : '';
371
    delete $borrower->{'flags'};
372
    delete $borrower->{'userid'};
372
    delete $borrower->{'userid'};
373
    delete $borrower->{'password'};
373
    delete $borrower->{'password'};
374
374
(-)a/C4/Members.pm (-16 lines)
Lines 137-154 number. Link Here
137
137
138
C<$borrower> is a reference-to-hash whose keys are the fields of the
138
C<$borrower> is a reference-to-hash whose keys are the fields of the
139
borrowers table in the Koha database. In addition,
139
borrowers table in the Koha database. In addition,
140
C<$borrower-E<gt>{flags}> is a hash giving more detailed information
141
about the patron. Its keys act as flags :
142
143
    if $borrower->{flags}->{LOST} {
144
        # Patron's card was reported lost
145
    }
146
147
If the state of a flag means that the patron should not be
148
allowed to borrow any more books, then it will have a C<noissues> key
149
with a true value.
150
151
See patronflags for more details.
152
140
153
=cut
141
=cut
154
142
Lines 189-197 sub GetMemberDetails { Link Here
189
    my $borrower = $sth->fetchrow_hashref;
177
    my $borrower = $sth->fetchrow_hashref;
190
    return unless $borrower;
178
    return unless $borrower;
191
179
192
    my $flags = patronflags( $borrower);
193
    $borrower->{'flags'}     = $flags;
194
195
    $borrower->{'is_expired'} = 0;
180
    $borrower->{'is_expired'} = 0;
196
    $borrower->{'is_expired'} = 1 if
181
    $borrower->{'is_expired'} = 1 if
197
      defined($borrower->{dateexpiry}) &&
182
      defined($borrower->{dateexpiry}) &&
Lines 500-506 sub ModMember { Link Here
500
    my $schema = Koha::Database->new()->schema;
485
    my $schema = Koha::Database->new()->schema;
501
    my @columns = $schema->source('Borrower')->columns;
486
    my @columns = $schema->source('Borrower')->columns;
502
    my $new_borrower = { map { join(' ', @columns) =~ /$_/ ? ( $_ => $data{$_} ) : () } keys(%data) };
487
    my $new_borrower = { map { join(' ', @columns) =~ /$_/ ? ( $_ => $data{$_} ) : () } keys(%data) };
503
    delete $new_borrower->{flags};
504
488
505
    $new_borrower->{dateofbirth}     ||= undef if exists $new_borrower->{dateofbirth};
489
    $new_borrower->{dateofbirth}     ||= undef if exists $new_borrower->{dateofbirth};
506
    $new_borrower->{dateenrolled}    ||= undef if exists $new_borrower->{dateenrolled};
490
    $new_borrower->{dateenrolled}    ||= undef if exists $new_borrower->{dateenrolled};
(-)a/C4/SIP/ILS/Patron.pm (-3 / +3 lines)
Lines 40-48 sub new { Link Here
40
    $kp = GetMemberDetails($kp->{borrowernumber});
40
    $kp = GetMemberDetails($kp->{borrowernumber});
41
    $debug and warn "new Patron (GetMemberDetails): " . Dumper($kp);
41
    $debug and warn "new Patron (GetMemberDetails): " . Dumper($kp);
42
    my $pw        = $kp->{password};
42
    my $pw        = $kp->{password};
43
    my $flags     = $kp->{flags};     # or warn "Warning: No flags from patron object for '$patron_id'";
43
    my $flags     = C4::Members::patronflags( $kp );
44
    my $debarred  = defined($kp->{flags}->{DBARRED});
44
    my $debarred  = defined($flags->{DBARRED});
45
    $debug and warn sprintf("Debarred = %s : ", ($debarred||'undef')) . Dumper(%{$kp->{flags}});
45
    $debug and warn sprintf("Debarred = %s : ", ($debarred||'undef')) . Dumper(%$flags);
46
    my ($day, $month, $year) = (localtime)[3,4,5];
46
    my ($day, $month, $year) = (localtime)[3,4,5];
47
    my $today    = sprintf '%04d-%02d-%02d', $year+1900, $month+1, $day;
47
    my $today    = sprintf '%04d-%02d-%02d', $year+1900, $month+1, $day;
48
    my $expired  = ($today gt $kp->{dateexpiry}) ? 1 : 0;
48
    my $expired  = ($today gt $kp->{dateexpiry}) ? 1 : 0;
(-)a/circ/circulation.pl (-2 / +2 lines)
Lines 472-478 if ($borrowernumber) { Link Here
472
}
472
}
473
473
474
#title
474
#title
475
my $flags = $borrower->{'flags'};
475
my $flags = $borrower ? C4::Members::patronflags( $borrower ) : {};
476
foreach my $flag ( sort keys %$flags ) {
476
foreach my $flag ( sort keys %$flags ) {
477
    $flags->{$flag}->{'message'} =~ s#\n#<br />#g;
477
    $flags->{$flag}->{'message'} =~ s#\n#<br />#g;
478
    if ( $flags->{$flag}->{'noissues'} ) {
478
    if ( $flags->{$flag}->{'noissues'} ) {
Lines 555-561 foreach my $flag ( sort keys %$flags ) { Link Here
555
    }
555
    }
556
}
556
}
557
557
558
my $amountold = $borrower->{flags} ? $borrower->{flags}->{'CHARGES'}->{'message'} || 0 : 0;
558
my $amountold = $flags ? $flags->{'CHARGES'}->{'message'} || 0 : 0;
559
$amountold =~ s/^.*\$//;    # remove upto the $, if any
559
$amountold =~ s/^.*\$//;    # remove upto the $, if any
560
560
561
my ( $total, $accts, $numaccts) = GetMemberAccountRecords( $borrowernumber );
561
my ( $total, $accts, $numaccts) = GetMemberAccountRecords( $borrowernumber );
(-)a/members/deletemem.pl (-2 / +2 lines)
Lines 76-83 if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preferen Link Here
76
my $issues = GetPendingIssues($member);     # FIXME: wasteful call when really, we only want the count
76
my $issues = GetPendingIssues($member);     # FIXME: wasteful call when really, we only want the count
77
my $countissues = scalar(@$issues);
77
my $countissues = scalar(@$issues);
78
78
79
my ($bor)=GetMemberDetails($member,'');
79
my $bor = C4::Members::GetMember( borrowernumber => $member );
80
my $flags=$bor->{flags};
80
my $flags = C4::Members::patronflags( $bor );
81
my $userenv = C4::Context->userenv;
81
my $userenv = C4::Context->userenv;
82
82
83
 
83
 
(-)a/members/member-flags.pl (-2 / +1 lines)
Lines 86-92 if ($input->param('newflags')) { Link Here
86
    print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member");
86
    print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member");
87
} else {
87
} else {
88
88
89
    my $flags = $bor->{'flags'};
89
    my $flags = C4::Members::patronflags( $bor );
90
    my $accessflags;
90
    my $accessflags;
91
    my $dbh = C4::Context->dbh();
91
    my $dbh = C4::Context->dbh();
92
    # FIXME This needs to be improved to avoid doing the same query
92
    # FIXME This needs to be improved to avoid doing the same query
93
- 

Return to bug 17578