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

(-)a/Koha/Reserves.pm (+65 lines)
Lines 60-65 sub GetLastpickupdate { Link Here
60
    return $expiration;
60
    return $expiration;
61
}
61
}
62
62
63
=head2 GetWaitingReserves
63
64
65
  my $waitingReserves = GetWaitingReserves($borrowernumber);
66
  
67
@PARAM1 Integer from koha.borrowers.borrowernumber
68
@RETURNS DBIx:: containing Reservation-objects.
69
=cut
70
sub GetWaitingReserves {
71
    my ($borrowernumber) = @_;
72
    
73
    my $schema = Koha::Database->new()->schema();
74
    my $reserves_rs = $schema->resultset('Reserve')->search(
75
        { -and => [
76
               borrowernumber => $borrowernumber,
77
               found => 'W'
78
            ]
79
        },
80
        {
81
            prefetch => { 'item'  =>  'biblio' },
82
        }
83
    );
84
85
    my $currentBranch = C4::Context->userenv->{branch};
86
87
    my @waitingReserves;
88
    while ( my $reserve = $reserves_rs->next() ) {
89
        my %waitingReserveInfo;
90
91
        my $lastpickupdate = Koha::Reserves::GetLastpickupdate( $reserve );
92
        $lastpickupdate = C4::Dates->new($lastpickupdate->ymd(), 'iso')->output();
93
94
        my $pickupBranchcode = $reserve->branchcode();
95
        my $pickupBranch;
96
        if (ref $pickupBranchcode eq 'Koha::Schema::Result::Branch') {
97
            $pickupBranch = $pickupBranchcode;
98
            $pickupBranchcode = $pickupBranchcode->branchcode();
99
        }
100
101
        my $biblio = $reserve->biblio();
102
        if ($biblio) { #For some reason it is possible for a waiting hold to not have a biblio?
103
            $waitingReserveInfo{title}          = $biblio->title();
104
            $waitingReserveInfo{biblionumber}   = $biblio->biblionumber();
105
            $waitingReserveInfo{author}         = $biblio->author();
106
        }
107
        else {
108
            $waitingReserveInfo{title}          = "<<ERROR, no biblio found>>";
109
        }
110
111
        $waitingReserveInfo{lastpickupdate} = $lastpickupdate;
112
113
        my $item = $reserve->item();
114
        if ($item) {
115
            $waitingReserveInfo{itemcallnumber} = $reserve->item()->itemcallnumber();
116
        }
117
        else {
118
            $waitingReserveInfo{itemcallnumber} = "<<ERROR, no item found>>";
119
        }
120
121
        #$waitingReserveInfo{itemcallnumber} = $reserve->item()->itemcallnumber();
122
        $waitingReserveInfo{waitinghere}    = 1 if $pickupBranchcode eq $currentBranch;
123
        $waitingReserveInfo{waitingat}      = $pickupBranch->branchname();
124
125
        push @waitingReserves, \%waitingReserveInfo;
126
    }
127
    return \@waitingReserves;
128
}
64
129
65
return 1;
130
return 1;
(-)a/circ/circulation.pl (+3 lines)
Lines 43-48 use C4::Members::Attributes qw(GetBorrowerAttributes); Link Here
43
use Koha::Borrower::Debarments qw(GetDebarments IsDebarred);
43
use Koha::Borrower::Debarments qw(GetDebarments IsDebarred);
44
use Koha::DateUtils;
44
use Koha::DateUtils;
45
use Koha::Database;
45
use Koha::Database;
46
use Koha::Reserves;
46
47
47
use Date::Calc qw(
48
use Date::Calc qw(
48
  Today
49
  Today
Lines 378-383 if ($borrowernumber) { Link Here
378
          ->count( { borrowernumber => $borrowernumber } ) );
379
          ->count( { borrowernumber => $borrowernumber } ) );
379
380
380
    $template->param( adultborrower => 1 ) if ( $borrower->{'category_type'} eq 'A' );
381
    $template->param( adultborrower => 1 ) if ( $borrower->{'category_type'} eq 'A' );
382
383
    $template->param( WaitingReserveLoop => Koha::Reserves::GetWaitingReserves($borrowernumber) );
381
}
384
}
382
385
383
my @values;
386
my @values;
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (-15 / +19 lines)
Lines 616-635 No patron matched <span class="ex">[% message %]</span> Link Here
616
616
617
        </div>
617
        </div>
618
618
619
			[% IF ( WaitingReserveLoop ) %]
619
            [% IF ( WaitingReserveLoop ) %]
620
			<div id="holdswaiting" class="circmessage">
620
            <div id="holdswaiting" class="circmessage">
621
		    <h4>Holds waiting:</h4>
621
            <h4>Holds waiting:</h4>
622
			        [% FOREACH WaitingReserveLoo IN WaitingReserveLoop %]
622
                    [% FOREACH WaitingReserveLoo IN WaitingReserveLoop %]
623
			            <ul>
623
                        <ul>
624
			                <li> <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% WaitingReserveLoo.biblionumber %]">[% WaitingReserveLoo.title |html %]</a> ([% WaitingReserveLoo.itemtype %]), [% IF ( WaitingReserveLoo.author ) %]by [% WaitingReserveLoo.author %][% END %] [% IF ( WaitingReserveLoo.itemcallnumber ) %][[% WaitingReserveLoo.itemcallnumber %]] [% END %]Hold placed on [% WaitingReserveLoo.reservedate %].
624
                            <li> <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% WaitingReserveLoo.biblionumber %]">[% WaitingReserveLoo.title |html %]</a> [% IF ( WaitingReserveLoo.author ) %] [% WaitingReserveLoo.author %][% END %] [% IF ( WaitingReserveLoo.itemcallnumber ) %][[% WaitingReserveLoo.itemcallnumber %]] [% END %]
625
			            [% IF ( WaitingReserveLoo.waitingat ) %]
625
                        [% IF ( WaitingReserveLoo.lastpickupdate ) %]
626
			                <br />[% IF ( WaitingReserveLoo.waitinghere ) %]<strong class="waitinghere">[% ELSE %]<strong>[% END %]Waiting at [% WaitingReserveLoo.waitingat %]</strong>
626
                            Last pickup date [% WaitingReserveLoo.lastpickupdate %]
627
			            [% END %]
627
                        [% END %]
628
			                </li>
628
                        [% IF ( WaitingReserveLoo.waitingat ) %]
629
			            </ul>
629
                            <br />[% IF ( WaitingReserveLoo.waitinghere ) %]<strong class="waitinghere">[% ELSE %]<strong>[% END %]
630
			    [% END %]
630
                                Waiting at [% WaitingReserveLoo.waitingat %]
631
			</div>
631
                            </strong>
632
			<!-- /If WaitingReserveLoop -->[% END %]
632
                        [% END %]
633
                            </li>
634
                        </ul>
635
                [% END %]
636
            </div>
637
            <!-- /If WaitingReserveLoop -->[% END %]
633
	[% IF ( notes ) %]
638
	[% IF ( notes ) %]
634
			<div id="circnotes" class="circmessage">
639
			<div id="circnotes" class="circmessage">
635
			<h4>Notes:</h4>
640
			<h4>Notes:</h4>
636
- 

Return to bug 12892