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

(-)a/C4/Reserves.pm (-2 / +2 lines)
Lines 1089-1100 function to cancel reserv,check other reserves, and transfer document if it's ne Link Here
1089
sub ModReserveCancelAll {
1089
sub ModReserveCancelAll {
1090
    my $messages;
1090
    my $messages;
1091
    my $nextreservinfo;
1091
    my $nextreservinfo;
1092
    my ( $itemnumber, $borrowernumber ) = @_;
1092
    my ( $itemnumber, $borrowernumber, $charge_cancel_fee ) = @_;
1093
1093
1094
    #step 1 : cancel the reservation
1094
    #step 1 : cancel the reservation
1095
    my $holds = Koha::Holds->search({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
1095
    my $holds = Koha::Holds->search({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
1096
    return unless $holds->count;
1096
    return unless $holds->count;
1097
    $holds->next->cancel;
1097
    $holds->next->cancel( { charge_cancel_fee => $charge_cancel_fee } );
1098
1098
1099
    #step 2 launch the subroutine of the others reserves
1099
    #step 2 launch the subroutine of the others reserves
1100
    ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
1100
    ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
(-)a/circ/waitingreserves.pl (-11 / +12 lines)
Lines 42-54 use Koha::Patrons; Link Here
42
42
43
my $input = new CGI;
43
my $input = new CGI;
44
44
45
my $item           = $input->param('itemnumber');
45
my $item              = $input->param('itemnumber');
46
my $borrowernumber = $input->param('borrowernumber');
46
my $borrowernumber    = $input->param('borrowernumber');
47
my $fbr            = $input->param('fbr') || '';
47
my $fbr               = $input->param('fbr') || '';
48
my $tbr            = $input->param('tbr') || '';
48
my $tbr               = $input->param('tbr') || '';
49
my $all_branches   = $input->param('allbranches') || '';
49
my $all_branches      = $input->param('allbranches') || '';
50
my $cancelall      = $input->param('cancelall');
50
my $cancelall         = $input->param('cancelall');
51
my $tab            = $input->param('tab');
51
my $tab               = $input->param('tab');
52
my $charge_cancel_fee = $input->param('charge_cancel_fee');
52
53
53
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
54
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
54
    {
55
    {
Lines 69-75 $template->param( TransferWhenCancelAllWaitingHolds => 1 ) if $transfer_when_can Link Here
69
my @cancel_result;
70
my @cancel_result;
70
# if we have a return from the form we cancel the holds
71
# if we have a return from the form we cancel the holds
71
if ($item) {
72
if ($item) {
72
    my $res = cancel( $item, $borrowernumber, $fbr, $tbr );
73
    my $res = cancel( $item, $borrowernumber, $fbr, $tbr, undef, $charge_cancel_fee );
73
    push @cancel_result, $res if $res;
74
    push @cancel_result, $res if $res;
74
}
75
}
75
76
Lines 134-140 while ( my $hold = $holds->next ) { Link Here
134
135
135
    if ($today > $calcDate) {
136
    if ($today > $calcDate) {
136
        if ($cancelall) {
137
        if ($cancelall) {
137
            my $res = cancel( $item->itemnumber, $patron->borrowernumber, $holdingbranch, $homebranch, !$transfer_when_cancel_all );
138
            my $res = cancel( $item->itemnumber, $patron->borrowernumber, $holdingbranch, $homebranch, !$transfer_when_cancel_all, $charge_cancel_fee );
138
            push @cancel_result, $res if $res;
139
            push @cancel_result, $res if $res;
139
            next;
140
            next;
140
        } else {
141
        } else {
Lines 174-186 if ($item && $tab eq 'holdsover' && !@cancel_result) { Link Here
174
exit;
175
exit;
175
176
176
sub cancel {
177
sub cancel {
177
    my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers ) = @_;
178
    my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers, $charge_cancel_fee ) = @_;
178
179
179
    my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo;
180
    my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo;
180
181
181
    return if $transfer && $skip_transfers;
182
    return if $transfer && $skip_transfers;
182
183
183
    my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber );
184
    my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber, $charge_cancel_fee );
184
185
185
# 	if the document is not in his homebranch location and there is not reservation after, we transfer it
186
# 	if the document is not in his homebranch location and there is not reservation after, we transfer it
186
    if ($transfer && !$nextreservinfo) {
187
    if ($transfer && !$nextreservinfo) {
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt (-1 / +10 lines)
Lines 130-140 Link Here
130
                   <input type="hidden" name="cancelall" value="1" />
130
                   <input type="hidden" name="cancelall" value="1" />
131
                   <input type="hidden" name="allbranches" value="[% allbranches | html %]" />
131
                   <input type="hidden" name="allbranches" value="[% allbranches | html %]" />
132
                   <input type="hidden" name="tab" value="holdsover">
132
                   <input type="hidden" name="tab" value="holdsover">
133
133
                   [% IF TransferWhenCancelAllWaitingHolds %]
134
                   [% IF TransferWhenCancelAllWaitingHolds %]
134
                       <input type="submit" value="Cancel and Transfer all" />
135
                       <input type="submit" value="Cancel and Transfer all" />
135
                   [% ELSE %]
136
                   [% ELSE %]
136
                       <input type="submit" value="Cancel all" />
137
                       <input type="submit" value="Cancel all" />
137
                   [% END %]
138
                   [% END %]
139
                   
140
                   [% IF Koha.Preference('ExpireReservesMaxPickUpDelayCharge') %]
141
                       <p><input type="checkbox" class="charge_cancel_fee" name="charge_cancel_fee" value="1" checked="checked" /> Charge cancelation fee</p>
142
                   [% END %]
138
               </form>
143
               </form>
139
               [% UNLESS TransferWhenCancelAllWaitingHolds %]
144
               [% UNLESS TransferWhenCancelAllWaitingHolds %]
140
                    Only items that need not be transferred will be cancelled (TransferWhenCancelAllWaitingHolds sypref)
145
                    Only items that need not be transferred will be cancelled (TransferWhenCancelAllWaitingHolds sypref)
Lines 178-183 Link Here
178
                            <input type="hidden" name="fbr" value="[% overloo.holdingbranch | html %]" />
183
                            <input type="hidden" name="fbr" value="[% overloo.holdingbranch | html %]" />
179
                            <input type="hidden" name="tbr" value="[% overloo.homebranch | html %]" />
184
                            <input type="hidden" name="tbr" value="[% overloo.homebranch | html %]" />
180
                            <input type="hidden" name="tab" value="holdsover">
185
                            <input type="hidden" name="tab" value="holdsover">
186
187
                            [% IF Koha.Preference('ExpireReservesMaxPickUpDelayCharge') %]
188
                                <p><input type="checkbox" class="charge_cancel_fee" name="charge_cancel_fee" value="1" checked="checked" /> Charge cancelation fee</p>
189
                            [% END %]
190
181
                            [% IF ( overloo.dotransfer ) %]
191
                            [% IF ( overloo.dotransfer ) %]
182
                            <input type="submit" value="Cancel hold and return to : [% Branches.GetName( overloo.homebranch ) | html %]" />
192
                            <input type="submit" value="Cancel hold and return to : [% Branches.GetName( overloo.homebranch ) | html %]" />
183
                            [% ELSE %]
193
                            [% ELSE %]
184
- 

Return to bug 15561