[Koha-patches] [PATCH] Bug Fixing 2485
Henri-Damien LAURENT
henridamien.laurent at biblibre.com
Thu Aug 7 18:19:35 CEST 2008
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
More information about the Koha-patches
mailing list