View | Details | Raw Unified | Return to bug 30650
Collapse All | Expand All

(-)a/Koha/CurbsidePickup.pm (-2 / +1 lines)
Lines 68-76 sub new { Link Here
68
            branchcode                => $params->{branchcode},
68
            branchcode                => $params->{branchcode},
69
            borrowernumber            => $params->{borrowernumber},
69
            borrowernumber            => $params->{borrowernumber},
70
            delivered_datetime        => undef,
70
            delivered_datetime        => undef,
71
            scheduled_pickup_datetime => { '>' => \'DATE(NOW())' },
72
        }
71
        }
73
    );
72
    )->filter_by_scheduled_today;
74
    Koha::Exceptions::CurbsidePickup::TooManyPickups->throw(
73
    Koha::Exceptions::CurbsidePickup::TooManyPickups->throw(
75
        branchcode     => $params->{branchcode},
74
        branchcode     => $params->{branchcode},
76
        borrowernumber => $params->{borrowernumber}
75
        borrowernumber => $params->{borrowernumber}
(-)a/Koha/CurbsidePickups.pm (+12 lines)
Lines 20-25 use Modern::Perl; Link Here
20
use Carp;
20
use Carp;
21
21
22
use Koha::Database;
22
use Koha::Database;
23
use Koha::DateUtils qw( dt_from_string );
23
24
24
use Koha::CurbsidePickup;
25
use Koha::CurbsidePickup;
25
26
Lines 82-87 sub filter_by_delivered { Link Here
82
    return $self->search( { delivered_datetime => { -not => undef } } );
83
    return $self->search( { delivered_datetime => { -not => undef } } );
83
}
84
}
84
85
86
=head3 filter_by_scheduled_today
87
88
Filter by pickups that are scheduled today
89
90
=cut
91
sub filter_by_scheduled_today {
92
    my ($self) = @_;
93
    my $dtf  = Koha::Database->new->schema->storage->datetime_parser;
94
    return $self->search( { scheduled_pickup_datetime => { '>' => $dtf->format_date(dt_from_string) } } );
95
}
96
85
=head2 Internal Methods
97
=head2 Internal Methods
86
98
87
=cut
99
=cut
(-)a/circ/curbside_pickups.pl (-5 / +3 lines)
Lines 61-69 if ( $op eq 'find-patron' ) { Link Here
61
                branchcode                => $branchcode,
61
                branchcode                => $branchcode,
62
                borrowernumber            => $patron->id,
62
                borrowernumber            => $patron->id,
63
                delivered_datetime        => undef,
63
                delivered_datetime        => undef,
64
                scheduled_pickup_datetime => { '>' => \'DATE(NOW())' },
65
            }
64
            }
66
        );
65
        )->filter_by_scheduled_today;
67
    } else {
66
    } else {
68
        push @messages, {
67
        push @messages, {
69
            type => 'error',
68
            type => 'error',
Lines 143-152 $template->param( Link Here
143
    policy => Koha::CurbsidePickupPolicies->find({ branchcode => $branchcode }),
142
    policy => Koha::CurbsidePickupPolicies->find({ branchcode => $branchcode }),
144
    curbside_pickups => Koha::CurbsidePickups->search(
143
    curbside_pickups => Koha::CurbsidePickups->search(
145
        {
144
        {
146
            branchcode                => $branchcode,
145
            branchcode => $branchcode,
147
            scheduled_pickup_datetime => { '>' => \'DATE(NOW())' },
148
        }
146
        }
149
      ),
147
      )->filter_by_scheduled_today,
150
);
148
);
151
149
152
150
(-)a/mainpage.pl (-2 / +1 lines)
Lines 114-122 if ( C4::Context->preference('CurbsidePickup') ) { Link Here
114
        new_curbside_pickups => Koha::CurbsidePickups->search(
114
        new_curbside_pickups => Koha::CurbsidePickups->search(
115
            {
115
            {
116
                branchcode                => $homebranch,
116
                branchcode                => $homebranch,
117
                scheduled_pickup_datetime => { '>' => \'DATE(NOW())' },
118
            }
117
            }
119
        )->filter_by_to_be_staged
118
        )->filter_by_to_be_staged->filter_by_scheduled_today,
120
    );
119
    );
121
}
120
}
122
121
(-)a/opac/opac-curbside-pickups.pl (-6 / +3 lines)
Lines 108-127 $template->param( Link Here
108
    patron_curbside_pickups => Koha::CurbsidePickups->search(
108
    patron_curbside_pickups => Koha::CurbsidePickups->search(
109
        {
109
        {
110
            borrowernumber            => $logged_in_patron->borrowernumber,
110
            borrowernumber            => $logged_in_patron->borrowernumber,
111
            scheduled_pickup_datetime => { '>' => \'DATE(NOW())' },
112
        },
111
        },
113
        {
112
        {
114
            order_by => { -asc => 'scheduled_pickup_datetime' }
113
            order_by => { -asc => 'scheduled_pickup_datetime' }
115
        }
114
        }
116
    ),
115
    )->filter_by_scheduled_today,
117
    curbside_pickups => Koha::CurbsidePickups->search(
116
    curbside_pickups => Koha::CurbsidePickups->search(
118
        {
117
        {},
119
            scheduled_pickup_datetime => { '>' => \'DATE(NOW())' },
120
        },
121
        {
118
        {
122
            order_by => { -asc => 'scheduled_pickup_datetime' }
119
            order_by => { -asc => 'scheduled_pickup_datetime' }
123
        }
120
        }
124
    ),
121
    )->filter_by_scheduled_today,
125
);
122
);
126
123
127
output_html_with_http_headers $input, $cookie, $template->output, undef,
124
output_html_with_http_headers $input, $cookie, $template->output, undef,
(-)a/t/db_dependent/Koha/CurbsidePickups.t (-2 / +5 lines)
Lines 147-153 subtest 'Create a pickup' => sub { Link Here
147
};
147
};
148
148
149
subtest 'workflow' => sub {
149
subtest 'workflow' => sub {
150
    plan tests => 9;
150
    plan tests => 11;
151
151
152
    my $pickups =
152
    my $pickups =
153
      Koha::CurbsidePickups->search( { branchcode => $library->branchcode } );
153
      Koha::CurbsidePickups->search( { branchcode => $library->branchcode } );
Lines 184-189 subtest 'workflow' => sub { Link Here
184
    is( $cp->status, 'delivered' );
184
    is( $cp->status, 'delivered' );
185
    is( $pickups->filter_by_delivered->count, 1 );
185
    is( $pickups->filter_by_delivered->count, 1 );
186
186
187
    is( $pickups->filter_by_scheduled_today->count, 1 );
188
    $cp->scheduled_pickup_datetime($today->clone->subtract(days => 1))->store;
189
    is( $pickups->filter_by_scheduled_today->count, 0 );
190
187
    $cp->delete;
191
    $cp->delete;
188
};
192
};
189
193
190
- 

Return to bug 30650