From 66b1510a63e373bd55a9a6eeba9f02f995ea9b00 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 10 May 2022 10:42:51 +0200 Subject: [PATCH] Bug 30650: Add filter_by_scheduled_today A bit of cleaning Sponsored-by: Association KohaLa - https://koha-fr.org/ --- Koha/CurbsidePickup.pm | 3 +-- Koha/CurbsidePickups.pm | 12 ++++++++++++ circ/curbside_pickups.pl | 8 +++----- mainpage.pl | 3 +-- opac/opac-curbside-pickups.pl | 9 +++------ t/db_dependent/Koha/CurbsidePickups.t | 6 +++++- 6 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Koha/CurbsidePickup.pm b/Koha/CurbsidePickup.pm index c82c7fa3148..703a11be4f3 100644 --- a/Koha/CurbsidePickup.pm +++ b/Koha/CurbsidePickup.pm @@ -68,9 +68,8 @@ sub new { branchcode => $params->{branchcode}, borrowernumber => $params->{borrowernumber}, delivered_datetime => undef, - scheduled_pickup_datetime => { '>' => \'DATE(NOW())' }, } - ); + )->filter_by_scheduled_today; Koha::Exceptions::CubsidePickup::TooManyPickups->throw( branchcode => $params->{branchcode}, borrowernumber => $params->{borrowernumber} diff --git a/Koha/CurbsidePickups.pm b/Koha/CurbsidePickups.pm index b30b003b3cb..97eaa8faef1 100644 --- a/Koha/CurbsidePickups.pm +++ b/Koha/CurbsidePickups.pm @@ -20,6 +20,7 @@ use Modern::Perl; use Carp; use Koha::Database; +use Koha::DateUtils qw( dt_from_string ); use Koha::CurbsidePickup; @@ -82,6 +83,17 @@ sub filter_by_delivered { return $self->search( { delivered_datetime => { -not => undef } } ); } +=head3 filter_by_scheduled_today + +Filter by pickups that are scheduled today + +=cut +sub filter_by_scheduled_today { + my ($self) = @_; + my $dtf = Koha::Database->new->schema->storage->datetime_parser; + return $self->search( { scheduled_pickup_datetime => { '>' => $dtf->format_date(dt_from_string) } } ); +} + =head2 Internal Methods =cut diff --git a/circ/curbside_pickups.pl b/circ/curbside_pickups.pl index 8fdc150ee14..a849f8f938d 100755 --- a/circ/curbside_pickups.pl +++ b/circ/curbside_pickups.pl @@ -61,9 +61,8 @@ if ( $op eq 'find-patron' ) { branchcode => $branchcode, borrowernumber => $patron->id, delivered_datetime => undef, - scheduled_pickup_datetime => { '>' => \'DATE(NOW())' }, } - ); + )->filter_by_scheduled_today; } else { push @messages, { type => 'error', @@ -143,10 +142,9 @@ $template->param( policy => Koha::CurbsidePickupPolicies->find({ branchcode => $branchcode }), curbside_pickups => Koha::CurbsidePickups->search( { - branchcode => $branchcode, - scheduled_pickup_datetime => { '>' => \'DATE(NOW())' }, + branchcode => $branchcode, } - ), + )->filter_by_scheduled_today, ); diff --git a/mainpage.pl b/mainpage.pl index b34a46d8ed4..f5872e65bbb 100755 --- a/mainpage.pl +++ b/mainpage.pl @@ -114,9 +114,8 @@ if ( C4::Context->preference('CurbsidePickup') ) { new_curbside_pickups => Koha::CurbsidePickups->search( { branchcode => $homebranch, - scheduled_pickup_datetime => { '>' => \'DATE(NOW())' }, } - )->filter_by_to_be_staged + )->filter_by_to_be_staged->filter_by_scheduled_today, ); } diff --git a/opac/opac-curbside-pickups.pl b/opac/opac-curbside-pickups.pl index 2a8a1ab64a0..7e32a027294 100755 --- a/opac/opac-curbside-pickups.pl +++ b/opac/opac-curbside-pickups.pl @@ -108,20 +108,17 @@ $template->param( patron_curbside_pickups => Koha::CurbsidePickups->search( { borrowernumber => $logged_in_patron->borrowernumber, - scheduled_pickup_datetime => { '>' => \'DATE(NOW())' }, }, { order_by => { -asc => 'scheduled_pickup_datetime' } } - ), + )->filter_by_scheduled_today, curbside_pickups => Koha::CurbsidePickups->search( - { - scheduled_pickup_datetime => { '>' => \'DATE(NOW())' }, - }, + {}, { order_by => { -asc => 'scheduled_pickup_datetime' } } - ), + )->filter_by_scheduled_today, ); output_html_with_http_headers $input, $cookie, $template->output, undef, diff --git a/t/db_dependent/Koha/CurbsidePickups.t b/t/db_dependent/Koha/CurbsidePickups.t index bb8adcdd2ac..db66d81f89e 100755 --- a/t/db_dependent/Koha/CurbsidePickups.t +++ b/t/db_dependent/Koha/CurbsidePickups.t @@ -147,7 +147,7 @@ subtest 'Create a pickup' => sub { }; subtest 'workflow' => sub { - plan tests => 9; + plan tests => 11; my $pickups = Koha::CurbsidePickups->search( { branchcode => $library->branchcode } ); @@ -184,6 +184,10 @@ subtest 'workflow' => sub { is( $cp->status, 'delivered' ); is( $pickups->filter_by_delivered->count, 1 ); + is( $pickups->filter_by_scheduled_today->count, 1 ); + $cp->scheduled_pickup_datetime($today->clone->subtract(days => 1))->store; + is( $pickups->filter_by_scheduled_today->count, 0 ); + $cp->delete; }; -- 2.25.1