@@ -, +, @@ - Test some simple transfers: Items which are not checked out, some which are checked out. - Test that the page's handling of items on hold matches current master (i.e. broken, see Bug 36686). Description of current behavior: - Logged in to Branch A. - Find a barcode for a title which has a biblio-level hold (not already in transit) to be sent to Branch B. - Submit transfer to Branch C. - Three actions are offered: 1. Transfer to Branch B 2. Cancel hold and then attempt transfer 3. Ignore and return to transfers Testing each of the three actions: 1. The page says "Item is now in transit to Branch C (not the hold's destination)" 2. The item is not in transit, and the hold has been changed to an item-level hold. 3. Works correctly. No change to the hold and no transfer initiated. - Logged in to Branch A. - Find a barcode for a title which has a biblio-level hold (not already in transit) to be sent to Branch B. - Check in the item, confirm hold and transfer. - Submit transfer to Branch C. - Two actions are offered: 1. Cancel hold and then attempt transfer 2. Ignore and return to transfers Testing each of the two actions: 1. The page says "Reserve cancelled" (sic). The original transfer to Branch B is still in place. 2. Works correctly. No change to the hold and the original transfer remains. - Logged in to Branch D. - Find a barcode for a title which has a biblio-level hold (not already in transit) to be held at Branch D. - Check in the item, confirm hold. - Log in to Branch A. - Submit a transfer with that barcode to Branch C. - Two actions are offered: 1. Cancel hold and then attempt transfer 2. Ignore and return to transfer. Testing each of the two actions: 1. The page says "Reserve cancelled" (sic). The hold has been cancelled but the item has not been transferred. 2. Works correctly. Hold remains unchanged, no transfer initiated. --- circ/branchtransfers.pl | 8 +- .../prog/css/src/staff-global.scss | 16 + .../prog/en/modules/circ/branchtransfers.tt | 286 ++++++++++-------- 3 files changed, 189 insertions(+), 121 deletions(-) --- a/circ/branchtransfers.pl +++ a/circ/branchtransfers.pl @@ -167,6 +167,8 @@ my $biblionumber; ##################### my $hold; +my $patron; +my $found_biblio; if ($found){ $hold = Koha::Holds->find( { reserve_id => $found->{reserve_id} }, @@ -174,6 +176,8 @@ if ($found){ ); $itemnumber = $found->{'itemnumber'}; $borrowernumber = $found->{'borrowernumber'}; + $patron = Koha::Patrons->find($borrowernumber); + $found_biblio = Koha::Biblios->find( $found->{'biblionumber'} ); if ( $found->{'ResFound'} eq "Waiting" ) { $waiting = 1; @@ -238,7 +242,9 @@ $template->param( settransit => $settransit, trsfitemloop => \@trsfitemloop, errmsgloop => \@errmsgloop, - PatronAutoComplete => C4::Context->preference("PatronAutoComplete"), + PatronAutoComplete => C4::Context->preference("PatronAutoComplete"), + patron => $patron, + found_biblio => $found_biblio, ); # Checking if there is a Fast Cataloging Framework --- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss +++ a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss @@ -1021,6 +1021,21 @@ fieldset { } } + &.barcode_input { + label { + &.hint { + display: block; + margin-bottom: .5em; + } + } + + select { + font-size: 120%; + max-width: 50%; + padding: .5em 0; + } + } + &.brief { div { &.hint { @@ -1575,6 +1590,7 @@ i { } .form-control-group { + margin-bottom: .5rem; white-space: nowrap; } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/branchtransfers.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/branchtransfers.tt @@ -5,6 +5,7 @@ [% USE AuthorisedValues %] [% PROCESS 'i18n.inc' %] [% SET footerjs = 1 %] +[% PROCESS 'member-display-address-style.inc' %] [% INCLUDE 'doc-head-open.inc' %] [% FILTER collapse %] [% t("Transfers") | html %] › @@ -12,8 +13,29 @@ [% t("Koha") | html %] [% END %] [% INCLUDE 'doc-head-close.inc' %] +[% FILTER collapse %] + +[% END %] +[% BLOCK display_holdpatron_address %] + [% PROCESS 'display-address-style' %] +[% END %] + [% WRAPPER 'header.inc' %] [% INCLUDE 'circ-search.inc' %] @@ -40,104 +62,125 @@
[% INCLUDE 'messages.inc' %] -

Transfer items

