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

(-)a/C4/Reserves.pm (-3 / +39 lines)
Lines 998-1006 sub ModReserve { Link Here
998
    $hold ||= Koha::Holds->find($reserve_id);
998
    $hold ||= Koha::Holds->find($reserve_id);
999
999
1000
    if ( $rank eq "del" ) {
1000
    if ( $rank eq "del" ) {
1001
        my $hold_branchcode = $hold->branchcode;
1002
        my $hold_biblionumber = $hold->biblionumber;
1003
        my $hold_borrowernumber = $hold->borrowernumber;
1004
        my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
1001
        $hold->cancel;
1005
        $hold->cancel;
1002
    }
1006
1003
    elsif ($rank =~ /^\d+/ and $rank > 0) {
1007
        if ( C4::Context->preference('HourBasedHolds') ){
1008
            # send notice to user that their hold has been cancelled
1009
            my $letter = C4::Letters::GetPreparedLetter (
1010
                module => 'reserves',
1011
                letter_code => 'HOLD_MANUAL_CANCEL',
1012
                branchcode => $hold_branchcode,
1013
                tables => {
1014
                    'biblio', $hold_biblionumber,
1015
                    'borrowers', $hold_borrowernumber
1016
                }
1017
            );
1018
            C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
1019
        }
1020
    } elsif ($rank =~ /^\d+/ and $rank > 0) {
1004
        logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) )
1021
        logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) )
1005
            if C4::Context->preference('HoldsLog');
1022
            if C4::Context->preference('HoldsLog');
