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

(-)a/C4/Reserves.pm (-3 / +35 lines)
Lines 1005-1013 sub ModReserve { Link Here
1005
    $hold ||= Koha::Holds->find($reserve_id);
1005
    $hold ||= Koha::Holds->find($reserve_id);
1006
1006
1007
    if ( $rank eq "del" ) {
1007
    if ( $rank eq "del" ) {
1008
        my $hold_branchcode = $hold->branchcode;
1009
        my $hold_biblionumber = $hold->biblionumber;
1010
        my $hold_borrowernumber = $hold->borrowernumber;
1011
        my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
1008
        $hold->cancel({ cancellation_reason => $cancellation_reason });
1012
        $hold->cancel({ cancellation_reason => $cancellation_reason });
1009
    }
1013
1010
    elsif ($rank =~ /^\d+/ and $rank > 0) {
1014
        # send notice to user that their hold has been cancelled
1015
        my $letter = C4::Letters::GetPreparedLetter (
1016
            module => 'reserves',
1017
            letter_code => 'HOLD_MANUAL_CANCEL',
1018
            branchcode => $hold_branchcode,
1019
            tables => {
1020
                'biblio', $hold_biblionumber,
1021
                'borrowers', $hold_borrowernumber
1022
            }
1023
        );
1024
        C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
1025
    } elsif ($rank =~ /^\d+/ and $rank > 0) {
1011
        logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) )
1026
        logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) )
1012
            if C4::Context->preference('HoldsLog');
1027
            if C4::Context->preference('HoldsLog');
