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

(-)a/C4/Reserves.pm (-42 / +18 lines)
Lines 39-44 use Koha::DateUtils; Link Here
39
use Koha::Calendar;
39
use Koha::Calendar;
40
use Koha::Database;
40
use Koha::Database;
41
use Koha::Hold;
41
use Koha::Hold;
42
use Koha::Old::Hold;
42
use Koha::Holds;
43
use Koha::Holds;
43
use Koha::Libraries;
44
use Koha::Libraries;
44
use Koha::Patrons;
45
use Koha::Patrons;
Lines 1209-1264 whose keys are fields from the reserves table in the Koha database. Link Here
1209
1210
1210
sub ModReserveFill {
1211
sub ModReserveFill {
1211
    my ($res) = @_;
1212
    my ($res) = @_;
1212
    my $dbh = C4::Context->dbh;
1213
    # fill in a reserve record....
1214
    my $reserve_id = $res->{'reserve_id'};
1213
    my $reserve_id = $res->{'reserve_id'};
1215
    my $biblionumber = $res->{'biblionumber'};
1214
1216
    my $borrowernumber    = $res->{'borrowernumber'};
1215
    my $dbh = C4::Context->dbh;
1217
    my $resdate = $res->{'reservedate'};
1216
1217
    my $hold = Koha::Holds->find($reserve_id);
1218
1218
1219
    # get the priority on this record....
1219
    # get the priority on this record....
1220
    my $priority;
1220
    my $priority = $hold->priority;
1221
    my $query = "SELECT priority
1222
                 FROM   reserves
1223
                 WHERE  biblionumber   = ?
1224
                  AND   borrowernumber = ?
1225
                  AND   reservedate    = ?";
1226
    my $sth = $dbh->prepare($query);
1227
    $sth->execute( $biblionumber, $borrowernumber, $resdate );
1228
    ($priority) = $sth->fetchrow_array;
1229
1221
1230
    # update the database...
1222
    # update the hold statuses, no need to store it though, we will be deleting it anyway
1231
    $query = "UPDATE reserves
1223
    $hold->set(
1232
                  SET    found            = 'F',
1224
        {
1233
                         priority         = 0
1225
            found    => 'F',
1234
                 WHERE  biblionumber     = ?
1226
            priority => 0,
1235
                    AND reservedate      = ?
1227
        }
1236
                    AND borrowernumber   = ?
1228
    );
1237
                ";
1229
1238
    $sth = $dbh->prepare($query);
1230
    my $old_hold = Koha::Old::Hold->new( $hold->unblessed() )->store();
1239
    $sth->execute( $biblionumber, $resdate, $borrowernumber );
1231
1240
1232
    $hold->delete();
1241
    # move to old_reserves
1242
    $query = "INSERT INTO old_reserves
1243
                 SELECT * FROM reserves
1244
                 WHERE  biblionumber     = ?
1245
                    AND reservedate      = ?
1246
                    AND borrowernumber   = ?
1247
                ";
1248
    $sth = $dbh->prepare($query);
1249
    $sth->execute( $biblionumber, $resdate, $borrowernumber );
1250
    $query = "DELETE FROM reserves
1251
                 WHERE  biblionumber     = ?
1252
                    AND reservedate      = ?
1253
                    AND borrowernumber   = ?
1254
                ";
1255
    $sth = $dbh->prepare($query);
1256
    $sth->execute( $biblionumber, $resdate, $borrowernumber );
1257
1233
1258
    # now fix the priority on the others (if the priority wasn't
1234
    # now fix the priority on the others (if the priority wasn't
1259
    # already sorted!)....
1235
    # already sorted!)....
1260
    unless ( $priority == 0 ) {
1236
    unless ( $priority == 0 ) {
1261
        _FixPriority({ reserve_id => $reserve_id, biblionumber => $biblionumber });
1237
        _FixPriority( { reserve_id => $reserve_id, biblionumber => $hold->biblionumber } );
1262
    }
1238
    }
1263
}
1239
}
1264
1240
(-)a/Koha/Old/Hold.pm (+51 lines)
Line 0 Link Here
1
package Koha::Old::Hold;
2
3
# Copyright ByWater Solutions 2014
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
22
use base qw(Koha::Hold);
23
24
=head1 NAME
25
26
Koha::Old::Hold - Koha Old Hold object class
27
28
This object represents a hold that has been filled or canceled
29
30
=head1 API
31
32
=head2 Class Methods
33
34
=cut
35
36
37
=head3 type
38
39
=cut
40
41
sub type {
42
    return 'OldReserve';
43
}
44
45
=head1 AUTHOR
46
47
Kyle M Hall <kyle@bywatersolutions.com>
48
49
=cut
50
51
1;
(-)a/Koha/Old/Holds.pm (-1 / +64 lines)
Line 0 Link Here
0
- 
1
package Koha::Old::Holds;
2
3
# Copyright ByWater Solutions 2014
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
22
use Carp;
23
24
use Koha::Database;
25
26
use Koha::Old::Hold;
27
28
use base qw(Koha::Holds);
29
30
=head1 NAME
31
32
Koha::Old::Holds - Koha Old Hold object set class
33
34
This object represents a set of holds that have been filled or canceled
35
36
=head1 API
37
38
=head2 Class Methods
39
40
=cut
41
42
=head3 type
43
44
=cut
45
46
sub type {
47
    return 'OldReserve';
48
}
49
50
=head3 object_class
51
52
=cut
53
54
sub object_class {
55
    return 'Koha::Old::Hold';
56
}
57
58
=head1 AUTHOR
59
60
Kyle M Hall <kyle@bywatersolutions.com>
61
62
=cut
63
64
1;

Return to bug 14695