Using Preference C4::Context->preference('item_level_itype') in order to determine itemtype information before passing it to statistics. --- C4/Circulation.pm | 73 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 43 insertions(+), 30 deletions(-)
diff --git a/C4/Circulation.pm b/C4/Circulation.pm index ca52e27..24f28b0 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -649,7 +649,9 @@ sub CanBookBeIssued { my $item = GetItem(GetItemnumberFromBarcode( $barcode )); my $issue = GetItemIssue($item->{itemnumber}); my $biblioitem = GetBiblioItemData($item->{biblioitemnumber}); - $item->{'itemtype'}=$item->{'itype'}; + my $type = (C4::Context->preference('item-level_itypes')) + ? $item->{'itype'} # item-level + : $biblioitem->{'itemtype'}; # biblio-level my $dbh = C4::Context->dbh; # @@ -662,7 +664,7 @@ sub CanBookBeIssued { # if ( $borrower->{'category_type'} eq 'X' && ( $item->{barcode} )) { # stats only borrower -- add entry to statistics table, and return issuingimpossible{STATS} = 1 . - &UpdateStats(C4::Context->userenv->{'branch'},'localuse','','',$item->{'itemnumber'},$item->{'itemtype'},$borrower->{'borrowernumber'}); + &UpdateStats(C4::Context->userenv->{'branch'},'localuse','','',$item->{'itemnumber'},$type,$borrower->{'borrowernumber'}); return( { STATS => 1 }, {}); } if ( $borrower->{flags}->{GNA} ) { @@ -847,30 +849,33 @@ AddIssue does the following things : sub AddIssue { my ( $borrower, $barcode, $date, $cancelreserve ) = @_; my $dbh = C4::Context->dbh; - my $barcodecheck=CheckValidBarcode($barcode); - if ($borrower and $barcode and $barcodecheck ne '0'){ - # find which item we issue - my $item = GetItem('', $barcode) or return undef; # if we don't get an Item, abort. - my $datedue; - my $branch; - # Get which branchcode we need - if (C4::Context->preference('CircControl') eq 'PickupLibrary'){ - $branch = C4::Context->userenv->{'branch'}; - } - elsif (C4::Context->preference('CircControl') eq 'PatronLibrary'){ - $branch = $borrower->{'branchcode'}; - } - else { - # items home library - $branch = $item->{'homebranch'}; - } - - # get actual issuing if there is one - my $actualissue = GetItemIssue( $item->{itemnumber}); - - # get biblioinformation for this item - my $biblio = GetBiblioFromItemNumber($item->{itemnumber}); - + my $barcodecheck=CheckValidBarcode($barcode); + if ($borrower and $barcode and $barcodecheck ne '0'){ + # find which item we issue + my $item = GetItem('', $barcode) or return undef; # if we don't get an Item, abort. + my $datedue; + my $branch; + # Get which branchcode we need + if (C4::Context->preference('CircControl') eq 'PickupLibrary'){ + $branch = C4::Context->userenv->{'branch'}; + } + elsif (C4::Context->preference('CircControl') eq 'PatronLibrary'){ + $branch = $borrower->{'branchcode'}; + } + else { + # items home library + $branch = $item->{'homebranch'}; + } + + # get actual issuing if there is one + my $actualissue = GetItemIssue( $item->{itemnumber}); + + # get biblioinformation for this item + my $biblio = GetBiblioFromItemNumber($item->{itemnumber}); + my $type = (C4::Context->preference('item-level_itypes')) + ? $item->{'itype'} # item-level + : $item->{'itemtype'}; # biblio-level + # # check if we just renew the issue. # @@ -1012,7 +1017,7 @@ sub AddIssue { C4::Context->userenv->{'branch'}, 'issue', $charge, '', $item->{'itemnumber'}, - $item->{'itype'}, $borrower->{'borrowernumber'} + $type, $borrower->{'borrowernumber'} ); } @@ -1293,6 +1298,7 @@ sub AddReturn { # get information on item my $iteminformation = GetItemIssue( GetItemnumberFromBarcode($barcode)); my $biblio = GetBiblioItemData($iteminformation->{'biblioitemnumber'}); + # use Data::Dumper;warn Data::Dumper::Dumper($iteminformation); unless ($iteminformation->{'itemnumber'} ) { $messages->{'BadBarcode'} = $barcode; @@ -1336,7 +1342,7 @@ sub AddReturn { # case of a return of document (deal with issues and holdingbranch) - if ($doreturn) { + if ($doreturn) { my $circControlBranch; if($dropbox) { # don't allow dropbox mode to create an invalid entry in issues (issuedate > returndate) FIXME: actually checks eq, not gt @@ -1416,12 +1422,15 @@ sub AddReturn { $reserveDone = 1; } + my $type = (C4::Context->preference('item-level_itypes')) + ? $iteminformation->{'itype'} # item-level + : $biblio->{'itemtype'}; # biblio-level # update stats? # Record the fact that this book was returned. UpdateStats( $branch, 'return', '0', '', $iteminformation->{'itemnumber'}, - $biblio->{'itemtype'}, + $type, $borrower->{'borrowernumber'} ); @@ -1976,8 +1985,12 @@ sub AddRenewal { 'Rent', $charge, $itemnumber ); $sth->finish; } + my $itemtype = (C4::Context->preference('item-level_itypes')) + ? $item->{'itype'} # item-level + : $biblio->{'itemtype'}; # biblio-level + # Log the renewal - UpdateStats( $branch, 'renew', $charge, '', $itemnumber, $item->{itype}, $borrowernumber); + UpdateStats( $branch, 'renew', $charge, '', $itemnumber, $itemtype, $borrowernumber); } sub GetRenewCount { -- 1.5.4.3 _______________________________________________ Koha-patches mailing list Koha-patches@lists.koha.org http://lists.koha.org/mailman/listinfo/koha-patches