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

(-)a/C4/Reserves.pm (-2 / +73 lines)
Lines 141-146 BEGIN { Link Here
141
        &GetReservesControlBranch
141
        &GetReservesControlBranch
142
142
143
        IsItemOnHoldAndFound
143
        IsItemOnHoldAndFound
144
145
        AddReserveGroup
146
        DeleteReserveGroup
147
        GetReserveGroupReserves
144
    );
148
    );
145
    @EXPORT_OK = qw( MergeHolds );
149
    @EXPORT_OK = qw( MergeHolds );
146
}
150
}
Lines 165-171 sub AddReserve { Link Here
165
    my (
169
    my (
166
        $branch,    $borrowernumber, $biblionumber,
170
        $branch,    $borrowernumber, $biblionumber,
167
        $bibitems,  $priority, $resdate, $expdate, $notes,
171
        $bibitems,  $priority, $resdate, $expdate, $notes,
168
        $title,      $checkitem, $found
172
        $title,      $checkitem, $found, $reserve_group_id
169
    ) = @_;
173
    ) = @_;
170
174
171
    if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) {
175
    if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) {
Lines 205-211 sub AddReserve { Link Here
205
            itemnumber     => $checkitem,
209
            itemnumber     => $checkitem,
206
            found          => $found,
210
            found          => $found,
207
            waitingdate    => $waitingdate,
211
            waitingdate    => $waitingdate,
208
            expirationdate => $expdate
212
            expirationdate => $expdate,
213
            reserve_group_id => $reserve_group_id,
209
        }
214
        }
210
    )->store();
215
    )->store();
211
    my $reserve_id = $hold->id();
216
    my $reserve_id = $hold->id();
Lines 1341-1346 sub ModReserveAffect { Link Here
1341
    }
1346
    }
1342
    $sth = $dbh->prepare($query);
1347
    $sth = $dbh->prepare($query);
1343
    $sth->execute( $itemnumber, $borrowernumber,$biblionumber);
1348
    $sth->execute( $itemnumber, $borrowernumber,$biblionumber);
1349
1350
    if ($request->{reserve_group_id}) {
1351
        # Delete other reserves from same group
1352
        $dbh->do(q{
1353
            DELETE FROM reserves
1354
            WHERE reserve_group_id = ?
1355
              AND reserve_id != ?
1356
        }, undef, $request->{reserve_group_id}, $request->{reserve_id});
1357
        DeleteReserveGroup($request->{reserve_group_id});
1358
    }
1359
1344
    _koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf );
1360
    _koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf );
1345
    _FixPriority( { biblionumber => $biblionumber } );
1361
    _FixPriority( { biblionumber => $biblionumber } );
