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