From 6becadc96ea52f246d7063a9fda25d68c8c136f0 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 18 Dec 2020 16:35:44 +0000 Subject: [PATCH] Bug 26481: Add Koha::Item::Transfer->in_transit method MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Joonas Kylmälä Signed-off-by: Jonathan Druart --- 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 0afe12ed1a..d4066f08f7 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 100755 --- 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 'receive 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.39.5