1346
    if ( C4::Context->preference("ReturnToShelvingCart") ) {
1362
    if ( C4::Context->preference("ReturnToShelvingCart") ) {
Lines 1420-1425 sub GetReserveInfo { Link Here
1420
                   reminderdate,
1436
                   reminderdate,
1421
                   priority,
1437
                   priority,
1422
                   found,
1438
                   found,
1439
                   reserve_group_id,
1423
                   firstname,
1440
                   firstname,
1424
                   surname,
1441
                   surname,
1425
                   phone,
1442
                   phone,
Lines 2450-2455 sub IsItemOnHoldAndFound { Link Here
2450
    return $found;
2467
    return $found;
2451
}
2468
}
2452
2469
2470
=head2 AddReserveGroup
2471
2472
    my $reserve_group_id = AddReserveGroup();
2473
2474
Creates a new reserve group and returns its ID
2475
2476
=cut
2477
2478
sub AddReserveGroup {
2479
    my $dbh = C4::Context->dbh;
2480
2481
    $dbh->do('INSERT INTO reserve_group VALUES ()');
2482
    return $dbh->last_insert_id(undef, undef, 'reserve_group', undef);
2483
}
2484
2485
=head2 DeleteReserveGroup
2486
2487
    DeleteReserveGroup($reserve_group_id);
2488
2489
Delete a reserve group. Reserves that belong to this group are not removed.
2490
2491
=cut
2492
2493
sub DeleteReserveGroup {
2494
    my ($reserve_group_id) = @_;
2495
2496
    my $dbh = C4::Context->dbh;
2497
    my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?';
2498
    $dbh->do($query, undef, $reserve_group_id);
2499
}
2500
2501
=head2 GetReserveGroupReserves
2502
2503
    my @reserves = GetReserveGroupReserves($reserve_group_id);
2504
2505
Fetch all reserve from a reserve group.
2506
2507
=cut
2508
2509
sub GetReserveGroupReserves {
2510
    my ($reserve_group_id) = @_;
2511
2512
    my $dbh = C4::Context->dbh;
2513
2514
    my $reserves = $dbh->selectall_arrayref(q{
2515
        SELECT * FROM reserves
2516
        WHERE reserve_group_id = ?
2517
    }, { Slice => {} }, $reserve_group_id);
2518
2519
    return () unless defined $reserves;
2520
2521
    return @$reserves;
2522
}
2523
2453
=head1 AUTHOR
2524
=head1 AUTHOR
2454
2525
2455
Koha Development Team <http://koha-community.org/>
2526
Koha Development Team <http://koha-community.org/>
(-)a/Koha/Template/Plugin/Biblio.pm (+8 lines)
Lines 32-35 sub HoldsCount { Link Here
32
    return $holds->count();
32
    return $holds->count();
33
}
33
}
34
34
35
sub Get {
36
    my ($self, $biblionumber) = @_;
37
38
    my $biblio = Koha::Biblios->find($biblionumber);
39
40
    return $biblio;
41
}
42
35
1;
43
1;
(-)a/circ/pendingreserves.pl (-1 / +3 lines)
Lines 118-123 if ( $run_report ) { Link Here
118
            reminderdate,
118
            reminderdate,
119
            max(priority) as priority,
119
            max(priority) as priority,
120
            reserves.found,
120
            reserves.found,
121
            reserves.reserve_group_id,
121
            biblio.title,
122
            biblio.title,
122
            biblio.author,
123
            biblio.author,
123
            count(DISTINCT items.itemnumber) as icount,
124
            count(DISTINCT items.itemnumber) as icount,
Lines 167-173 if ( $run_report ) { Link Here
167
                biblionumber    => $data->{biblionumber},
168
                biblionumber    => $data->{biblionumber},
168
                statusw         => ( $data->{found} eq "W" ),
169
                statusw         => ( $data->{found} eq "W" ),
169
                statusf         => ( $data->{found} eq "F" ),
170
                statusf         => ( $data->{found} eq "F" ),
170
                holdingbranches => [split('\|', $data->{l_holdingbranch})],,
171
                reserve_group_id => $data->{reserve_group_id},
172
                holdingbranches => [split('\|', $data->{l_holdingbranch})],
171
                branch          => $data->{l_branch},
173
                branch          => $data->{l_branch},
172
                itemcallnumber  => $data->{l_itemcallnumber},
174
                itemcallnumber  => $data->{l_itemcallnumber},
173
                enumchron       => $data->{l_enumchron},
175
                enumchron       => $data->{l_enumchron},
(-)a/installer/data/mysql/atomicupdate/bug_15516.sql (+8 lines)
Line 0 Link Here
1
DROP TABLE IF EXISTS reserve_group;
2
CREATE TABLE reserve_group (
3
  reserve_group_id int unsigned NOT NULL AUTO_INCREMENT,
4
  PRIMARY KEY (reserve_group_id)
5
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
6
7
ALTER TABLE reserves ADD COLUMN reserve_group_id int unsigned NULL DEFAULT NULL;
8
ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_5 FOREIGN KEY (reserve_group_id) REFERENCES reserve_group (reserve_group_id) ON DELETE SET NULL ON UPDATE CASCADE;
(-)a/installer/data/mysql/kohastructure.sql (+12 lines)
Lines 1872-1877 CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha Link Here
1872
  `lowestPriority` tinyint(1) NOT NULL,
1872
  `lowestPriority` tinyint(1) NOT NULL,
1873
  `suspend` BOOLEAN NOT NULL DEFAULT 0,
1873
  `suspend` BOOLEAN NOT NULL DEFAULT 0,
1874
  `suspend_until` DATETIME NULL DEFAULT NULL,
1874
  `suspend_until` DATETIME NULL DEFAULT NULL,
1875
  reserve_group_id int unsigned NULL DEFAULT NULL,
1875
  PRIMARY KEY (`reserve_id`),
1876
  PRIMARY KEY (`reserve_id`),
1876
  KEY priorityfoundidx (priority,found),
1877
  KEY priorityfoundidx (priority,found),
1877
  KEY `borrowernumber` (`borrowernumber`),
1878
  KEY `borrowernumber` (`borrowernumber`),
Lines 1882-1887 CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha Link Here
1882
  CONSTRAINT `reserves_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1883
  CONSTRAINT `reserves_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1883
  CONSTRAINT `reserves_ibfk_3` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1884
  CONSTRAINT `reserves_ibfk_3` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1884
  CONSTRAINT `reserves_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
1885
  CONSTRAINT `reserves_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
1886
  CONSTRAINT `reserves_ibfk_5` FOREIGN KEY (reserve_group_id) REFERENCES reserve_group (reserve_group_id) ON DELETE SET NULL ON UPDATE CASCADE
1887
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1888
1889
--
1890
-- Table structure for table reserve_group
1891
--
1892
1893
DROP TABLE IF EXISTS reserve_group;
1894
CREATE TABLE reserve_group (
1895
  reserve_group_id int unsigned NOT NULL AUTO_INCREMENT,
1896
  PRIMARY KEY(reserve_group_id)
1885
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1897
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1886
1898
1887
--
1899
--
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/reserve-group-modal.inc (+27 lines)
Line 0 Link Here
1
<div id="reserve-group-modal" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="reserve-group-modal-label" aria-hidden="true">
2
    <div class="modal-header">
3
        <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
4
        <h3 id="reserve-group-modal-label">Reserve group</h3>
5
    </div>
6
    <div class="modal-body">
7
        <div id="loading"> <img src="[% interface %]/[% theme %]/img/loading-small.gif" alt="" /> Loading </div>
8
    </div>
9
    <div class="modal-footer">
10
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
11
    </div>
12
</div>
13
14
<script>
15
  $(document).ready(function() {
16
    $('body').on('click', 'a.reserve-group', function() {
17
      var href = $(this).attr('href');
18
      $('#reserve-group-modal .modal-body').load(href + " #main");
19
      $('#reserve-group-modal').modal('show');
20
      return false;
21
    })
22
23
    $('#reserve-group-modal').on('hidden', function(){
24
        $('#reserve-group-modal .modal-body').html('<div id="loading"><img src="[% interface %]/[% theme %]/img/loading-small.gif" alt="" /> ' + _('Loading') + '</div>');
25
    });
26
  });
27
</script>
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc (+2 lines)
Lines 38-42 Link Here
38
    var SUSPEND_HOLD_ERROR_DATE = _("Unable to suspend hold, invalid date");
38
    var SUSPEND_HOLD_ERROR_DATE = _("Unable to suspend hold, invalid date");
39
    var SUSPEND_HOLD_ERROR_NOT_FOUND = _("Unable to suspend hold, hold not found");
39
    var SUSPEND_HOLD_ERROR_NOT_FOUND = _("Unable to suspend hold, hold not found");
40
    var RESUME_HOLD_ERROR_NOT_FOUND = _("Unable to resume, hold not found");
40
    var RESUME_HOLD_ERROR_NOT_FOUND = _("Unable to resume, hold not found");
41
    var PART_OF_A = _("(part of a %s)");
42
    var RESERVE_GROUP = _("reserve group");
41
//]]>
43
//]]>
42
</script>
44
</script>
(-)a/koha-tmpl/intranet-tmpl/prog/en/js/holds.js (+6 lines)
Lines 42-47 $(document).ready(function() { Link Here
42
                                title += " - <span class='" + span_class + "'>" + oObj.itemnotes + "</span>"
42
                                title += " - <span class='" + span_class + "'>" + oObj.itemnotes + "</span>"
43
                            }
43
                            }
44
44
45
                            if (oObj.reserve_group_id) {
46
                              title += '<br>';
47
                              var link = '<a class="reserve-group" href="/cgi-bin/koha/reserve/reserve-group.pl?reserve_group_id=' + oObj.reserve_group_id + '">' + RESERVE_GROUP +'</a>'
48
                              title += '<span>' + PART_OF_A.format(link) + '</span>';
49
                            }
50
45
                            return title;
51
                            return title;
46
                        }
52
                        }
47
                    },
53
                    },
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (+1 lines)
Lines 1002-1005 No patron matched <span class="ex">[% message %]</span> Link Here
1002
        <p>You have already submitted a barcode, please wait for the checkout to process...</p>
1002
        <p>You have already submitted a barcode, please wait for the checkout to process...</p>
1003
    </div>
1003
    </div>
1004
</div>
1004
</div>
1005
[% INCLUDE 'reserve-group-modal.inc' %]
1005
[% INCLUDE 'intranet-bottom.inc' %]
1006
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt (-4 / +11 lines)
Lines 115-124 $(document).ready(function() { Link Here
115
            <td>[% reserveloo.count %]</td>
115
            <td>[% reserveloo.count %]</td>
116
            <td>[% reserveloo.rcount %]</td>
116
            <td>[% reserveloo.rcount %]</td>
117
            <td>
117
            <td>
118
            <p>
118
                <p>
119
                [% INCLUDE 'biblio-default-view.inc' biblionumber = reserveloo.biblionumber %]
119
                    [% INCLUDE 'biblio-default-view.inc' biblionumber = reserveloo.biblionumber %]
120
                [% reserveloo.title |html %]</a></p>
120
                    [% reserveloo.title |html %]</a>
121
                [% IF ( reserveloo.author ) %]<p> by [% reserveloo.author %]</p>[% END %]
121
                </p>
122
                [% IF ( reserveloo.author ) %]
123
                    <p> by [% reserveloo.author %]</p>
124
                [% END %]
125
                [% IF reserveloo.reserve_group_id %]
126
                    <p>(part of a <a class="reserve-group" href="/cgi-bin/koha/reserve/reserve-group.pl?reserve_group_id=[% reserveloo.reserve_group_id %]">reserve group</a>)</p>
127
                [% END %]
122
            </td>
128
            </td>
123
        [% ELSE %]
129
        [% ELSE %]
124
            <td>"</td>
130
            <td>"</td>
Lines 202-205 $(document).ready(function() { Link Here
202
</div>
208
</div>
203
</div>
209
</div>
204
</div>
210
</div>
211
[% INCLUDE 'reserve-group-modal.inc' %]
205
[% INCLUDE 'intranet-bottom.inc' %]
212
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt (+1 lines)
Lines 543-546 function validate1(date) { Link Here
543
[% INCLUDE 'circ-menu.inc' %]
543
[% INCLUDE 'circ-menu.inc' %]
544
</div>
544
</div>
545
</div>
545
</div>
546
[% INCLUDE 'reserve-group-modal.inc' %]
546
[% INCLUDE 'intranet-bottom.inc' %]
547
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (-3 / +11 lines)
Lines 424-436 function checkMultiHold() { Link Here
424
        <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
424
        <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
425
	</li>
425
	</li>
426
426
427
        [% UNLESS ( multi_hold ) %]
428
          <li> <label for="requestany">Place a hold on the next available item </label>
427
          <li> <label for="requestany">Place a hold on the next available item </label>
429
               <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
428
              [% IF multi_hold %]
429
                  <input type="checkbox" id="requestany" name="requestany" value="1" />
430
              [% ELSE %]
431
                  <input type="checkbox" id="requestany" name="requestany" checked="checked" value="1" />
432
              [% END %]
430
               <input type="hidden" name="biblioitem" value="[% biblioitemnumber %]" />
433
               <input type="hidden" name="biblioitem" value="[% biblioitemnumber %]" />
431
               <input type="hidden" name="alreadyreserved" value="[% alreadyreserved %]" />
434
               <input type="hidden" name="alreadyreserved" value="[% alreadyreserved %]" />
432
          </li>
435
          </li>
433
        [% END %]
434
436
435
</ol>
437
</ol>
436
   [% UNLESS ( multi_hold ) %]
438
   [% UNLESS ( multi_hold ) %]
Lines 802-807 function checkMultiHold() { Link Here
802
                 <input type="hidden" name="itemnumber" value="" />
804
                 <input type="hidden" name="itemnumber" value="" />
803
            [% END %]
805
            [% END %]
804
    [% END %]
806
    [% END %]
807
            [% IF reserveloo.reserve_group_id %]
808
                <div>(part of a <a href="/cgi-bin/koha/reserve/reserve-group.pl?reserve_group_id=[% reserveloo.reserve_group_id %]" class="reserve-group">reserve group</a>)</div>
809
            [% END %]
805
        </td>
810
        </td>
806
811
807
    [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
812
    [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
Lines 862-865 function checkMultiHold() { Link Here
862
867
863
</div>
868
</div>
864
</div>
869
</div>
870
871
[% INCLUDE 'reserve-group-modal.inc' %]
872
865
[% INCLUDE 'intranet-bottom.inc' %]
873
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/reserve-group.tt (+30 lines)
Line 0 Link Here
1
[% USE Biblio %]
2
[% INCLUDE 'doc-head-open.inc' %]
3
  <title>Koha &rsaquo; Circulation &rsaquo; Holds &rsaquo; Holds group ([% reserve_group_id %])</title>
4
  [% INCLUDE 'doc-head-close.inc' %]
5
</head>
6
<body id="reserve-reserve-group">
7
  <h1>Holds group ([% reserve_group_id %])</h1>
8
  <div id="main">
9
    [% IF reserves.size %]
10
      <table>
11
        <thead>
12
          <tr>
13
            <th>Title</th>
14
            <th>Priority</th>
15
            <th>Notes</th>
16
          </tr>
17
        </thead>
18
        <tbody>
19
          [% FOREACH reserve IN reserves %]
20
            [% biblio = Biblio.Get(reserve.biblionumber) %]
21
            <tr>
22
              <td><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblio.biblionumber %]">[% biblio.title %]</a></td>
23
              <td>[% reserve.priority %]</td>
24
              <td>[% reserve.reservenotes %]</td>
25
            </tr>
26
          [% END %]
27
        </tbody>
28
      <table>
29
    [% END %]
30
  [% INCLUDE 'intranet-bottom.inc' %]
(-)a/reserve/placerequest.pl (-2 / +10 lines)
Lines 50-55 my $title=$input->param('title'); Link Here
50
my $borrower=GetMember('borrowernumber'=>$borrowernumber);
50
my $borrower=GetMember('borrowernumber'=>$borrowernumber);
51
my $checkitem=$input->param('checkitem');
51
my $checkitem=$input->param('checkitem');
52
my $expirationdate = $input->param('expiration_date');
52
my $expirationdate = $input->param('expiration_date');
53
my $requestany = $input->param('requestany');
53
54
54
my $multi_hold = $input->param('multi_hold');
55
my $multi_hold = $input->param('multi_hold');
55
my $biblionumbers = $multi_hold ? $input->param('biblionumbers') : ($biblionumber . '/');
56
my $biblionumbers = $multi_hold ? $input->param('biblionumbers') : ($biblionumber . '/');
Lines 79-84 if (defined $checkitem && $checkitem ne ''){ Link Here
79
80
80
if ($type eq 'str8' && $borrower){
81
if ($type eq 'str8' && $borrower){
81
82
83
    my $reserve_group_id;
84
    if ($multi_hold && $requestany) {
85
        $reserve_group_id = AddReserveGroup();
86
    }
87
82
    foreach my $biblionumber (keys %bibinfos) {
88
    foreach my $biblionumber (keys %bibinfos) {
83
        my $count=@bibitems;
89
        my $count=@bibitems;
84
        @bibitems=sort @bibitems;
90
        @bibitems=sort @bibitems;
Lines 104-111 if ($type eq 'str8' && $borrower){ Link Here
104
110
105
        if ($multi_hold) {
111
        if ($multi_hold) {
106
            my $bibinfo = $bibinfos{$biblionumber};
112
            my $bibinfo = $bibinfos{$biblionumber};
107
            AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,[$biblionumber],
113
            AddReserve($branch, $borrower->{'borrowernumber'}, $biblionumber,
108
                       $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found);
114
                [$biblionumber], $bibinfo->{rank}, $startdate, $expirationdate,
115
                $notes, $bibinfo->{title}, $checkitem, $found,
116
                $reserve_group_id);
109
        } else {
117
        } else {
110
            # place a request on 1st available
118
            # place a request on 1st available
111
            AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem,$found);
119
            AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem,$found);
(-)a/reserve/request.pl (+1 lines)
Lines 562-567 foreach my $biblionumber (@biblionumbers) { Link Here
562
        $reserve{'suspend'}        = $res->suspend();
562
        $reserve{'suspend'}        = $res->suspend();
563
        $reserve{'suspend_until'}  = $res->suspend_until();
563
        $reserve{'suspend_until'}  = $res->suspend_until();
564
        $reserve{'reserve_id'}     = $res->reserve_id();
564
        $reserve{'reserve_id'}     = $res->reserve_id();
565
        $reserve{'reserve_group_id'} = $res->reserve_group_id;
565
566
566
        if ( C4::Context->preference('IndependentBranches') && $flags->{'superlibrarian'} != 1 ) {
567
        if ( C4::Context->preference('IndependentBranches') && $flags->{'superlibrarian'} != 1 ) {
567
            $reserve{'branchloop'} = [ GetBranchDetail( $res->branchcode() ) ];
568
            $reserve{'branchloop'} = [ GetBranchDetail( $res->branchcode() ) ];
(-)a/reserve/reserve-group.pl (+42 lines)
Line 0 Link Here
1
#!/usr/bin/env perl
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18
use Modern::Perl;
19
use CGI qw( -utf8 );
20
21
use C4::Auth;
22
use C4::Output;
23
use C4::Reserves;
24
25
my $cgi = new CGI;
26
my ($template, $loggedinuser, $cookie) = get_template_and_user({
27
    template_name   => "reserve/reserve-group.tt",
28
    query           => $cgi,
29
    type            => "intranet",
30
    authnotrequired => 0,
31
    flagsrequired   => { circulate => 'circulate_remaining_permissions' },
32
});
33
34
my $reserve_group_id = $cgi->param('reserve_group_id');
35
my @reserves = GetReserveGroupReserves($reserve_group_id);
36
37
$template->param(
38
    reserve_group_id => $reserve_group_id,
39
    reserves => \@reserves,
40
);
41
42
output_html_with_http_headers $cgi, $cookie, $template->output;
(-)a/svc/holds (-1 / +1 lines)
Lines 89-94 while ( my $h = $holds_rs->next() ) { Link Here
89
        waiting_at     => $h->branch()->branchname(),
89
        waiting_at     => $h->branch()->branchname(),
90
        waiting_here   => $h->branch()->branchcode() eq $branch,
90
        waiting_here   => $h->branch()->branchcode() eq $branch,
91
        priority       => $h->priority(),
91
        priority       => $h->priority(),
92
        reserve_group_id => $h->reserve_group_id,
92
        subtitle       => GetRecordValue(
93
        subtitle       => GetRecordValue(
93
            'subtitle', GetMarcBiblio($biblionumber),
94
            'subtitle', GetMarcBiblio($biblionumber),
94
            GetFrameworkCode($biblionumber)
95
            GetFrameworkCode($biblionumber)
95
- 

Return to bug 15516