1013
1028
Lines 1204-1210 sub ModReserveCancelAll { Link Here
1204
    #step 1 : cancel the reservation
1219
    #step 1 : cancel the reservation
1205
    my $holds = Koha::Holds->search({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
1220
    my $holds = Koha::Holds->search({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
1206
    return unless $holds->count;
1221
    return unless $holds->count;
1207
    $holds->next->cancel({ cancellation_reason => $cancellation_reason });
1222
    my $hold = $holds->next;
1223
    my $hold_branchcode = $hold->branchcode;
1224
    my $hold_biblionumber = $hold->biblionumber;
1225
    my $hold_borrowernumber = $hold->borrowernumber;
1226
    my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
1227
    $hold->cancel({ cancellation_reason => $cancellation_reason });
1228
1229
    # send notice to user that their hold has been cancelled
1230
    my $letter = C4::Letters::GetPreparedLetter (
1231
        module => 'reserves',
1232
        letter_code => 'HOLD_MANUAL_CANCEL',
1233
        branchcode => $hold_branchcode,
1234
        tables => {
1235
            'biblio', $hold_biblionumber,
1236
            'borrowers', $hold_borrowernumber
1237
        }
1238
    );
1239
    C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
1208
1240
1209
    #step 2 launch the subroutine of the others reserves
1241
    #step 2 launch the subroutine of the others reserves
1210
    ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
1242
    ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
(-)a/circ/pendingreserves.pl (-1 / +31 lines)
Lines 55-70 my @messages; Link Here
55
if ( $op eq 'cancel_reserve' and $reserve_id ) {
55
if ( $op eq 'cancel_reserve' and $reserve_id ) {
56
    my $hold = Koha::Holds->find( $reserve_id );
56
    my $hold = Koha::Holds->find( $reserve_id );
57
    if ( $hold ) {
57
    if ( $hold ) {
58
        my $hold_branchcode = $hold->branchcode;
59
        my $hold_biblionumber = $hold->biblionumber;
60
        my $hold_borrowernumber = $hold->borrowernumber;
61
        my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
58
        my $cancellation_reason = $input->param('cancellation-reason');
62
        my $cancellation_reason = $input->param('cancellation-reason');
59
        $hold->cancel({ cancellation_reason => $cancellation_reason });
63
        $hold->cancel({ cancellation_reason => $cancellation_reason });
60
        push @messages, { type => 'message', code => 'hold_cancelled' };
64
        push @messages, { type => 'message', code => 'hold_cancelled' };
65
66
        # send notice to user that their hold has been cancelled
67
        my $letter = C4::Letters::GetPreparedLetter (
68
            module => 'reserves',
69
            letter_code => 'HOLD_MANUAL_CANCEL',
70
            branchcode => $hold_branchcode,
71
            tables => {
72
                'biblio', $hold_biblionumber,
73
                'borrowers', $hold_borrowernumber
74
            }
75
        );
76
        C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
61
    }
77
    }
62
} elsif ( $op =~ m|^mark_as_lost| ) {
78
} elsif ( $op =~ m|^mark_as_lost| ) {
63
    my $hold = Koha::Holds->find( $reserve_id );
79
    my $hold = Koha::Holds->find( $reserve_id );
80
    my $hold_branchcode = $hold->branchcode;
81
    my $hold_biblionumber = $hold->biblionumber;
82
    my $hold_borrowernumber = $hold->borrowernumber;
83
    my $patron = $hold->borrower;
64
    die "wrong reserve_id" unless $hold; # This is a bit rude, but we are not supposed to get a wrong reserve_id
84
    die "wrong reserve_id" unless $hold; # This is a bit rude, but we are not supposed to get a wrong reserve_id
65
    my $item = $hold->item;
85
    my $item = $hold->item;
66
    if ( $item and C4::Context->preference('CanMarkHoldsToPullAsLost') =~ m|^allow| ) {
86
    if ( $item and C4::Context->preference('CanMarkHoldsToPullAsLost') =~ m|^allow| ) {
67
        my $patron = $hold->borrower;
68
        C4::Circulation::LostItem( $item->itemnumber, "pendingreserves" );
87
        C4::Circulation::LostItem( $item->itemnumber, "pendingreserves" );
69
        if ( $op eq 'mark_as_lost_and_notify' and C4::Context->preference('CanMarkHoldsToPullAsLost') eq 'allow_and_notify' ) {
88
        if ( $op eq 'mark_as_lost_and_notify' and C4::Context->preference('CanMarkHoldsToPullAsLost') eq 'allow_and_notify' ) {
70
            my $library = $hold->branch;
89
            my $library = $hold->branch;
Lines 123-128 if ( $op eq 'cancel_reserve' and $reserve_id ) { Link Here
123
            }
142
            }
124
        }
143
        }
125
144
145
        # send notice to user that their hold has been cancelled
146
        my $letter = C4::Letters::GetPreparedLetter (
147
            module => 'reserves',
148
            letter_code => 'HOLD_MANUAL_CANCEL',
149
            branchcode => $hold_branchcode,
150
            tables => {
151
                'biblio', $hold_biblionumber,
152
                'borrowers', $hold_borrowernumber
153
            }
154
        );
155
        C4::Message->enqueue($letter, $patron->unblessed, 'email');
126
    } elsif ( not $item ) {
156
    } elsif ( not $item ) {
127
        push @messages, { type => 'alert', code => 'hold_placed_at_biblio_level'};
157
        push @messages, { type => 'alert', code => 'hold_placed_at_biblio_level'};
128
    } # else the url parameters have been modified and the user is not allowed to continue
158
    } # else the url parameters have been modified and the user is not allowed to continue
(-)a/reserve/request.pl (-1 / +16 lines)
Lines 107-113 if ( $action eq 'move' ) { Link Here
107
  my $reserve_id = $input->param('reserve_id');
107
  my $reserve_id = $input->param('reserve_id');
108
  my $cancellation_reason = $input->param("cancellation-reason");
108
  my $cancellation_reason = $input->param("cancellation-reason");
109
  my $hold = Koha::Holds->find( $reserve_id );
109
  my $hold = Koha::Holds->find( $reserve_id );
110
  my $hold_branchcode = $hold->branchcode;
111
  my $hold_biblionumber = $hold->biblionumber;
112
  my $hold_borrowernumber = $hold->borrowernumber;
113
  my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
110
  $hold->cancel({ cancellation_reason => $cancellation_reason }) if $hold;
114
  $hold->cancel({ cancellation_reason => $cancellation_reason }) if $hold;
115
116
  # send notice to user that their hold has been cancelled
117
  my $letter = C4::Letters::GetPreparedLetter (
118
    module => 'reserves',
119
    letter_code => 'HOLD_MANUAL_CANCEL',
120
    branchcode => $hold_branchcode,
121
    tables => {
122
      'biblio', $hold_biblionumber,
123
      'borrowers', $hold_borrowernumber
124
    }
125
  );
126
  C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
111
} elsif ( $action eq 'setLowestPriority' ) {
127
} elsif ( $action eq 'setLowestPriority' ) {
112
  my $reserve_id = $input->param('reserve_id');
128
  my $reserve_id = $input->param('reserve_id');
113
  ToggleLowestPriority( $reserve_id );
129
  ToggleLowestPriority( $reserve_id );
114
- 

Return to bug 20453