Bug 23382: Fix logic in C4::Circulation::CanBookBeIssued
It looks like over progressive rebases of bug 20912 a clause was lost within CanBookBeIssued such that a fatal error may be triggered if an item with no corresponding itemtype was passed into the routine. Additionally the we were passing a Koha::Library object to CalcDateDue rather than a branchcode which resulted in a different duedate being used in 'CanBookBeIssued' when compared to 'AddIssue'. Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
9063d05662
commit
f8e2c489cb
|
|
@ -707,8 +707,7 @@ sub CanBookBeIssued {
|
|||
unless ( $duedate ) {
|
||||
my $issuedate = $now->clone();
|
||||
|
||||
my $branch = $circ_library;
|
||||
$duedate = CalcDateDue( $issuedate, $effective_itemtype, $branch, $patron_unblessed );
|
||||
$duedate = CalcDateDue( $issuedate, $effective_itemtype, $circ_library->branchcode, $patron_unblessed );
|
||||
|
||||
# Offline circ calls AddIssue directly, doesn't run through here
|
||||
# So issuingimpossible should be ok.
|
||||
|
|
@ -998,16 +997,23 @@ sub CanBookBeIssued {
|
|||
if ( $patron->branchcode ne $userenv->{branch} );
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# CHECK IF THERE IS RENTAL CHARGES. RENTAL MUST BE CONFIRMED BY THE BORROWER
|
||||
#
|
||||
my $rentalConfirmation = C4::Context->preference("RentalFeesCheckoutConfirmation");
|
||||
|
||||
if ( $rentalConfirmation ){
|
||||
if ($rentalConfirmation) {
|
||||
my ($rentalCharge) = GetIssuingCharges( $item_object->itemnumber, $patron->borrowernumber );
|
||||
my $itemtype = Koha::ItemTypes->find( $item_object->itype ); # GetItem sets effective itemtype
|
||||
$rentalCharge += $fees->accumulate_rentalcharge({ from => dt_from_string(), to => $duedate });
|
||||
if ( $rentalCharge > 0 ){
|
||||
|
||||
my $itemtype_object = Koha::ItemTypes->find( $item_object->effective_itemtype );
|
||||
if ($itemtype_object) {
|
||||
my $accumulate_charge = $fees->accumulate_rentalcharge();
|
||||
if ( $accumulate_charge > 0 ) {
|
||||
$rentalCharge += $accumulate_charge;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $rentalCharge > 0 ) {
|
||||
$needsconfirmation{RENTALCHARGE} = $rentalCharge;
|
||||
}
|
||||
}
|
||||
|
|
@ -1475,7 +1481,7 @@ sub AddIssue {
|
|||
if ( $itemtype_object ) {
|
||||
my $accumulate_charge = $fees->accumulate_rentalcharge();
|
||||
if ( $accumulate_charge > 0 ) {
|
||||
AddIssuingCharge( $issue, $accumulate_charge, 'RENT_DAILY' ) if $accumulate_charge > 0;
|
||||
AddIssuingCharge( $issue, $accumulate_charge, 'RENT_DAILY' );
|
||||
$charge += $accumulate_charge;
|
||||
$item_unblessed->{charge} = $charge;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue