From 63f5bf827188c091360afa15e272f789e6f8ae64 Mon Sep 17 00:00:00 2001 From: Okhin <okhin@okhin.fr> Date: Fri, 16 Nov 2018 15:34:25 +0100 Subject: [PATCH] Adding a filter by date --- db/seeds/DonationSeeder.php | 2 +- src/LQDN/Finder/DonationFinder.php | 7 ++++++- tests/functional/Finder/DonationFinderTest.php | 10 ++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/db/seeds/DonationSeeder.php b/db/seeds/DonationSeeder.php index 5fa730e..8121fa9 100644 --- a/db/seeds/DonationSeeder.php +++ b/db/seeds/DonationSeeder.php @@ -70,7 +70,7 @@ class DonationSeeder extends AbstractSeed array( 'id' => 3, 'status' => 100, - 'datec' => '2016-06-10 12:34', + 'datec' => '2016-06-11 12:34', 'somme' => 100, 'lang' => 'fr_FR', 'cadeau' => 1, diff --git a/src/LQDN/Finder/DonationFinder.php b/src/LQDN/Finder/DonationFinder.php index 7abb680..1193b74 100644 --- a/src/LQDN/Finder/DonationFinder.php +++ b/src/LQDN/Finder/DonationFinder.php @@ -43,7 +43,7 @@ class DonationFinder * * @return array */ - public function adminSearch($text, $sum, $public, $status, $limit = 50, $page = 1) + public function adminSearch($text, $sum, $public, $status, $date1, $date2 = "2999-12-31 23:59:59", $limit = 50, $page = 1) { $query = <<<EOQ SELECT d.id as id, @@ -87,6 +87,11 @@ EOQ; $params['status'] = $status; } + if ('' !== $date1) { + $query .= ' AND d.datec BETWEEN (:date1) AND (:date2) '; + $params['date1'] = $date1; + $params['date2'] = $date2; + } $first = ($page - 1) * $limit; $last = ($page) * $limit; $query .= " ORDER BY datec DESC LIMIT $first, $last"; diff --git a/tests/functional/Finder/DonationFinderTest.php b/tests/functional/Finder/DonationFinderTest.php index 4eb4ced..54e309a 100644 --- a/tests/functional/Finder/DonationFinderTest.php +++ b/tests/functional/Finder/DonationFinderTest.php @@ -43,10 +43,12 @@ class DonationFinderTest extends FunctionalTest public function testAdminSearchDonations() { - $this->assertCount(1, $this->container['donation_finder']->adminSearch($text='alice@example.org', $sum='', $public='', $status='')); - $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='1000', $public='', $status='')); - $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='', $public='0', $status='')); - $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='', $public='', $status='1')); + $this->assertCount(1, $this->container['donation_finder']->adminSearch($text='alice@example.org', $sum='', $public='', $status='', $date1='')); + $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='1000', $public='', $status='', $date1='')); + $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='', $public='0', $status='', $date1='')); + $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='', $public='', $status='1', $date1='')); + $this->assertCount(2, $this->container['donation_finder']->adminSearch($text='', $sum='', $public='', $status='1', $date1='')); + $this->assertCount(1, $this->container['donation_finder']->adminSearch($text='', $sum='', $public='', $status='', $date1='2016-06-11 00:00:00')); } } -- GitLab