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

(-)a/C4/Auth.pm (-16 / +16 lines)
Lines 391-411 sub get_template_and_user { Link Here
391
        marcflavour        => C4::Context->preference("marcflavour"),
391
        marcflavour        => C4::Context->preference("marcflavour"),
392
        persona            => C4::Context->preference("persona"),
392
        persona            => C4::Context->preference("persona"),
393
    );
393
    );
394
    if (C4::Context->userenv->{"branch"}) {
395
        my $desksaref = GetDesks(C4::Context->userenv->{"branch"});
396
        if ($#$desksaref > -1) {
397
            $template->param(
398
                LoginDeskcode => ( C4::Context->userenv ? C4::Context->userenv->{"deskcode"}    : undef ),
399
                LoginDeskname => ( C4::Context->userenv ? C4::Context->userenv->{"deskname"}    : undef ),
400
                HasDesk       => (1),
401
                );
402
        }
403
        else {
404
            $template->param(
405
                HasDesk       => (undef),
406
                );
407
        }
408
    }
409
    if ( $in->{'type'} eq "intranet" ) {
394
    if ( $in->{'type'} eq "intranet" ) {
410
        $template->param(
395
        $template->param(
411
            AmazonCoverImages                                                          => C4::Context->preference("AmazonCoverImages"),
396
            AmazonCoverImages                                                          => C4::Context->preference("AmazonCoverImages"),
Lines 440-446 sub get_template_and_user { Link Here
440
            UseKohaPlugins                                                             => C4::Context->preference('UseKohaPlugins'),
425
            UseKohaPlugins                                                             => C4::Context->preference('UseKohaPlugins'),
441
            UseCourseReserves                                                          => C4::Context->preference("UseCourseReserves"),
426
            UseCourseReserves                                                          => C4::Context->preference("UseCourseReserves"),
442
            useDischarge                                                               => C4::Context->preference('useDischarge'),
427
            useDischarge                                                               => C4::Context->preference('useDischarge'),
443
        );
428
                        );
429
        if ( C4::Context->userenv ? C4::Context->userenv->{"branch"} : undef) {
430
            my $desksaref = GetDesks(C4::Context->userenv->{"branch"});
431
            if ($#$desksaref > -1) {
432
                $template->param(
433
                                 LoginDeskcode => ( C4::Context->userenv->{"deskcode"} ),
434
                                 LoginDeskname => ( C4::Context->userenv->{"deskname"} ),
435
                                 HasDesk       => (1),
436
                                );
437
            }
438
            else {
439
                $template->param(
440
                                 HasDesk       => ( undef ),
441
                                );
442
            }
443
        }
444
    }
444
    }
445
    else {
445
    else {
446
        warn "template type should be OPAC, here it is=[" . $in->{'type'} . "]" unless ( $in->{'type'} eq 'opac' );
446
        warn "template type should be OPAC, here it is=[" . $in->{'type'} . "]" unless ( $in->{'type'} eq 'opac' );
(-)a/C4/Reserves.pm (-3 / +17 lines)
Lines 843-849 sub GetReservesForBranch { Link Here
843
    my $dbh = C4::Context->dbh;
843
    my $dbh = C4::Context->dbh;
844
844
845
    my $query = "
845
    my $query = "
846
        SELECT reserve_id,borrowernumber,reservedate,itemnumber,waitingdate
846
        SELECT reserve_id,borrowernumber,reservedate,itemnumber,waitingdate, deskcode
847
        FROM   reserves 
847
        FROM   reserves 
848
        WHERE   priority='0'
848
        WHERE   priority='0'
849
        AND found='W'
849
        AND found='W'
Lines 1353-1359 sub ModReserveStatus { Link Here
1353
1353
1354
=head2 ModReserveAffect
1354
=head2 ModReserveAffect
1355
1355
1356
  &ModReserveAffect($itemnumber,$borrowernumber,$diffBranchSend);
1356
  &ModReserveAffect($itemnumber,$borrowernumber,$diffBranchSend, $deskcode);
1357
1357
1358
This function affect an item and a status for a given reserve
1358
This function affect an item and a status for a given reserve
1359
The itemnumber parameter is used to find the biblionumber.
1359
The itemnumber parameter is used to find the biblionumber.
Lines 1367-1373 take care of the waiting status Link Here
1367
=cut
1367
=cut
1368
1368
1369
sub ModReserveAffect {
1369
sub ModReserveAffect {
1370
    my ( $itemnumber, $borrowernumber,$transferToDo ) = @_;
1370
    my ( $itemnumber, $borrowernumber,$transferToDo, $deskcode ) = @_;
1371
    my $dbh = C4::Context->dbh;
1371
    my $dbh = C4::Context->dbh;
1372
1372
1373
    # we want to attach $itemnumber to $borrowernumber, find the biblionumber
1373
    # we want to attach $itemnumber to $borrowernumber, find the biblionumber
Lines 1398-1403 sub ModReserveAffect { Link Here
1398
          AND biblionumber = ?
1398
          AND biblionumber = ?
1399
    ";
1399
    ";
1400
    }
1400
    }
1401
    elsif ($deskcode) {
1402
        # add deskcode with waiting
1403
        $query = "
1404
            UPDATE reserves
1405
            SET     priority = 0,
1406
                    found = 'W',
1407
                    waitingdate = NOW(),
1408
                    deskcode = '$deskcode',
1409
                    itemnumber = ?
1410
            WHERE borrowernumber = ?
1411
              AND biblionumber = ?
1412
        ";
1413
    }
1401
    else {
1414
    else {
1402
    # affect the reserve to Waiting as well.
1415
    # affect the reserve to Waiting as well.
1403
        $query = "
1416
        $query = "
Lines 1405-1410 sub ModReserveAffect { Link Here
1405
            SET     priority = 0,
1418
            SET     priority = 0,
1406
                    found = 'W',
1419
                    found = 'W',
1407
                    waitingdate = NOW(),
1420
                    waitingdate = NOW(),
1421
                    deskcode = NULL,
1408
                    itemnumber = ?
1422
                    itemnumber = ?
1409
            WHERE borrowernumber = ?
1423
            WHERE borrowernumber = ?
1410
              AND biblionumber = ?
1424
              AND biblionumber = ?
(-)a/circ/returns.pl (-1 / +2 lines)
Lines 144-155 if ( $query->param('resbarcode') ) { Link Here
144
    my $resbarcode     = $query->param('resbarcode');
144
    my $resbarcode     = $query->param('resbarcode');
145
    my $diffBranchReturned = $query->param('diffBranch');
145
    my $diffBranchReturned = $query->param('diffBranch');
146
    my $iteminfo   = GetBiblioFromItemNumber($item);
146
    my $iteminfo   = GetBiblioFromItemNumber($item);
147
    my $deskcode = C4::Context->userenv->{"deskcode"} || undef;
147
    # fix up item type for display
148
    # fix up item type for display
148
    $iteminfo->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $iteminfo->{'itype'} : $iteminfo->{'itemtype'};
149
    $iteminfo->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $iteminfo->{'itype'} : $iteminfo->{'itemtype'};
149
    my $diffBranchSend = ($userenv_branch ne $diffBranchReturned) ? $diffBranchReturned : undef;
150
    my $diffBranchSend = ($userenv_branch ne $diffBranchReturned) ? $diffBranchReturned : undef;
150
# diffBranchSend tells ModReserveAffect whether document is expected in this library or not,
151
# diffBranchSend tells ModReserveAffect whether document is expected in this library or not,
151
# i.e., whether to apply waiting status
152
# i.e., whether to apply waiting status
152
    ModReserveAffect( $item, $borrowernumber, $diffBranchSend);
153
    ModReserveAffect( $item, $borrowernumber, $diffBranchSend, $deskcode);
153
#   check if we have other reserves for this document, if we have a return send the message of transfer
154
#   check if we have other reserves for this document, if we have a return send the message of transfer
154
    my ( $messages, $nextreservinfo ) = GetOtherReserves($item);
155
    my ( $messages, $nextreservinfo ) = GetOtherReserves($item);
155
156
(-)a/circ/waitingreserves.pl (+9 lines)
Lines 24-29 use CGI qw ( -utf8 ); Link Here
24
use C4::Context;
24
use C4::Context;
25
use C4::Output;
25
use C4::Output;
26
use C4::Branch; # GetBranchName
26
use C4::Branch; # GetBranchName
27
use C4::Desks;
27
use C4::Auth;
28
use C4::Auth;
28
use C4::Dates qw/format_date/;
29
use C4::Dates qw/format_date/;
29
use C4::Circulation;
30
use C4::Circulation;
Lines 93-110 foreach my $num (@getreserves) { Link Here
93
    my $itemnumber = $num->{'itemnumber'};
94
    my $itemnumber = $num->{'itemnumber'};
94
    my $gettitle     = GetBiblioFromItemNumber( $itemnumber );
95
    my $gettitle     = GetBiblioFromItemNumber( $itemnumber );
95
    my $borrowernum = $num->{'borrowernumber'};
96
    my $borrowernum = $num->{'borrowernumber'};
97
    my $deskcode = $num->{'deskcode'};
98
    my $desk = GetDesk($deskcode);
99
    my $deskname;
100
    if ($desk) {
101
        $deskname = $desk->{'deskname'};
102
    }
96
    my $holdingbranch = $gettitle->{'holdingbranch'};
103
    my $holdingbranch = $gettitle->{'holdingbranch'};
97
    my $homebranch = $gettitle->{'homebranch'};
104
    my $homebranch = $gettitle->{'homebranch'};
98
105
99
    my %getreserv = (
106
    my %getreserv = (
100
        itemnumber => $itemnumber,
107
        itemnumber => $itemnumber,
101
        borrowernum => $borrowernum,
108
        borrowernum => $borrowernum,
109
        deskname => $deskname,
102
    );
110
    );
103
111
104
    # fix up item type for display
112
    # fix up item type for display
105
    $gettitle->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $gettitle->{'itype'} : $gettitle->{'itemtype'};
113
    $gettitle->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $gettitle->{'itype'} : $gettitle->{'itemtype'};
106
    my $getborrower = GetMember(borrowernumber => $num->{'borrowernumber'});
114
    my $getborrower = GetMember(borrowernumber => $num->{'borrowernumber'});
107
    my $itemtypeinfo = getitemtypeinfo( $gettitle->{'itemtype'} );  # using the fixed up itype/itemtype
115
    my $itemtypeinfo = getitemtypeinfo( $gettitle->{'itemtype'} );  # using the fixed up itype/itemtype
116
    
108
    $getreserv{'waitingdate'} = $num->{'waitingdate'};
117
    $getreserv{'waitingdate'} = $num->{'waitingdate'};
109
    my ( $waiting_year, $waiting_month, $waiting_day ) = split (/-/, $num->{'waitingdate'});
118
    my ( $waiting_year, $waiting_month, $waiting_day ) = split (/-/, $num->{'waitingdate'});
110
    ( $waiting_year, $waiting_month, $waiting_day ) =
119
    ( $waiting_year, $waiting_month, $waiting_day ) =
(-)a/installer/data/mysql/atomicupdate/bug_138881_link_desk_to_reserves.sql (+10 lines)
Line 0 Link Here
1
ALTER TABLE reserves     ADD COLUMN deskcode VARCHAR(10) DEFAULT NULL AFTER branchcode
2
                         ADD KEY deskcode (deskcode)
3
                         ADD CONSTRAINT reserves_ibfk_5
4
                           FOREIGN KEY (deskcode) REFERENCES desks (deskcode)
5
                           ON DELETE CASCADE ON UPDATE CASCADE;
6
ALTER TABLE old_reserves ADD COLUMN deskcode VARCHAR(10) DEFAULT NULL AFTER branchcode
7
                         ADD KEY deskcode (deskcode)
8
                         ADD CONSTRAINT old_reserves_ibfk_4
9
                           FOREIGN KEY (deskcode) REFERENCES desks (deskcode)
10
                           ON DELETE SET NULL ON UPDATE SET NULL;
(-)a/installer/data/mysql/kohastructure.sql (-1 / +5 lines)
Lines 1670-1675 CREATE TABLE `old_reserves` ( -- this table holds all holds/reserves that have b Link Here
1670
  `biblionumber` int(11) default NULL, -- foreign key from the biblio table defining which bib record this hold is on
1670
  `biblionumber` int(11) default NULL, -- foreign key from the biblio table defining which bib record this hold is on
1671
  `constrainttype` varchar(1) default NULL,
1671
  `constrainttype` varchar(1) default NULL,
1672
  `branchcode` varchar(10) default NULL, -- foreign key from the branches table defining which branch the patron wishes to pick this hold up at
1672
  `branchcode` varchar(10) default NULL, -- foreign key from the branches table defining which branch the patron wishes to pick this hold up at
1673
  `deskcode` varchar(10) default NULL, -- foreign key from the desks table defining which desk the patron may pick this hold up from
1673
  `notificationdate` date default NULL, -- currently unused
1674
  `notificationdate` date default NULL, -- currently unused
1674
  `reminderdate` date default NULL, -- currently unused
1675
  `reminderdate` date default NULL, -- currently unused
1675
  `cancellationdate` date default NULL, -- the date this hold was cancelled
1676
  `cancellationdate` date default NULL, -- the date this hold was cancelled
Lines 1857-1862 CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha Link Here
1857
  `biblionumber` int(11) NOT NULL default 0, -- foreign key from the biblio table defining which bib record this hold is on
1858
  `biblionumber` int(11) NOT NULL default 0, -- foreign key from the biblio table defining which bib record this hold is on
1858
  `constrainttype` varchar(1) default NULL,
1859
  `constrainttype` varchar(1) default NULL,
1859
  `branchcode` varchar(10) default NULL, -- foreign key from the branches table defining which branch the patron wishes to pick this hold up at
1860
  `branchcode` varchar(10) default NULL, -- foreign key from the branches table defining which branch the patron wishes to pick this hold up at
1861
  `deskcode` varchar(10) default NULL, -- foreign key from the desks table defining which desk the patron may pick this hold up from
1860
  `notificationdate` date default NULL, -- currently unused
1862
  `notificationdate` date default NULL, -- currently unused
1861
  `reminderdate` date default NULL, -- currently unused
1863
  `reminderdate` date default NULL, -- currently unused
1862
  `cancellationdate` date default NULL, -- the date this hold was cancelled
1864
  `cancellationdate` date default NULL, -- the date this hold was cancelled
Lines 1876-1885 CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha Link Here
1876
  KEY `biblionumber` (`biblionumber`),
1878
  KEY `biblionumber` (`biblionumber`),
1877
  KEY `itemnumber` (`itemnumber`),
1879
  KEY `itemnumber` (`itemnumber`),
1878
  KEY `branchcode` (`branchcode`),
1880
  KEY `branchcode` (`branchcode`),
1881
  KEY `deskcode` (`deskcode`),
1879
  CONSTRAINT `reserves_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1882
  CONSTRAINT `reserves_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1880
  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,
1881
  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,
1882
  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 (`deskcode`) REFERENCES `desks` (`deskcode`) ON DELETE CASCADE ON UPDATE CASCADE
1883
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1887
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1884
1888
1885
--
1889
--
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt (+6 lines)
Lines 82-87 Link Here
82
                    <th class="anti-the">Title</th>
82
                    <th class="anti-the">Title</th>
83
                    <th>Patron</th>
83
                    <th>Patron</th>
84
                    <th>Location</th>
84
                    <th>Location</th>
85
		    [% IF HasDesk %]
86
                    <th>Desk</th>
87
		    [% END %]
85
                    <th>Copy number</th>
88
                    <th>Copy number</th>
86
                    <th>Enumeration</th>
89
                    <th>Enumeration</th>
87
                    <th>Action</th>
90
                    <th>Action</th>
Lines 101-106 Link Here
101
                        [% reserveloo.borrowermail %]</a>[% END %]
104
                        [% reserveloo.borrowermail %]</a>[% END %]
102
                    </td>
105
                    </td>
103
                    <td>[% Branches.GetName( reserveloo.homebranch ) %]<br />[% reserveloo.itemcallnumber %]</td>
106
                    <td>[% Branches.GetName( reserveloo.homebranch ) %]<br />[% reserveloo.itemcallnumber %]</td>
107
		    [% IF HasDesk %]
108
                    <td>[% reserveloo.deskname %]</td>
109
		    [% END %]
104
                    <td>[% reserveloo.copynumber %]</td>
110
                    <td>[% reserveloo.copynumber %]</td>
105
                    <td>[% reserveloo.enumchron %]</td>
111
                    <td>[% reserveloo.enumchron %]</td>
106
                    <td>
112
                    <td>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt (-1 / +1 lines)
Lines 566-572 Link Here
566
                                                [% IF ( RESERVE.wait ) %]
566
                                                [% IF ( RESERVE.wait ) %]
567
                                                    [% IF ( RESERVE.atdestination ) %]
567
                                                    [% IF ( RESERVE.atdestination ) %]
568
                                                        [% IF ( RESERVE.found ) %]
568
                                                        [% IF ( RESERVE.found ) %]
569
                                                            Item waiting at <b> [% RESERVE.wbrname %]</b>[% IF ( RESERVE.waitingdate ) %] since [% RESERVE.waitingdate | $KohaDates %][% END %]
569
                                                            Item waiting at <b> [% RESERVE.wbrname %]</b>[% IF (RESERVE.wdkname) %], [% RESERVE.wdkname %][% END %][% IF ( RESERVE.waitingdate ) %], since [% RESERVE.waitingdate | $KohaDates %][% END %]
570
                                                            <input type="hidden" name="pickup" value="[% RESERVE.wbrcd %]" />
570
                                                            <input type="hidden" name="pickup" value="[% RESERVE.wbrcd %]" />
571
                                                        [% ELSE %]
571
                                                        [% ELSE %]
572
                                                            Item waiting to be pulled from <b> [% RESERVE.wbrname %]</b>
572
                                                            Item waiting to be pulled from <b> [% RESERVE.wbrname %]</b>
(-)a/opac/opac-user.pl (-1 / +7 lines)
Lines 34-39 use C4::Biblio; Link Here
34
use C4::Items;
34
use C4::Items;
35
use C4::Letters;
35
use C4::Letters;
36
use C4::Branch; # GetBranches
36
use C4::Branch; # GetBranches
37
use C4::Desks;
37
use Koha::DateUtils;
38
use Koha::DateUtils;
38
use Koha::Borrower::Debarments qw(IsDebarred);
39
use Koha::Borrower::Debarments qw(IsDebarred);
39
40
Lines 325-330 foreach my $res (@reserves) { Link Here
325
            $res->{'wbrcode'} = $res->{'branchcode'};
326
            $res->{'wbrcode'} = $res->{'branchcode'};
326
            $res->{'itemnumber'}    = $res->{'itemnumber'};
327
            $res->{'itemnumber'}    = $res->{'itemnumber'};
327
            $res->{'wbrname'} = $branches->{$res->{'branchcode'}}->{'branchname'};
328
            $res->{'wbrname'} = $branches->{$res->{'branchcode'}}->{'branchname'};
329
            if ($res->{'deskcode'}) {
330
                my $desk = GetDesk($res->{'deskcode'});
331
                if ($desk) {
332
                    $res->{'wdkname'} = $desk->{'deskname'};
333
                }
334
            }
328
            if($res->{'holdingbranch'} eq $res->{'wbrcode'}){
335
            if($res->{'holdingbranch'} eq $res->{'wbrcode'}){
329
                $res->{'atdestination'} = 1;
336
                $res->{'atdestination'} = 1;
330
            }
337
            }
331
- 

Return to bug 13881