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

(-)a/C4/Circulation.pm (+15 lines)
Lines 720-725 issued to someone else. Link Here
720
720
721
reserved for someone else.
721
reserved for someone else.
722
722
723
=head3 TRANSFERRED
724
725
reserved and being transferred for someone else.
726
723
=head3 INVALID_DATE
727
=head3 INVALID_DATE
724
728
725
sticky due date is invalid or due date in the past
729
sticky due date is invalid or due date in the past
Lines 1132-1137 sub CanBookBeIssued { Link Here
1132
                    $needsconfirmation{'resreservedate'} = $res->{reservedate};
1136
                    $needsconfirmation{'resreservedate'} = $res->{reservedate};
1133
                    $needsconfirmation{'reserve_id'} = $res->{reserve_id};
1137
                    $needsconfirmation{'reserve_id'} = $res->{reserve_id};
1134
                }
1138
                }
1139
                elsif ( $restype eq "Transferred" ) {
1140
                    # The item is determined hold being transferred for someone else.
1141
                    $needsconfirmation{TRANSFERRED} = 1;
1142
                    $needsconfirmation{'resfirstname'} = $patron->firstname;
1143
                    $needsconfirmation{'ressurname'} = $patron->surname;
1144
                    $needsconfirmation{'rescardnumber'} = $patron->cardnumber;
1145
                    $needsconfirmation{'resborrowernumber'} = $patron->borrowernumber;
1146
                    $needsconfirmation{'resbranchcode'} = $patron->branchcode;
1147
                    $needsconfirmation{'resreservedate'} = $res->{reservedate};
1148
                    $needsconfirmation{'reserve_id'} = $res->{reserve_id};
1149
                }
1135
            }
1150
            }
1136
        }
1151
        }
1137
    }
1152
    }
