From 48b6a46bf939aaa86e72e542b3d1c86475409444 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 5 Aug 2020 10:52:48 +0100 Subject: [PATCH] Bug 25261: (QA follow-up) Add confirmation to issues table The issues table allows for checkins and was not appropriately requireing confirmation for the multi-part confirmation added in this bug. Test plan 1/ Enable the feature as per previous patches 2/ Checkot an item with attached materials 3/ Navigate to a page that display your users issues table (the checkout page is a reasonable example) 4/ You should have the option to select items for return in the table (If not, use the column settings to enable the feature) 5/ Select at least the item with attached materials to return 6/ Upon clicking the return buttton you should find that items without additional materials are returned as expected, but rows with additional materials turn yellow and contain a message and additional checkbox for confirmation in the table. 7/ Ensure the checkbox is selected and click the return button again 8/ This item should have been returned. Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer --- koha-tmpl/intranet-tmpl/prog/js/checkouts.js | 11 +++++++++++ svc/checkouts | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js index 44151ae04e..1b576b5b37 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js @@ -130,6 +130,15 @@ $(document).ready(function() { }, "json") }); + $(".confirm:checked:visible").each(function() { + itemnumber = $(this).val(); + id = "#checkin_" + itemnumber; + materials = $(this).data('materials'); + + $(this).replaceWith("" + __("Confirm") + " (" + materials + "): "); + $(id).parent().parent().addClass('warn'); + }); + $(".renew:checked:visible").each(function() { var override_limit = $("#override_limit").is(':checked') ? 1 : 0; @@ -543,6 +552,8 @@ $(document).ready(function() { "mDataProp": function ( oObj ) { if ( oObj.can_renew_error == "on_reserve" ) { return "" + __("On hold") + ""; + } else if ( oObj.materials ) { + return ""; } else { return ""; } diff --git a/svc/checkouts b/svc/checkouts index 968388ae8d..3e92e40198 100755 --- a/svc/checkouts +++ b/svc/checkouts @@ -104,6 +104,7 @@ my $sql = ' items.damaged, items.location, items.enumchron, + items.materials, DATEDIFF( issues.issuedate, CURRENT_DATE() ) AS not_issued_today, @@ -139,6 +140,7 @@ $sth->execute(@parameters); my $item_level_itypes = C4::Context->preference('item-level_itypes'); my $claims_returned_lost_value = C4::Context->preference('ClaimReturnedLostValue'); +my $confirm_parts_required = C4::Context->preference("CircConfirmItemParts"); my $itemtypes = { map { $_->{itemtype} => $_->{translated_description} } @{ Koha::ItemTypes->search_with_localization->unblessed } }; @@ -194,6 +196,11 @@ while ( my $c = $sth->fetchrow_hashref() ) { { kohafield => 'items.damaged', authorised_value => $c->{damaged} } ); $damaged = $av->{lib} ? $av->{lib} : ''; } + my $materials; + if ( $c->{materials} && $confirm_parts_required ) { + my $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({frameworkcode => '', kohafield =>'items.materials', authorised_value => $c->{materials} }); + $materials = $descriptions->{lib} // $c->{materials}; + } my @subtitles = split(/ \| /, $c->{'subtitle'} // '' ); my $checkout = { DT_RowId => $c->{itemnumber} . '-' . $c->{borrowernumber}, @@ -256,6 +263,7 @@ while ( my $c = $sth->fetchrow_hashref() ) { lost => $lost, claims_returned => $claims_returned, damaged => $damaged, + materials => $materials, borrower => { surname => $c->{surname}, firstname => $c->{firstname}, -- 2.20.1