- [% IF ( found ) %] -

Reserve found

-
- - - - - - - [% IF ( reserved ) %] - - - - - [% END # /IF reserved %] - - - - -
- [% IF ( reserved ) %] - Hold found for [% INCLUDE 'patron-title.inc' patron => hold.patron | html %] ([% borrowernumber | html %]). - [% END %] - [% IF ( waiting ) %] - Item is marked waiting at [% branchname | html %] for [% name | html %] ([% borrowernumber | html %]). - [% END %] - [% IF ( transferred ) %] - Item has been trapped to fill a hold and is in transit for [% name | html %] ([% borrowernumber | html %]). - [% END %] -
- [% IF ( reserved ) %] - Transfer item to [% Branches.GetName( hold.branchcode ) | html %]: - [% END %] - [% IF ( waiting or transferred ) %]Cancel hold and then attempt transfer: [% END %] - -
- [% INCLUDE 'csrf-token.inc' %] - [% FOREACH trsfitemloo IN trsfitemloop %] - - - - [% END %] - - - - - - [% IF ( waiting or transferred or processing ) %] - - - [% END %] + [% BLOCK transfer_hidden_fields %] + [% FOREACH trsfitemloo IN trsfitemloop %] + + + + [% END %] + [% END %] + +

Transfers

+ + +
Cancel hold and then attempt transfer: -
- [% INCLUDE 'csrf-token.inc' %] - [% FOREACH trsfitemloo IN trsfitemloop %] - - - +
+ [% INCLUDE 'biblio-title.inc' biblio=found_biblio link=1 %] + [% IF ( barcode ) %] + ([% barcode | html %]) + [% END %] + + + + +
Ignore and return to transfers: -
- - - [% FOREACH trsfitemloo IN trsfitemloop %] - - - - [% END %] - -
-
-
+ + + [% IF ( reserved ) %] +
+
+ [% INCLUDE 'csrf-token.inc' %] + [% PROCESS transfer_hidden_fields %] + + + + + + + +
+
+ [% END # /IF reserved %] + +
+
+ + + [% PROCESS transfer_hidden_fields %] + +
+
+ + + + + [% ELSE # /IF found %] [% IF ( reqmessage ) %]
-
[% END %] @@ -178,22 +221,22 @@ [% END # /errmsgloop %]
-
+ [% INCLUDE 'csrf-token.inc' %] -
- Transfer -
    -
  1. - - -
  2. -
  3. - - -
  4. -
+
+

Transfers

+
+ + + Required +
+
+ + + +
[% FOREACH trsfitemloo IN trsfitemloop %] @@ -201,7 +244,7 @@ [% END %] - +
[% IF ( trsfitemloop ) %] @@ -209,34 +252,33 @@ - - - - - - - - - - + [% FOREACH trsfitemloo IN trsfitemloop %] - - - - - - - - + + + [% END # /FOREACH trsfitemloo %]
Transferred items
TitleAuthorBarcodeShelving locationCall numberItem typeCollectionOriginDestinationActionsTitle + Author + Barcode + Shelving location + Call number + Item type + Collection + Origin + Destination + Actions
[% INCLUDE 'biblio-title.inc' biblio=trsfitemloo.item.biblio link=1 %] - - [% trsfitemloo.item.biblio.author | html %][% trsfitemloo.item.barcode | html %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => trsfitemloo.item.location ) | html %][% trsfitemloo.item.itemcallnumber | html %][% ItemTypes.GetDescription( trsfitemloo.item.effective_itemtype ) | html %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => trsfitemloo.item.ccode ) | html %][% Branches.GetName( trsfitemloo.frombrcd ) | html %][% Branches.GetName( trsfitemloo.tobrcd ) | html %][% trsfitemloo.item.biblio.author | html %] + [% trsfitemloo.item.barcode | html %] + [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => trsfitemloo.item.location ) | html %] + [% trsfitemloo.item.itemcallnumber | html %] + [% ItemTypes.GetDescription( trsfitemloo.item.effective_itemtype ) | html %] + [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => trsfitemloo.item.ccode ) | html %] + [% Branches.GetName( trsfitemloo.frombrcd ) | html %] + [% Branches.GetName( trsfitemloo.tobrcd ) | html %] -
@@ -256,6 +298,7 @@ [% MACRO jsinclude BLOCK %] + [% INCLUDE 'select2.inc' %] [% END %] --