MT2889 : Fix statistics' itemtype when item-level_itypes is ON
authorMatthias Meusburger <matthias.meusburger@biblibre.com>
Thu, 11 Mar 2010 14:28:27 +0000 (15:28 +0100)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Tue, 16 Mar 2010 11:37:59 +0000 (12:37 +0100)
C4/Biblio.pm
C4/Circulation.pm

index 1866718..883678a 100755 (executable)
@@ -646,8 +646,10 @@ sub GetBiblioItemData {
         FROM biblio LEFT JOIN biblioitems on biblio.biblionumber=biblioitems.biblionumber ";
     unless(C4::Context->preference('item-level_itypes')) { 
         $query .= "LEFT JOIN itemtypes on biblioitems.itemtype=itemtypes.itemtype ";
-    }    
-    $query .= " WHERE biblioitemnumber = ? ";
+    } else {
+       $query .= "LEFT JOIN items on biblio.biblionumber=items.biblionumber ";
+    }
+    $query .= " WHERE biblioitems.biblioitemnumber = ? ";
     my $sth       =  $dbh->prepare($query);
     my $data;
     $sth->execute($biblioitemnumber);
index 6fce6dc..0b0a9b2 100644 (file)
@@ -897,7 +897,7 @@ sub AddIssue {
                
                # get biblioinformation for this item
                my $biblio = GetBiblioFromItemNumber($item->{itemnumber});
-               
+               my $itype = ( C4::Context->preference('item-level_itypes') ) ? $biblio->{'itype'} : $biblio->{'itemtype'};
                #
                # check if we just renew the issue.
                #
@@ -978,7 +978,6 @@ sub AddIssue {
                 VALUES (?,?,?,?,?)"
           );
         unless ($datedue) {
-            my $itype = ( C4::Context->preference('item-level_itypes') ) ? $biblio->{'itype'} : $biblio->{'itemtype'};
             my $loanlength = GetLoanLength( $borrower->{'categorycode'}, $itype, $branch );
             $datedue = CalcDateDue( C4::Dates->new( $issuedate, 'iso' ), $loanlength, $branch, $borrower );
 
@@ -1021,7 +1020,7 @@ sub AddIssue {
             C4::Context->userenv->{'branch'},
             'issue', $charge,
             ($sipmode ? "SIP-$sipmode" : ''), $item->{'itemnumber'},
-            $item->{'itype'}, $borrower->{'borrowernumber'}
+            $itype, $borrower->{'borrowernumber'}
         );
     }
     
@@ -1380,7 +1379,8 @@ sub AddReturn {
     my $itemnumber = GetItemnumberFromBarcode($barcode);
     my $iteminformation = GetItemIssue( $itemnumber );
     my $biblio = GetBiblioItemData($iteminformation->{'biblioitemnumber'});
-#     use Data::Dumper;warn Data::Dumper::Dumper($iteminformation);  
+    my $itype = ( C4::Context->preference('item-level_itypes') ) ? $biblio->{'itype'} : $biblio->{'itemtype'};     
+
     unless ( $iteminformation->{'itemnumber'} or $itemnumber) {
         $messages->{'BadBarcode'} = $barcode;
         $doreturn = 0;
@@ -1501,7 +1501,7 @@ sub AddReturn {
         UpdateStats(
             $branch, 'return', '0', '',
             $iteminformation->{'itemnumber'},
-            $biblio->{'itemtype'},
+            $itype,
             $borrower->{'borrowernumber'}
         );