From bf694b3c2d0df1977e4fe22c16a2702beb42dcc4 Mon Sep 17 00:00:00 2001 From: Alex Arnaud Date: Thu, 25 Oct 2018 11:19:01 +0200 Subject: [PATCH] Bug 20194: Display both biblioitems.itemtype and items.itype in circulation screens Test plan: 1. Verify that biblioitems.itemtype, items.itype are mapped to a MARC field. Otherwise create those mappings. 2. Create a biblio with an itemtype 3. Create an item with a different itemtype for this biblio 4. Check out this item to a patron (P1) 5. Verify that both itemtypes are displayed in the checkouts table (moremember.pl, circulation.pl, returns.pl) 6. Create a patron whose guarantor is P1 and verify that both itemtypes and the ccode are displayed in the 'relatives checkouts' table Followed test plan, patch worked as described, also passes QA test tool Signed-off-by: Alex Buckley Signed-off-by: Nick Clemens Signed-off-by: Martin Renvoize --- admin/columns_settings.yml | 6 ++++++ circ/returns.pl | 4 +++- .../prog/en/includes/checkouts-table-footer.inc | 2 +- .../prog/en/includes/checkouts-table.inc | 1 + .../prog/en/includes/relatives-issues-table.inc | 1 + .../intranet-tmpl/prog/en/modules/circ/returns.tt | 8 ++++++-- koha-tmpl/intranet-tmpl/prog/js/checkouts.js | 12 +++++++++++- svc/checkouts | 7 +++++-- 8 files changed, 34 insertions(+), 7 deletions(-) diff --git a/admin/columns_settings.yml b/admin/columns_settings.yml index 4b8600367c..c1fdf398ca 100644 --- a/admin/columns_settings.yml +++ b/admin/columns_settings.yml @@ -582,6 +582,8 @@ modules: columnname: due_date - columnname: title + - + columnname: record_type - columnname: item_type - @@ -795,6 +797,8 @@ modules: columnname: due_date - columnname: title + - + columnname: record_type - columnname: item_type - @@ -869,6 +873,8 @@ modules: - columnname: dateaccessioned is_hidden: 1 + - + columnname: record_type - columnname: itype - diff --git a/circ/returns.pl b/circ/returns.pl index ddce95ab75..5e7d8e24bc 100755 --- a/circ/returns.pl +++ b/circ/returns.pl @@ -589,6 +589,7 @@ foreach ( sort { $a <=> $b } keys %returneditems ) { my $item = Koha::Items->find({ barcode => $bar_code }); next unless $item; # FIXME The item has been deleted in the meantime, # we could handle that better displaying a message in the template + my $biblio = $item->biblio; # FIXME pass $item to the template and we are done here... $ri{itembiblionumber} = $biblio->biblionumber; @@ -599,7 +600,8 @@ foreach ( sort { $a <=> $b } keys %returneditems ) { $ri{itemauthor} = $biblio->author; $ri{itemcallnumber} = $item->itemcallnumber; $ri{dateaccessioned} = $item->dateaccessioned; - $ri{itemtype} = $item->effective_itemtype; + $ri{recordtype} = $biblio->itemtype; + $ri{itemtype} = $item->itype; $ri{itemnote} = $item->itemnotes; $ri{itemnotes_nonpublic} = $item->itemnotes_nonpublic; $ri{ccode} = $item->ccode; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table-footer.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table-footer.inc index 931d92f36c..9b62491d4a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table-footer.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table-footer.inc @@ -1,6 +1,6 @@ - Totals: + Totals: diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc index f1bc60ff4b..7b967bec89 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc @@ -15,6 +15,7 @@ Due date Due date Title + Record-level item type Item type Collection Location diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/relatives-issues-table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/relatives-issues-table.inc index 28addf4815..97e9ba6bd1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/relatives-issues-table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/relatives-issues-table.inc @@ -7,6 +7,7 @@ Due date (unformatted, hidden) Due date Title + Record-level item type Item type Collection code Location diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt index bafaf0e955..a65294b985 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt @@ -794,7 +794,8 @@ Shelving location Call number Date acquired - Type + Record-level itemtype + Item type Patron Note @@ -844,7 +845,10 @@ [% riloo.dateaccessioned | $KohaDates %] - + + [% ItemTypes.GetDescription( riloo.recordtype ) | html %] + + [% ItemTypes.GetDescription( riloo.itemtype ) | html %] [% AuthorisedValues.GetByCode('CCODE', riloo.ccode) | html %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js index 2bfd18e6cf..d07f8200cd 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js @@ -346,6 +346,11 @@ $(document).ready(function() { }, "sType": "anti-the" }, + { + "mDataProp": function ( oObj ) { + return oObj.recordtype_description.escapeHtml(); + } + }, { "mDataProp": function ( oObj ) { return oObj.itemtype_description.escapeHtml(); @@ -607,7 +612,7 @@ $(document).ready(function() { // Build a summary of checkouts grouped by itemtype var checkoutsByItype = json.aaData.reduce(function (obj, row) { - obj[row.itemtype_description] = (obj[row.itemtype_description] || 0) + 1; + obj[row.type_for_stat] = (obj[row.type_for_stat] || 0) + 1; return obj; }, {}); var ul = $('
    '); @@ -724,6 +729,11 @@ $(document).ready(function() { }, "sType": "anti-the" }, + { + "mDataProp": function ( oObj ) { + return oObj.recordtype_description.escapeHtml(); + } + }, { "mDataProp": function ( oObj ) { return oObj.itemtype_description.escapeHtml(); diff --git a/svc/checkouts b/svc/checkouts index 053b589843..2da2b0177b 100755 --- a/svc/checkouts +++ b/svc/checkouts @@ -161,7 +161,9 @@ while ( my $c = $sth->fetchrow_hashref() ) { my ( $renewals_count, $renewals_allowed, $renewals_remaining ) = GetRenewCount( $c->{borrowernumber}, $c->{itemnumber} ); - my $itemtype = Koha::ItemTypes->find( $item_level_itypes ? $c->{itype} : $c->{itemtype} ); + my $type_for_stat = Koha::ItemTypes->find( $item_level_itypes ? $c->{itype} : $c->{itemtype} ); + my $itemtype = Koha::ItemTypes->find( $c->{itype} ); + my $recordtype = Koha::ItemTypes->find( $c->{itemtype} ); my $location; if ( $c->{location} ) { my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $c->{location} }); @@ -194,8 +196,9 @@ while ( my $c = $sth->fetchrow_hashref() ) { part_name => $c->{part_name} // '', author => $c->{author}, barcode => $c->{barcode}, - itemtype => $item_level_itypes ? $c->{itype} : $c->{itemtype}, + type_for_stat => $type_for_stat ? $type_for_stat->translated_description : q{}, itemtype_description => $itemtype ? $itemtype->translated_description : q{}, + recordtype_description => $recordtype ? $recordtype->translated_description : q{}, collection => $collection, location => $location, homebranch => $c->{homebranch}, -- 2.20.1