View | Details | Raw Unified | Return to bug 12362
Collapse All | Expand All

(-)a/Koha/Item/Transfer.pm (-2 / +12 lines)
Lines 18-23 package Koha::Item::Transfer; Link Here
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Carp;
20
use Carp;
21
use Try::Tiny;
21
22
22
use C4::Items;
23
use C4::Items;
23
24
Lines 133-146 sub cancel { Link Here
133
        error => "The 'reason' parameter is mandatory" )
134
        error => "The 'reason' parameter is mandatory" )
134
      unless defined($params->{reason});
135
      unless defined($params->{reason});
135
136
137
    my $in_transit = $self->in_transit;
138
136
    # Throw exception if item is in transit already
139
    # Throw exception if item is in transit already
137
    Koha::Exceptions::Item::Transfer::InTransit->throw() if ( !$params->{force} && $self->in_transit );
140
    Koha::Exceptions::Item::Transfer::InTransit->throw() if ( !$params->{force} && $in_transit );
138
141
139
    # Update the cancelled date
142
    # Update the cancelled date
140
    $self->set(
143
    $self->set(
141
        { datecancelled => dt_from_string, cancellation_reason => $params->{reason} } )
144
        { datecancelled => dt_from_string, cancellation_reason => $params->{reason} } )
142
      ->store;
145
      ->store;
143
146
147
    # Set up return transfer if transfer was force cancelled whilst in transit
148
    # NOTE: We don't catch here, as we're happy to fail if there are already
149
    # other transfers in the queue.
150
    try {
151
        $self->item->request_transfer(
152
            { to => $self->frombranch, reason => 'TransferCancellation' } );
153
    };
154
144
    return $self;
155
    return $self;
145
}
156
}
146
157
147
- 

Return to bug 12362