@@ -, +, @@ --- C4/Circulation.pm | 8 ++++---- circ/returns.pl | 12 +++++------- t/db_dependent/Circulation.t | 35 ++++------------------------------- 3 files changed, 13 insertions(+), 42 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -844,10 +844,10 @@ sub CanBookBeIssued { } # Additional Materials Check - if ( C4::Context->preference("CircConfirmItemParts") ) { - if ( $item_object->materials ) { - $needsconfirmation{additional_materials} = $item_object->materials; - } + if ( C4::Context->preference("CircConfirmItemParts") + && $item_object->materials ) + { + $needsconfirmation{additional_materials} = $item_object->materials; } # --- a/circ/returns.pl +++ a/circ/returns.pl @@ -296,17 +296,15 @@ if ($barcode) { my $return_date = $dropboxmode ? $dropboxdate : $return_date_override_dt; # Block return if multi-part and confirm has not been received - my $needs_confirm = 0; - if ( C4::Context->preference("CircConfirmItemParts") ) { - if ( $item->materials && !$query->param('multiple_confirm') ) { - $needs_confirm = 1; - } - } + my $needs_confirm = + C4::Context->preference("CircConfirmItemParts") + && $item->materials + && !$query->param('multiple_confirm'); # do the return ( $returned, $messages, $issue, $borrower ) = AddReturn( $barcode, $userenv_branch, $exemptfine, $return_date ) - unless $needs_confirm; + unless $needs_confirm; if ($returned) { my $time_now = dt_from_string()->truncate( to => 'minute'); --- a/t/db_dependent/Circulation.t +++ a/t/db_dependent/Circulation.t @@ -3986,8 +3986,6 @@ subtest 'CanBookBeIssued & CircConfirmItemParts' => sub { t::lib::Mocks::mock_preference('CircConfirmItemParts', 1); - my $library = - $builder->build_object( { class => 'Koha::Libraries' } )->store; my $patron = $builder->build_object( { class => 'Koha::Patrons', @@ -3995,40 +3993,15 @@ subtest 'CanBookBeIssued & CircConfirmItemParts' => sub { } )->store; - my $itemtype = $builder->build_object( - { - class => 'Koha::ItemTypes', - value => { - notforloan => 0, - rentalcharge => 0, - rentalcharge_daily => 0 - } - } - ); - - my $biblioitem = $builder->build( { source => 'Biblioitem' } ); - my $item = $builder->build_object( + my $item = $builder->build_sample_item( { - class => 'Koha::Items', - value => { - homebranch => $library->id, - holdingbranch => $library->id, - notforloan => 0, - itemlost => 0, - withdrawn => 0, - itype => $itemtype->id, - biblionumber => $biblioitem->{biblionumber}, - biblioitemnumber => $biblioitem->{biblioitemnumber}, - materials => 'includes DVD', - } + materials => 'includes DVD', } )->store; - my ( $issuingimpossible, $needsconfirmation ); - my $dt_from = dt_from_string(); - my $dt_due = $dt_from->clone->add( days => 3 ); + my $dt_due = dt_from_string->add( days => 3 ); - ( $issuingimpossible, $needsconfirmation ) = CanBookBeIssued( $patron, $item->barcode, $dt_due, undef, undef, undef ); + my ( $issuingimpossible, $needsconfirmation ) = CanBookBeIssued( $patron, $item->barcode, $dt_due, undef, undef, undef ); is_deeply( $needsconfirmation, { additional_materials => 'includes DVD' }, 'Item needs confirmation of additional parts' ); }; --