my $checkout = $item->checkout;
my $biblio = $item->biblio;
$template->param(
- title => $biblio->title,
- homebranch => $item->homebranch,
- holdingbranch => $item->holdingbranch,
- returnbranch => $returnbranch,
- author => $biblio->author,
- itembarcode => $item->barcode,
- itemtype => $item->effective_itemtype,
- ccode => $item->ccode,
- itembiblionumber => $biblio->biblionumber,
- biblionumber => $biblio->biblionumber,
+ title => $biblio->title,
+ homebranch => $item->homebranch,
+ holdingbranch => $item->holdingbranch,
+ returnbranch => $returnbranch,
+ author => $biblio->author,
+ itembarcode => $item->barcode,
+ itemtype => $item->effective_itemtype,
+ ccode => $item->ccode,
+ itembiblionumber => $biblio->biblionumber,
+ biblionumber => $biblio->biblionumber,
additional_materials => $materials,
- issue => $checkout,
+ issue => $checkout,
);
} # FIXME else we should not call AddReturn but set BadBarcode directly instead
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("CircConfirmParts") ) {
+ if ( $item->materials > 0 && !$query->param('multiple_confirm') ) {
+ $needs_confirm = 1;
+ }
+ }
+
# do the return
( $returned, $messages, $issue, $borrower ) =
- AddReturn( $barcode, $userenv_branch, $exemptfine, $return_date );
+ AddReturn( $barcode, $userenv_branch, $exemptfine, $return_date )
+ unless $needs_confirm;
if ($returned) {
my $time_now = dt_from_string()->truncate( to => 'minute');
);
}
}
- } elsif ( C4::Context->preference('ShowAllCheckins') and !$messages->{'BadBarcode'} ) {
+ } elsif ( C4::Context->preference('ShowAllCheckins') and !$messages->{'BadBarcode'} and !$needs_confirm ) {
$input{duedate} = 0;
$returneditems{0} = $barcode;
$riduedate{0} = 0;
push( @inputloop, \%input );
}
$template->param( privacy => $borrower->{privacy} );
+
+ if ( $needs_confirm ) {
+ $template->param( needs_confirm => $needs_confirm );
+ }
}
$template->param( inputloop => \@inputloop );
[% IF ( NEEDSCONFIRMATION ) %]
<div id="circ_needsconfirmation" class="dialog alert audio-alert-action">
- [% IF CAN_user_circulate_force_checkout %]
+ [% IF CAN_user_circulate_force_checkout or additional_materials %]
<h3>Please confirm checkout</h3>
[% ELSE %]
<h3>Cannot check out</h3>
</li>
[% END %]
+
[% IF ( DEBT ) %]
<li>The patron has a debt of [% DEBT | $Price %].</li>
[% END %]
[% END %]
</li>
[% END %]
+
+ [% IF additional_materials %]
+ <li>
+ Please confirm that the accompanying materials are present: [% additional_materials | html %]
+ </li>
+ [% END %]
</ul>
[% IF CAN_user_circulate_force_checkout or HIGHHOLDS %]
</div>
[% END %]
- [% IF additional_materials %]
- <div class="dialog message" id="materials">
- Note about the accompanying materials: <br />
- [% additional_materials | html %]
+ [% IF needs_confirm %]
+ <div id="circ_needsconfirmation" class="dialog alert audio-alert-action">
+ <h3>Please confirm checkin</h3>
+ <ul>
+ [% IF additional_materials %]
+ <li>
+ Please confirm that the accompanying materials are present: [% additional_materials | html %]
+ </li>
+ [% END %]
+ </ul>
+
+ <form method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off">
+ <input type="hidden" name="barcode" value="[% itembarcode | html %]" />
+
+ [% IF additional_materials %]
+ <input type="hidden" name="multiple_confirm" value="1" />
+ [% END %]
+
+ <button type="submit" class="approve" accesskey="y"><i class="fa fa-check"></i> Yes, checkin (Y)</button>
+ <button type="submit" class="deny" accesskey="n"><i class="fa fa-times"></i> No, don't checkin (N)</button>
+ </form>
+ </div>
+ [% ELSE %]
+ [% IF additional_materials %]
+ <div class="dialog alert">
+ <ul>
+ <li>
+ Note about the accompanying materials: [% additional_materials | html %]
+ </li>
+ </ul>
</div>
+ [% END %]
[% END %]
[% IF ( collectionItemNeedsTransferred ) %]