Bugzilla – Attachment 121742 Details for
Bug 28527
Transfers that are cancelled whilst in transit should still appear as 'in transit' until they are received
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28527: Add handling for cancelled in transit transfers at checkin
Bug-28527-Add-handling-for-cancelled-in-transit-tr.patch (text/plain), 6.39 KB, created by
Martin Renvoize (ashimema)
on 2021-06-09 13:33:46 UTC
(
hide
)
Description:
Bug 28527: Add handling for cancelled in transit transfers at checkin
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2021-06-09 13:33:46 UTC
Size:
6.39 KB
patch
obsolete
>From 61a156e730b0158668a95146592a922d1aebcacf Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Wed, 9 Jun 2021 14:11:07 +0100 >Subject: [PATCH] Bug 28527: Add handling for cancelled in transit transfers at > checkin > >--- > C4/Circulation.pm | 47 +++++++++---------- > circ/returns.pl | 28 +++++++++++ > .../prog/en/modules/circ/returns.tt | 8 +++- > 3 files changed, 58 insertions(+), 25 deletions(-) > >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index ed92ccf384..13356dd126 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -2162,35 +2162,34 @@ sub AddReturn { > } > > # check if we have a transfer for this document >- my $transfer = $item->get_transfer; >+ my $transfers = $item->get_transfers; >+ my $transfer = $transfers->next; > > # if we have a transfer to complete, we update the line of transfers with the datearrived > if ($transfer) { > $validTransfer = 0; >- if ( $transfer->in_transit ) { >- if ( $transfer->tobranch eq $branch ) { >- $transfer->receive; >- $messages->{'TransferArrived'} = $transfer->frombranch; >- # validTransfer=1 allows us returning the item back if the reserve is cancelled >- $validTransfer = 1 if $transfer->reason eq 'Reserve'; >- } >- else { >- $messages->{'WrongTransfer'} = $transfer->tobranch; >- $messages->{'WrongTransferItem'} = $item->itemnumber; >- $messages->{'TransferTrigger'} = $transfer->reason; >- } >+ # Catch cancelled transfers, we've found the item now >+ my $reverse; >+ while ( $transfer && $transfer->is_cancelled ) { >+ $transfer->receive; >+ $messages->{'TransferTrigger'} = $transfer->reason; >+ $messages->{'WrongTransferItem'} = $item->itemnumber; >+ $reverse = $transfer->frombranch; >+ $transfer = $transfers->next; > } >- else { >- if ( $transfer->tobranch eq $branch ) { >- $transfer->receive; >- $messages->{'TransferArrived'} = $transfer->frombranch; >- # validTransfer=1 allows us returning the item back if the reserve is cancelled >- $validTransfer = 1 if $transfer->reason eq 'Reserve'; >- } >- else { >- $messages->{'WasTransfered'} = $transfer->tobranch; >- $messages->{'TransferTrigger'} = $transfer->reason; >- } >+ if ( $transfer && $transfer->tobranch eq $branch ) { >+ $transfer->receive; >+ $messages->{'TransferArrived'} = $transfer->frombranch; >+ } >+ elsif ( $transfer && $transfer->in_transit ) { >+ $messages->{'WrongTransfer'} = $transfer->tobranch; >+ $messages->{'WrongTransferItem'} = $item->itemnumber; >+ } >+ elsif ( $transfer ) { >+ $messages->{'WasTransfered'} = $transfer->tobranch; >+ $messages->{'TransferTrigger'} = $transfer->reason; >+ } else { >+ $messages->{'TransferCancelled'} = $reverse; > } > } > >diff --git a/circ/returns.pl b/circ/returns.pl >index 6478d39bf3..cbc57f11b7 100755 >--- a/circ/returns.pl >+++ b/circ/returns.pl >@@ -427,6 +427,31 @@ if ( $messages->{'WrongTransfer'} and not $messages->{'WasTransfered'}) { > } > } > >+# >+# case of transfer cancelled whilst in transit >+# >+if ( $messages->{'TransferCancelled'} ){ >+ $template->param( >+ CancelledTransfer => 1, >+ TransferWaitingAt => $messages->{'CancelledTransfer'}, >+ trigger => $messages->{'TransferTrigger'}, >+ ); >+ >+ # Add reverse transfer to return the item to it's original holdingbranch >+ my $transfer = Koha::Items->find($messages->{'WrongTransferItem'}); >+ my $new_transfer = $transfer->request_transfer( >+ { >+ to => $transfer->to_library, >+ reason => 'TransferCancellation', >+ ignore_limits => 1 >+ } >+ ); >+ $template->param( >+ NewTransfer => $new_transfer->id >+ ); >+} >+ >+ > # > # reserve found and item arrived at the expected branch > # >@@ -535,6 +560,9 @@ foreach my $code ( keys %$messages ) { > elsif ( $code eq 'TransferTrigger' ) { > ; # Handled alongside NeedsTransfer > } >+ elsif ( $code eq 'TransferCancelled' ){ >+ ; # Handled above >+ } > elsif ( $code eq 'TransferArrived' ) { > $err{transferred} = $messages->{'TransferArrived'}; > } >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 e03a07d758..8d99f98852 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >@@ -421,7 +421,7 @@ > > <!-- case of a mistake in transfer loop --> > [% UNLESS ( hold_auto_filled && diffbranch ) %] >- [% IF WrongTransfer && !transfertodo %] >+ [% IF ( WrongTransfer || CancelledTransfer ) && !transfertodo %] > [% IF Koha.Preference('TransfersBlockCirc') %] > <div id="wrong-transfer-modal" class="modal fade audio-alert-action block"> > [% ELSE %] >@@ -441,9 +441,15 @@ > [% END %] > > <div class="modal-header"> >+ [% IF WrongTransfer %] > <h3> > Wrong transfer detected, please return item to: [% Branches.GetName( TransferWaitingAt ) | html %] > </h3> >+ [% ELSE %] >+ <h3> >+ Transfer was cancelled whilst in transit, please return item to: [% Branches.GetName( TransferWaitingAt ) | html %] >+ </h3> >+ [% END %] > </div> > > <div class="modal-body"> >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 28527
:
121739
|
121740
|
121741
| 121742