From 7ccd9f91d9fbbff894ed4226e092adc17f129e3f 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 --- koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc | 1 + koha-tmpl/intranet-tmpl/prog/js/checkouts.js | 11 +++++++++++ svc/checkouts | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc index 26aed46765..a3636c3a20 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc @@ -10,6 +10,7 @@ var RETURN_CLAIMED_FAILURE = _("Unable to claim as returned"); var RETURN_CLAIMED_MAKE = _("Claim returned"); var RETURN_CLAIMED_NOTES = _("Notes about return claim"); + var CONFIRM_RETURN = _("Confirm"); var NOT_CHECKED_OUT = _("not checked out"); var TOO_MANY_RENEWALS = _("too many renewals"); var ON_RESERVE = _("on hold"); diff --git a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js index 03c0e6242f..1d99c038f2 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_RETURN + " (" + 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 fa470b3a2a..452003cc13 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 @checkouts_today; my @checkouts_previous; @@ -186,6 +188,11 @@ while ( my $c = $sth->fetchrow_hashref() ) { my $av = Koha::AuthorisedValues->search({ category => 'DAMAGED', authorised_value => $c->{damaged} }); $damaged = $av->count ? $av->next->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}, @@ -248,6 +255,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