Bug 8129 - Quickslips not printing
[koha.git] / C4 / Members.pm
index 6161ac9..ce54952 100644 (file)
@@ -42,86 +42,87 @@ use Koha::DateUtils;
 our ($VERSION,@ISA,@EXPORT,@EXPORT_OK,$debug);
 
 BEGIN {
-       $VERSION = 3.02;
-       $debug = $ENV{DEBUG} || 0;
-       require Exporter;
-       @ISA = qw(Exporter);
-       #Get data
-       push @EXPORT, qw(
-               &Search
-               &GetMemberDetails
+    $VERSION = 3.02;
+    $debug = $ENV{DEBUG} || 0;
+    require Exporter;
+    @ISA = qw(Exporter);
+    #Get data
+    push @EXPORT, qw(
+        &Search
+        &GetMemberDetails
         &GetMemberRelatives
-               &GetMember
+        &GetMember
 
-               &GetGuarantees 
+        &GetGuarantees
 
-               &GetMemberIssuesAndFines
-               &GetPendingIssues
-               &GetAllIssues
+        &GetMemberIssuesAndFines
+        &GetPendingIssues
+        &GetAllIssues
 
-               &get_institutions 
-               &getzipnamecity 
-               &getidcity
+        &get_institutions
+        &getzipnamecity
+        &getidcity
 
-                &GetFirstValidEmailAddress
+        &GetFirstValidEmailAddress
 
-               &GetAge 
-               &GetCities 
-               &GetRoadTypes 
-               &GetRoadTypeDetails 
-               &GetSortDetails
-               &GetTitles
+        &GetAge
+        &GetCities
+        &GetRoadTypes
+        &GetRoadTypeDetails
+        &GetSortDetails
+        &GetTitles
 
-    &GetPatronImage
-    &PutPatronImage
-    &RmPatronImage
+        &GetPatronImage
+        &PutPatronImage
+        &RmPatronImage
 
-                &GetHideLostItemsPreference
+        &GetHideLostItemsPreference
 
-               &IsMemberBlocked
-               &GetMemberAccountRecords
-               &GetBorNotifyAcctRecord
+        &IsMemberBlocked
+        &GetMemberAccountRecords
+        &GetBorNotifyAcctRecord
 
-               &GetborCatFromCatType 
-               &GetBorrowercategory
-    &GetBorrowercategoryList
+        &GetborCatFromCatType
+        &GetBorrowercategory
+        GetBorrowerCategorycode
+        &GetBorrowercategoryList
 
-               &GetBorrowersWhoHaveNotBorrowedSince
-               &GetBorrowersWhoHaveNeverBorrowed
-               &GetBorrowersWithIssuesHistoryOlderThan
+        &GetBorrowersWhoHaveNotBorrowedSince
+        &GetBorrowersWhoHaveNeverBorrowed
+        &GetBorrowersWithIssuesHistoryOlderThan
 
-               &GetExpiryDate
+        &GetExpiryDate
 
-               &AddMessage
-               &DeleteMessage
-               &GetMessages
-               &GetMessagesCount
+        &AddMessage
+        &DeleteMessage
+        &GetMessages
+        &GetMessagesCount
 
         &IssueSlip
-               GetBorrowersWithEmail
-       );
+        GetBorrowersWithEmail
+    );
 
-       #Modify data
-       push @EXPORT, qw(
-               &ModMember
-               &changepassword
+    #Modify data
+    push @EXPORT, qw(
+        &ModMember
+        &changepassword
          &ModPrivacy
-       );
-
-       #Delete data
-       push @EXPORT, qw(
-               &DelMember
-       );
-
-       #Insert data
-       push @EXPORT, qw(
-               &AddMember
-               &add_member_orgs
-               &MoveMemberToDeleted
-               &ExtendMemberSubscriptionTo
-       );
-
-       #Check data
+    );
+
+    #Delete data
+    push @EXPORT, qw(
+        &DelMember
+    );
+
+    #Insert data
+    push @EXPORT, qw(
+        &AddMember
+        &add_member_orgs
+        &MoveMemberToDeleted
+        &ExtendMemberSubscriptionTo
+    );
+
+    #Check data
     push @EXPORT, qw(
         &checkuniquemember
         &checkuserpassword
@@ -329,7 +330,7 @@ sub GetMemberDetails {
         $sth->execute($cardnumber);
     }
     else {
-        return undef;
+        return;
     }
     my $borrower = $sth->fetchrow_hashref;
     my ($amount) = GetMemberAccountRecords( $borrowernumber);
@@ -581,7 +582,7 @@ sub GetMemberRelatives {
     $sth->execute($borrowernumber);
     my $data = $sth->fetchrow_arrayref();
     push @glist, $data->[0] if $data->[0];
-    my $guarantor = $data->[0] if $data->[0];
+    my $guarantor = $data->[0] ? $data->[0] : undef;
 
     # Getting guarantees
     $query = "SELECT borrowernumber FROM borrowers WHERE guarantorid=?";
@@ -846,7 +847,7 @@ mode, to avoid database corruption.
 use vars qw( @weightings );
 my @weightings = ( 8, 4, 6, 3, 5, 2, 1 );
 
-sub fixup_cardnumber ($) {
+sub fixup_cardnumber {
     my ($cardnumber) = @_;
     my $autonumber_members = C4::Context->boolean_preference('autoMemberNum') || 0;
 
@@ -997,7 +998,6 @@ sub GetPendingIssues {
     # must avoid biblioitems.* to prevent large marc and marcxml fields from killing performance
     # FIXME: namespace collision: each table has "timestamp" fields.  Which one is "timestamp" ?
     # FIXME: circ/ciculation.pl tries to sort by timestamp!
-    # FIXME: C4::Print::printslip tries to sort by timestamp!
     # FIXME: namespace collision: other collisions possible.
     # FIXME: most of this data isn't really being used by callers.
     my $query =
@@ -1184,6 +1184,11 @@ sub GetBorNotifyAcctRecord {
     $sth->execute( $borrowernumber, $notifyid );
     my $total = 0;
     while ( my $data = $sth->fetchrow_hashref ) {
+        if ( $data->{itemnumber} ) {
+            my $biblio = GetBiblioFromItemNumber( $data->{itemnumber} );
+            $data->{biblionumber} = $biblio->{biblionumber};
+            $data->{title}        = $biblio->{title};
+        }
         $acctlines[$numlines] = $data;
         $numlines++;
         $total += int(100 * $data->{'amountoutstanding'});
@@ -1409,10 +1414,6 @@ sub GetborCatFromCatType {
 Given the borrower's category code, the function returns the corresponding
 data hashref for a comprehensive information display.
 
-  $arrayref_hashref = &GetBorrowercategory;
-
-If no category code provided, the function returns all the categories.
-
 =cut
 
 sub GetBorrowercategory {
@@ -1433,6 +1434,26 @@ sub GetBorrowercategory {
     return;  
 }    # sub getborrowercategory
 
+
+=head2 GetBorrowerCategorycode
+
+    $categorycode = &GetBorrowerCategoryCode( $borrowernumber );
+
+Given the borrowernumber, the function returns the corresponding categorycode
+=cut
+
+sub GetBorrowerCategorycode {
+    my ( $borrowernumber ) = @_;
+    my $dbh = C4::Context->dbh;
+    my $sth = $dbh->prepare( qq{
+        SELECT categorycode
+        FROM borrowers
+        WHERE borrowernumber = ?
+    } );
+    $sth->execute( $borrowernumber );
+    return $sth->fetchrow;
+}
+
 =head2 GetBorrowercategoryList
 
   $arrayref_hashref = &GetBorrowercategoryList;
@@ -2258,14 +2279,14 @@ sub IssueSlip {
 
 #   return unless ( C4::Context->boolean_preference('printcirculationslips') );
 
-    my $today       = POSIX::strftime("%Y-%m-%d", localtime);
+    my $now       = POSIX::strftime("%Y-%m-%d", localtime);
 
     my $issueslist = GetPendingIssues($borrowernumber);
     foreach my $it (@$issueslist){
-        if ($it->{'issuedate'} eq $today) {
-            $it->{'today'} = 1;
+        if ((substr $it->{'issuedate'}, 0, 10) eq $now) {
+            $it->{'now'} = 1;
         }
-        elsif ($it->{'date_due'} le $today) {
+        elsif ((substr $it->{'date_due'}, 0, 10) le $now) {
             $it->{'overdue'} = 1;
         }
 
@@ -2281,7 +2302,7 @@ sub IssueSlip {
                 'biblio' => $_,
                 'items'  => $_,
                 'issues' => $_,
-            }, grep { $_->{'today'} } @issues ],
+            }, grep { $_->{'now'} } @issues ],
         );
     }
     else {