From d010004702ccd70e8936bb08f2f6b380356c2f17 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 Signed-off-by: Katrin Fischer --- 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 6d65f88b8b..99ea77e630 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 receive diff --git a/t/db_dependent/Koha/Item/Transfer.t b/t/db_dependent/Koha/Item/Transfer.t index b82e2c8094..9a8c8258fa 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; @@ -169,3 +170,39 @@ subtest 'receive tests' => sub { $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.11.0