From 74bdd48bf6e267108bb5799b57e1e3b6ff8c328e Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 24 Mar 2020 07:02:25 +0000 Subject: [PATCH] Bug 26481: Add Koha::Item::Transfer->in_transit method This method returns a boolean representing the in_transit state of the transfer. Test plan 1/ Run the included tests Signed-off-by: Kathleen Milne --- Koha/Item/Transfer.pm | 13 ++++++++++ t/db_dependent/Koha/Item/Transfer.t | 39 ++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/Koha/Item/Transfer.pm b/Koha/Item/Transfer.pm index 80ba0458ba..50c6df832c 100644 --- a/Koha/Item/Transfer.pm +++ b/Koha/Item/Transfer.pm @@ -82,6 +82,19 @@ sub transit { ModDateLastSeen( $self->item->itemnumber ); return $self; + +} + +=head3 in_transit + +Boolean returning whether the transfer is in transit or waiting + +=cut + +sub in_transit { + my ($self) = @_; + + return ( defined( $self->datesent ) && !defined( $self->datearrived ) ); } =head3 receipt diff --git a/t/db_dependent/Koha/Item/Transfer.t b/t/db_dependent/Koha/Item/Transfer.t index 2814acec5c..da34292135 100644 --- a/t/db_dependent/Koha/Item/Transfer.t +++ b/t/db_dependent/Koha/Item/Transfer.t @@ -20,10 +20,11 @@ use Modern::Perl; use Koha::Database; +use Koha::DateUtils; use t::lib::TestBuilder; -use Test::More tests => 3; +use Test::More tests => 4; use Test::Exception; my $schema = Koha::Database->new->schema; @@ -167,5 +168,41 @@ subtest 'receipt tests' => sub { # Last seen ok( $item->datelastseen, 'Receipt set item datelastseen date' ); + $schema->storage->txn_rollback; +}; + +subtest 'in_transit tests' => sub { + + plan tests => 3; + + $schema->storage->txn_begin; + + my $library_from = $builder->build_object( { class => 'Koha::Libraries' } ); + my $library_to = $builder->build_object( { class => 'Koha::Libraries' } ); + my $item = $builder->build_sample_item( + { + homebranch => $library_to->branchcode, + holdingbranch => $library_from->branchcode, + } + ); + + my $transfer = Koha::Item::Transfer->new( + { + itemnumber => $item->itemnumber, + frombranch => $library_from->branchcode, + tobranch => $library_to->branchcode, + daterequested => dt_from_string, + } + )->store; + + ok( !$transfer->in_transit, 'in_transit returns false when only daterequested is defined' ); + + $transfer->datesent(dt_from_string)->store; + ok( $transfer->in_transit, 'in_transit returns true when datesent is defined'); + + $transfer->datearrived(dt_from_string)->store; + ok( !$transfer->in_transit, 'in_transit returns false when datearrived is defined'); + + $schema->storage->txn_rollback; }; -- 2.20.1