(-)a/C4/Reserves.pm (-8 / +6 lines)
Lines 853-866 sub CheckReserves { Link Here
853
853
854
        my $priority = 10000000;
854
        my $priority = 10000000;
855
        foreach my $res (@reserves) {
855
        foreach my $res (@reserves) {
856
            if ( $res->{'itemnumber'} && $res->{'itemnumber'} == $itemnumber && $res->{'priority'} == 0) {
856
            if ($res->{'found'} eq 'W') {
857
                if ($res->{'found'} eq 'W') {
857
                return ( "Waiting", $res, \@reserves ); # Found it, it is waiting
858
                    return ( "Waiting", $res, \@reserves ); # Found it, it is waiting
858
            } elsif ($res->{'found'} eq 'P') {
859
                } elsif ($res->{'found'} eq 'P') {
859
                return ( "Processing", $res, \@reserves ); # Found determinated hold, e. g. the transferred one
860
                    return ( "Processing", $res, \@reserves ); # Found determinated hold, e. g. the transferred one
860
            } elsif ($res->{'found'} eq 'T') {
861
                 } else {
861
                return ( "Transferred", $res, \@reserves ); # Found determinated hold, e. g. the transferred one
862
                    return ( "Reserved", $res, \@reserves ); # Found determinated hold, e. g. the transferred one
863
                }
864
            } else {
862
            } else {
865
                my $patron;
863
                my $patron;
866
                my $item;
864
                my $item;
(-)a/C4/SIP/ILS/Transaction/Checkout.pm (-1 / +1 lines)
Lines 71-77 sub do_checkout { Link Here
71
        foreach my $confirmation (keys %{$needsconfirmation}) {
71
        foreach my $confirmation (keys %{$needsconfirmation}) {
72
            if ($confirmation eq 'RENEW_ISSUE'){
72
            if ($confirmation eq 'RENEW_ISSUE'){
73
                $self->screen_msg("Item already checked out to you: renewing item.");
73
                $self->screen_msg("Item already checked out to you: renewing item.");
74
            } elsif ($confirmation eq 'RESERVED' or $confirmation eq 'RESERVE_WAITING') {
74
            } elsif ($confirmation eq 'RESERVED' or $confirmation eq 'RESERVE_WAITING' or $confirmation eq 'TRANSFERRED') {
75
                my $x = $self->{item}->available($patron->borrowernumber);
75
                my $x = $self->{item}->available($patron->borrowernumber);
76
                if ($x) {
76
                if ($x) {
77
                    $self->screen_msg("Item was reserved for you.");
77
                    $self->screen_msg("Item was reserved for you.");
(-)a/circ/branchtransfers.pl (+7 lines)
Lines 73-78 my $messages; Link Here
73
my $found;
73
my $found;
74
my $reserved;
74
my $reserved;
75
my $waiting;
75
my $waiting;
76
my $hold_transferred;
76
my $reqmessage;
77
my $reqmessage;
77
my $cancelled;
78
my $cancelled;
78
my $setwaiting;
79
my $setwaiting;
Lines 176-181 if ($found) { Link Here
176
    if ( $res->{'ResFound'} eq "Waiting" ) {
177
    if ( $res->{'ResFound'} eq "Waiting" ) {
177
        $waiting = 1;
178
        $waiting = 1;
178
    }
179
    }
180
181
    if ( $res->{'ResFound'} eq "Transferred" ) {
182
        $hold_transferred = 1;
183
    }
184
179
    elsif ( $res->{'ResFound'} eq "Reserved" ) {
185
    elsif ( $res->{'ResFound'} eq "Reserved" ) {
180
        $reserved  = 1;
186
        $reserved  = 1;
181
        $biblionumber = $res->{'biblionumber'};
187
        $biblionumber = $res->{'biblionumber'};
Lines 218-223 $template->param( Link Here
218
    found                   => $found,
224
    found                   => $found,
219
    reserved                => $reserved,
225
    reserved                => $reserved,
220
    waiting                 => $waiting,
226
    waiting                 => $waiting,
227
    transferred             => $hold_transferred,
221
    borrowernumber          => $borrowernumber,
228
    borrowernumber          => $borrowernumber,
222
    itemnumber              => $itemnumber,
229
    itemnumber              => $itemnumber,
223
    barcode                 => $barcode,
230
    barcode                 => $barcode,
(-)a/circ/circulation.pl (-1 / +1 lines)
Lines 422-428 if (@$barcodes) { Link Here
422
        }
422
        }
423
    }
423
    }
424
424
425
    if ($question->{RESERVE_WAITING} or $question->{RESERVED}){
425
    if ($question->{RESERVE_WAITING} or $question->{RESERVED} or $question->{TRANSFERRED}){
426
        $template->param(
426
        $template->param(
427
            reserveborrowernumber => $question->{'resborrowernumber'},
427
            reserveborrowernumber => $question->{'resborrowernumber'},
428
            reserve_id => $question->{reserve_id},
428
            reserve_id => $question->{reserve_id},
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/branchtransfers.tt (-2 / +5 lines)
Lines 31-41 Link Here
31
            [% IF ( waiting ) %]
31
            [% IF ( waiting ) %]
32
                Item is marked waiting at [% branchname | html %] for [% name | html %] (<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber | uri %]">[% borrowernumber | html %]</a>).
32
                Item is marked waiting at [% branchname | html %] for [% name | html %] (<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber | uri %]">[% borrowernumber | html %]</a>).
33
            [% END %]
33
            [% END %]
34
            [% IF ( transferred ) %]
35
                Item is attached to a hold and being transferred for [% name | html %] (<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber | uri %]">[% borrowernumber | html %]</a>).
36
            [% END %]
34
        </caption>
37
        </caption>
35
        <tr>
38
        <tr>
36
            <th>
39
            <th>
37
                [% IF ( reserved ) %]Set reserve to waiting and transfer book to [% branchname | html %]: [% END %]
40
                [% IF ( reserved ) %]Set reserve to waiting and transfer book to [% branchname | html %]: [% END %]
38
                [% IF ( waiting ) %]Cancel reservation and then attempt transfer: [% END %]
41
                [% IF ( waiting or transferred ) %]Cancel reservation and then attempt transfer: [% END %]
39
            </th>
42
            </th>
40
            <td>
43
            <td>
41
                <form method="post" name="mainform" id="mainform" action="branchtransfers.pl">
44
                <form method="post" name="mainform" id="mainform" action="branchtransfers.pl">
Lines 47-53 Link Here
47
                    <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
50
                    <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
48
                    <input type="hidden" name="borrowernumber" value="[% borrowernumber | html %]" />
51
                    <input type="hidden" name="borrowernumber" value="[% borrowernumber | html %]" />
49
                    <input type="hidden" name="tobranchcd" value="[% tobranchcd | html %]" />
52
                    <input type="hidden" name="tobranchcd" value="[% tobranchcd | html %]" />
50
                    [% IF ( waiting ) %]
53
                    [% IF ( waiting or transferred ) %]
51
                        <input type="hidden" name="barcode" value="[% barcode | html %]" />
54
                        <input type="hidden" name="barcode" value="[% barcode | html %]" />
52
                        <input type="hidden" name="request" value="KillWaiting" />
55
                        <input type="hidden" name="request" value="KillWaiting" />
53
                        <input type="submit" value="Cancel" />
56
                        <input type="submit" value="Cancel" />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (-11 / +14 lines)
Lines 122-127 Link Here
122
                                    <li>Item <em>[% getTitleMessageIteminfo | html %]</em> ([% getBarcodeMessageIteminfo | html %]) has been waiting for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber | uri %]">[% resfirstname | html %] [% ressurname | html %]</a> ([% rescardnumber | html %]) at [% Branches.GetName( resbranchcode ) | html %] since [% reswaitingdate | $KohaDates %]</li>
122
                                    <li>Item <em>[% getTitleMessageIteminfo | html %]</em> ([% getBarcodeMessageIteminfo | html %]) has been waiting for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber | uri %]">[% resfirstname | html %] [% ressurname | html %]</a> ([% rescardnumber | html %]) at [% Branches.GetName( resbranchcode ) | html %] since [% reswaitingdate | $KohaDates %]</li>
123
                                [% END %]
123
                                [% END %]
124
124
125
                                [% IF ( TRANSFERRED ) %]
126
                                    <li>Item <em>[% getTitleMessageIteminfo | html %]</em> ([% getBarcodeMessageIteminfo | html %]) is on hold for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber | uri %]">[% resfirstname | html %] [% ressurname | html %]</a> ([% rescardnumber | html %]) and being transferred to [% Branches.GetName( resbranchcode ) | html %]</li>
127
                                [% END %]
128
125
                                [% IF ( RESERVED ) %]
129
                                [% IF ( RESERVED ) %]
126
                                    <li>Item <em>[% getTitleMessageIteminfo | html %]</em> ([% getBarcodeMessageIteminfo | html %]) has been on hold for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber | uri %]">[% resfirstname | html %] [% ressurname | html %]</a> ([% rescardnumber | html %]) at [% Branches.GetName( resbranchcode ) | html %] since [% resreservedate | $KohaDates %]</li>
130
                                    <li>Item <em>[% getTitleMessageIteminfo | html %]</em> ([% getBarcodeMessageIteminfo | html %]) has been on hold for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% resborrowernumber | uri %]">[% resfirstname | html %] [% ressurname | html %]</a> ([% rescardnumber | html %]) at [% Branches.GetName( resbranchcode ) | html %] since [% resreservedate | $KohaDates %]</li>
127
                                [% END %]
131
                                [% END %]
Lines 237-242 Link Here
237
                                        </p>
241
                                        </p>
238
                                    [% END %]
242
                                    [% END %]
239
243
244
                                    [% IF ( TRANSFERRED ) %]
245
                                        <p>
246
                                            <label for="cancelreserve">Cancel hold</label>
247
                                            <input type="radio" value="cancel" name="cancelreserve" id="cancelreserve" /><br />
248
                                            <label for="revertreserve">Revert hold transfer status</label>
249
                                            <input type="radio" value="revert" name="cancelreserve" id="revertreserve" checked="checked"/>
250
                                        </p>
251
                                    [% END %]
252
240
                                    <input type="hidden" name="barcode" value="[% barcode | html %]" />
253
                                    <input type="hidden" name="barcode" value="[% barcode | html %]" />
241
                                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
254
                                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
242
                                    <input type="hidden" name="issueconfirmed" value="1" />
255
                                    <input type="hidden" name="issueconfirmed" value="1" />
Lines 267-283 Link Here
267
                                </form>
280
                                </form>
268
                            [% END # /IF CAN_user_circulate_force_checkout or HIGHHOLDS %]
281
                            [% END # /IF CAN_user_circulate_force_checkout or HIGHHOLDS %]
269
282
270
                            [% IF ( RESERVED ) %]
283
                            [% IF ( RESERVED or RESERVE_WAITING or TRANSFERRED ) %]
271
                                <form method="get" action="/cgi-bin/koha/circ/circulation.pl">
272
                                    <input type="hidden" name="restoreduedatespec" />
273
                                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
274
                                    <input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
275
                                    <input type="hidden" name="stickyduedate" value="[% stickyduedate | html %]" />
276
                                    <button class="print" type="submit" onclick="Dopop('hold-transfer-slip.pl?reserve_id=[% reserve_id | uri %]');this.form.submit();"><i class="fa fa-print"></i> Don't check out and print slip (P)</button>
277
                                </form>
278
                            [% END %]
279
280
                            [% IF ( RESERVE_WAITING ) %]
281
                                <form method="get" action="/cgi-bin/koha/circ/circulation.pl">
284
                                <form method="get" action="/cgi-bin/koha/circ/circulation.pl">
282
                                    <input type="hidden" name="restoreduedatespec" />
285
                                    <input type="hidden" name="restoreduedatespec" />
283
                                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
286
                                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation_batch_checkouts.tt (-1 / +4 lines)
Lines 147-152 Link Here
147
                  [% IF checkout_info.RESERVE_WAITING %]
147
                  [% IF checkout_info.RESERVE_WAITING %]
148
                      <li><i class="fa fa-li fa-warning"></i>This item is waiting for another patron.</li>
148
                      <li><i class="fa fa-li fa-warning"></i>This item is waiting for another patron.</li>
149
                  [% END %]
149
                  [% END %]
150
                  [% IF checkout_info.TRANSFERRED %]
151
                      <li><i class="fa fa-li fa-warning"></i>This item is on hold and being transferred to another patron.</li>
152
                  [% END %]
150
                  [% IF checkout_info.ISSUED_TO_ANOTHER %]
153
                  [% IF checkout_info.ISSUED_TO_ANOTHER %]
151
                      <li><i class="fa fa-li fa-warning"></i>This item is checked out to another patron.
154
                      <li><i class="fa fa-li fa-warning"></i>This item is checked out to another patron.
152
                    [% IF CAN_user_circulate_force_checkout %]
155
                    [% IF CAN_user_circulate_force_checkout %]
Lines 187-193 Link Here
187
                      </script>
190
                      </script>
188
                  [% END %]
191
                  [% END %]
189
192
190
                  [% IF NOT checkout_info.IMPOSSIBLE && ( CAN_user_circulate_force_checkout || checkout_info.HIGHHOLDS ) && ( checkout_info.RESERVED || checkout_info.RESERVE_WAITING ) %] <!-- arbitrary choice, revert the reserve is not possible-->
193
                  [% IF NOT checkout_info.IMPOSSIBLE && ( CAN_user_circulate_force_checkout || checkout_info.HIGHHOLDS ) && ( checkout_info.RESERVED || checkout_info.RESERVE_WAITING || checkout_info.TRANSFERRED ) %] <!-- arbitrary choice, revert the reserve is not possible-->
191
                      <li><i class="fa fa-li fa-warning"></i>This item is on hold for another patron. The hold will be overridden, but not cancelled.</li>
194
                      <li><i class="fa fa-li fa-warning"></i>This item is on hold for another patron. The hold will be overridden, but not cancelled.</li>
192
                  [% ELSIF checkout_info.RESERVED %]
195
                  [% ELSIF checkout_info.RESERVED %]
193
                      <li><i class="fa fa-li fa-warning"></i>This item is on hold for another patron.</li>
196
                      <li><i class="fa fa-li fa-warning"></i>This item is on hold for another patron.</li>
(-)a/t/db_dependent/Circulation.t (-1 / +1 lines)
Lines 3364-3370 subtest 'Set waiting flag' => sub { Link Here
3364
    is( $hold->found, 'T', 'Hold is in transit' );
3364
    is( $hold->found, 'T', 'Hold is in transit' );
3365
3365
3366
    my ( $status ) = CheckReserves($item->itemnumber);
3366
    my ( $status ) = CheckReserves($item->itemnumber);
3367
    is( $status, 'Reserved', 'Hold is not waiting yet');
3367
    is( $status, 'Transferred', 'Hold is not waiting yet');
3368
3368
3369
    set_userenv( $library_2 );
3369
    set_userenv( $library_2 );
3370
    $do_transfer = 0;
3370
    $do_transfer = 0;
(-)a/t/db_dependent/Reserves.t (-2 / +1 lines)
Lines 1146-1152 subtest 'CheckReserves additional test' => sub { Link Here
1146
    my ( $status, $matched_reserve, $possible_reserves ) =
1146
    my ( $status, $matched_reserve, $possible_reserves ) =
1147
      CheckReserves( $item->itemnumber );
1147
      CheckReserves( $item->itemnumber );
1148
1148
1149
    is( $status, 'Reserved', "We found a reserve" );
1149
    is( $status, 'Transferred', "We found a reserve" );
1150
    is( $matched_reserve->{reserve_id},
1150
    is( $matched_reserve->{reserve_id},
1151
        $reserve1->reserve_id, "We got the Transit reserve" );
1151
        $reserve1->reserve_id, "We got the Transit reserve" );
1152
    is( scalar @$possible_reserves, 2, 'We do get both reserves' );
1152
    is( scalar @$possible_reserves, 2, 'We do get both reserves' );
1153
- 

Return to bug 25690