X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FMembers.pm;h=508618d45bce1397847dad0124c943af06c6daea;hb=9a32fe85c27196de96770eea8f7a34bd24d706a6;hp=3c95f883793f8b75dfe7c61976a753dddfa94242;hpb=fb1e47e43584fe8459b4f87b444f75d1b3b6541e;p=koha.git diff --git a/C4/Members.pm b/C4/Members.pm index 3c95f88379..508618d45b 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -29,7 +29,7 @@ use C4::Log; # logaction use C4::Overdues; use C4::Reserves; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); +our ($VERSION,@ISA,@EXPORT,@EXPORT_OK); $VERSION = do { my @v = '$Revision$' =~ /\d+/g; shift(@v) . "." . join( "_", map { sprintf "%03d", $_ } @v ); }; @@ -86,7 +86,6 @@ push @EXPORT, qw( &GetBorrowersWhoHaveNotBorrowedSince &GetBorrowersWhoHaveNeverBorrowed &GetBorrowersWithIssuesHistoryOlderThan - &GetMembersFromSurname &GetExpiryDate ); @@ -117,7 +116,9 @@ push @EXPORT, qw( &fixEthnicity ðnicitycategories &fixup_cardnumber + &checkcardnumber ); + =item SearchMember ($count, $borrowers) = &SearchMember($searchstring, $type,$category_type); @@ -440,8 +441,7 @@ sub patronflags { } $flags{'ODUES'} = \%flaginfo; } - my @itemswaiting = - GetReservesFromBorrowernumber( $patroninformation->{'borrowernumber'},'W' ); + my @itemswaiting = GetReservesFromBorrowernumber( $patroninformation->{'borrowernumber'},'W' ); my $nowaiting = scalar @itemswaiting; if ( $nowaiting > 0 ) { my %flaginfo; @@ -994,14 +994,28 @@ C<$issues>. sub GetPendingIssues { my ($borrowernumber) = @_; my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare( - "Select * from issues,biblio,items where borrowernumber=? - and items.itemnumber=issues.itemnumber - and items.biblionumber=biblio.biblionumber - and issues.returndate is NULL order by date_due" + "SELECT * FROM issues + LEFT JOIN items ON issues.itemnumber=items.itemnumber + LEFT JOIN biblio ON items.biblionumber=biblio.biblionumber + LEFT JOIN biblioitems ON items.biblioitemnumber=biblioitems.biblioitemnumber + WHERE + borrowernumber=? + AND returndate IS NULL + ORDER BY issues.date_due" ); $sth->execute($borrowernumber); my $data = $sth->fetchall_arrayref({}); + my $today = POSIX::strftime("%Y%m%d", localtime); + foreach( @$data ) { + my $datedue = $_->{'date_due'}; + $datedue =~ s/-//g; + if ( $datedue < $today ) { + $_->{'overdue'} = 1; + } + } + $sth->finish; return ( scalar(@$data), $data ); } @@ -1221,6 +1235,22 @@ sub checkuniquemember { } } +sub checkcardnumber { + my ($cardnumber) = @_; + my $dbh = C4::Context->dbh; + my $query = "SELECT * FROM borrowers WHERE cardnumber=?"; + my $sth = $dbh->prepare($query); + $sth->execute($cardnumber); + if (my $data= $sth->fetchrow_hashref()){ + return 1; + } + else { + return 0; + } + $sth->finish(); +} + + =head2 getzipnamecity (OUEST-PROVENCE) take all info from table city for the fields city and zip @@ -1484,8 +1514,6 @@ sub add_member_orgs { } # sub add_member_orgs -=head2 GetMembersFromSurname - =head2 GetCities (OUEST-PROVENCE) ($id_cityarrayref, $city_hashref) = &GetCities(); @@ -1595,6 +1623,7 @@ This function remove directly a borrower whitout writing it on deleteborrower. sub DelMember { my $dbh = C4::Context->dbh; my $borrowernumber = shift; + warn "in delmember with $borrowernumber"; return unless $borrowernumber; # borrowernumber is mandatory. my $query = qq|DELETE @@ -1608,7 +1637,9 @@ sub DelMember { FROM borrowers WHERE borrowernumber = ? "; - my $sth = $dbh->prepare($query); + $sth = $dbh->prepare($query); + $sth->execute($borrowernumber); + $sth->finish; &logaction(C4::Context->userenv->{'number'},"MEMBERS","DELETE",$borrowernumber,"") if C4::Context->preference("BorrowersLog"); return $sth->rows; @@ -1626,7 +1657,7 @@ sub ExtendMemberSubscriptionTo { my $dbh = C4::Context->dbh; unless ($date){ $date=POSIX::strftime("%Y-%m-%d",localtime(time)); - my $borrower = GetBorrower($borrowerid,'borrowernumber'); + my $borrower = GetMember($borrowerid,'borrowernumber'); $date = GetExpiryDate( $borrower->{'categorycode'}, $date ); } my $sth = $dbh->do(<