@@ -, +, @@ --- Koha/Hold.pm | 12 ++++++++++++ Koha/Item.pm | 25 +++++++++++++++++++++++++ svc/holds | 21 +++++++++++++-------- 3 files changed, 50 insertions(+), 8 deletions(-) --- a/Koha/Hold.pm +++ a/Koha/Hold.pm @@ -62,6 +62,18 @@ sub waiting_expires_on { return $dt; } +=head3 is_waiting + +Returns true if hold is a waiting hold + +=cut + +sub is_waiting { + my ($self) = @_; + + return $self->found() eq 'W'; +} + =head3 biblio Returns the related Koha::Biblio object for this hold --- a/Koha/Item.pm +++ a/Koha/Item.pm @@ -47,6 +47,31 @@ sub effective_itemtype { return $self->_result()->effective_itemtype(); } +=head3 home_branch + +=cut + +sub home_branch { + my ($self) = @_; + + $self->{_home_branch} ||= Koha::Branches->find( $self->homebranch() ); + + return $self->{_home_branch}; +} + +=head3 holding_branch + +=cut + +sub holding_branch { + my ($self) = @_; + + $self->{_holding_branch} ||= Koha::Branches->find( $self->holdingbranch() ); + + return $self->{_holding_branch}; +} + + =head3 type =cut --- a/svc/holds +++ a/svc/holds @@ -29,8 +29,8 @@ use C4::Charset; use C4::Circulation qw(GetTransfers); use C4::Context; -use Koha::Database; use Koha::DateUtils; +use Koha::Holds; my $input = new CGI; @@ -59,7 +59,7 @@ my $sorting_column = $sort_columns[ $input->param('iSortCol_0') ] binmode STDOUT, ":encoding(UTF-8)"; print $input->header( -type => 'text/plain', -charset => 'UTF-8' ); -my $holds_rs = $schema->resultset('Reserve')->search( +my $holds_rs = Koha::Holds->search( { borrowernumber => $borrowernumber }, { prefetch => { 'item' => 'biblio' }, @@ -85,9 +85,9 @@ while ( my $h = $holds_rs->next() ) { suspend => $h->suspend(), suspend_until => $h->suspend_until(), found => $h->found(), - waiting => $h->found() eq 'W', - waiting_at => $h->branchcode()->branchname(), - waiting_here => $h->branchcode()->branchcode() eq $branch, + waiting => $h->is_waiting(), + waiting_at => $h->branch()->branchname(), + waiting_here => $h->branch()->branchcode() eq $branch, priority => $h->priority(), subtitle => GetRecordValue( 'subtitle', GetMarcBiblio($biblionumber), @@ -107,6 +107,11 @@ while ( my $h = $holds_rs->next() ) { : q{}, }; + if ( my $e = $h->waiting_expires_on() ) { + $hold->{expirationdate} = $e->ymd(); + $hold->{expirationdate_formatted} = output_pref( { dt => $e, dateonly => 1 }); + } + $hold->{transfered} = 0; $hold->{not_transfered} = 0; @@ -124,11 +129,11 @@ while ( my $h = $holds_rs->next() ) { $hold->{date_sent} = output_pref( dt_from_string($transferred_when) ); $hold->{from_branch} = GetBranchName($transferred_from); } - elsif ( $item->holdingbranch()->branchcode() ne - $h->branchcode()->branchcode() ) + elsif ( $item->holding_branch()->branchcode() ne + $h->branch()->branchcode() ) { $hold->{not_transferred} = 1; - $hold->{not_transferred_by} = $h->item()->holdingbranch()->branchname(); + $hold->{not_transferred_by} = $h->item()->holding_branch()->branchname(); } } --