1006
1023
Lines 1182-1188 sub ModReserveCancelAll { Link Here
1182
    #step 1 : cancel the reservation
1199
    #step 1 : cancel the reservation
1183
    my $holds = Koha::Holds->search({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
1200
    my $holds = Koha::Holds->search({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
1184
    return unless $holds->count;
1201
    return unless $holds->count;
1185
    $holds->next->cancel;
1202
    my $hold = $holds->next;
1203
    my $hold_branchcode = $hold->branchcode;
1204
    my $hold_biblionumber = $hold->biblionumber;
1205
    my $hold_borrowernumber = $hold->borrowernumber;
1206
    my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
1207
    $hold->cancel;
1208
1209
    if ( C4::Context->preference('HourBasedHolds') ){
1210
      # send notice to user that their hold has been cancelled
1211
      my $letter = C4::Letters::GetPreparedLetter (
1212
        module => 'reserves',
1213
        letter_code => 'HOLD_MANUAL_CANCEL',
1214
        branchcode => $hold_branchcode,
1215
        tables => {
1216
          'biblio', $hold_biblionumber,
1217
          'borrowers', $hold_borrowernumber
1218
        }
1219
      );
1220
      C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
1221
    }
1186
1222
1187
    #step 2 launch the subroutine of the others reserves
1223
    #step 2 launch the subroutine of the others reserves
1188
    ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
1224
    ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
(-)a/circ/pendingreserves.pl (-1 / +35 lines)
Lines 56-70 my @messages; Link Here
56
if ( $op eq 'cancel_reserve' and $reserve_id ) {
56
if ( $op eq 'cancel_reserve' and $reserve_id ) {
57
    my $hold = Koha::Holds->find( $reserve_id );
57
    my $hold = Koha::Holds->find( $reserve_id );
58
    if ( $hold ) {
58
    if ( $hold ) {
59
        my $hold_branchcode = $hold->branchcode;
60
        my $hold_biblionumber = $hold->biblionumber;
61
        my $hold_borrowernumber = $hold->borrowernumber;
62
        my $hold_borrower = Koha::Patrons->find( $hold_borrowernumber );
59
        $hold->cancel;
63
        $hold->cancel;
60
        push @messages, { type => 'message', code => 'hold_cancelled' };
64
        push @messages, { type => 'message', code => 'hold_cancelled' };
65
66
        if ( C4::Context->preference('HourBasedHolds') ){
67
            # send notice to user that their hold has been cancelled
68
            my $letter = C4::Letters::GetPreparedLetter (
69
                module => 'reserves',
70
                letter_code => 'HOLD_MANUAL_CANCEL',
71
                branchcode => $hold_branchcode,
72
                tables => {
73
                    'biblio', $hold_biblionumber,
74
                    'borrowers', $hold_borrowernumber
75
                }
76
            );
77
            C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
78
        }
61
    }
79
    }
62
} elsif ( $op =~ m|^mark_as_lost| ) {
80
} elsif ( $op =~ m|^mark_as_lost| ) {
63
    my $hold = Koha::Holds->find( $reserve_id );
81
    my $hold = Koha::Holds->find( $reserve_id );
82
    my $hold_branchcode = $hold->branchcode;
83
    my $hold_biblionumber = $hold->biblionumber;
84
    my $hold_borrowernumber = $hold->borrowernumber;
85
    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
86
    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;
87
    my $item = $hold->item;
66
    if ( $item and C4::Context->preference('CanMarkHoldsToPullAsLost') =~ m|^allow| ) {
88
    if ( $item and C4::Context->preference('CanMarkHoldsToPullAsLost') =~ m|^allow| ) {
67
        my $patron = $hold->borrower;
68
        C4::Circulation::LostItem( $item->itemnumber, "pendingreserves" );
89
        C4::Circulation::LostItem( $item->itemnumber, "pendingreserves" );
69
        if ( $op eq 'mark_as_lost_and_notify' and C4::Context->preference('CanMarkHoldsToPullAsLost') eq 'allow_and_notify' ) {
90
        if ( $op eq 'mark_as_lost_and_notify' and C4::Context->preference('CanMarkHoldsToPullAsLost') eq 'allow_and_notify' ) {
70
            my $library = $hold->branch;
91
            my $library = $hold->branch;
Lines 120-125 if ( $op eq 'cancel_reserve' and $reserve_id ) { Link Here
120
            }
141
            }
121
        }
142
        }
122
143
144
        if ( C4::Context->preference('HourBasedHolds') ){
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, $hold_borrower->unblessed, 'email');
156
        }
123
    } elsif ( not $item ) {
157
    } elsif ( not $item ) {
124
        push @messages, { type => 'alert', code => 'hold_placed_at_biblio_level'};
158
        push @messages, { type => 'alert', code => 'hold_placed_at_biblio_level'};
125
    } # else the url parameters have been modified and the user is not allowed to continue
159
    } # else the url parameters have been modified and the user is not allowed to continue
(-)a/reserve/request.pl (-1 / +18 lines)
Lines 107-113 if ( $action eq 'move' ) { Link Here
107
} elsif ( $action eq 'cancel' ) {
107
} elsif ( $action eq 'cancel' ) {
108
  my $reserve_id = $input->param('reserve_id');
108
  my $reserve_id = $input->param('reserve_id');
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 if $hold;
114
  $hold->cancel if $hold;
115
116
  if ( C4::Context->preference('HourBasedHolds') ){
117
    # send notice to user that their hold has been cancelled
118
    my $letter = C4::Letters::GetPreparedLetter (
119
      module => 'reserves',
120
      letter_code => 'HOLD_MANUAL_CANCEL',
121
      branchcode => $hold_branchcode,
122
      tables => {
123
        'biblio', $hold_biblionumber,
124
        'borrowers', $hold_borrowernumber
125
      }
126
    );
127
    C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email');
128
  }
111
} elsif ( $action eq 'setLowestPriority' ) {
129
} elsif ( $action eq 'setLowestPriority' ) {
112
  my $reserve_id = $input->param('reserve_id');
130
  my $reserve_id = $input->param('reserve_id');
113
  ToggleLowestPriority( $reserve_id );
131
  ToggleLowestPriority( $reserve_id );
114
- 

Return to bug 24718