From bb599f4f0a9185087cbed063efb75a3c82249345 Mon Sep 17 00:00:00 2001 From: Okhin <okhin@okhin.fr> Date: Mon, 19 Nov 2018 11:54:27 +0100 Subject: [PATCH] Merging the change on prod done by @Mindiell --- app/controller/admin.php | 159 +++++++++++++++++++---------------- app/controller/campaign.php | 5 +- app/view/backend/banque.html | 14 +-- app/view/backend/base.html | 2 +- app/view/backend/dons.html | 7 ++ 5 files changed, 101 insertions(+), 86 deletions(-) diff --git a/app/controller/admin.php b/app/controller/admin.php index 292426f..8c0f957 100644 --- a/app/controller/admin.php +++ b/app/controller/admin.php @@ -86,8 +86,10 @@ class Admin extends Controller $status = $f3->exists('POST.status') ? $f3->get('POST.status') : ''; $limit = $f3->exists('POST.limite') ? (int) $f3->get('POST.limite') : 50; $page = $f3->exists('POST.page') ? (int) $f3->get('POST.page') : 1; + $date1 = $f3->exists('POST.date1') ? (string) $f3->get('POST.date1') . " 00:00:00" : ''; + $date2 = $f3->exists('POST.date2') ? (string) $f3->get('POST.date2') . " 00:00:00" : date("Y-m-d H:i:s"); - $results = $f3->get('container')['donation_finder']->adminSearch($text, $sum, $public, $status, $limit, $page); + $results = $f3->get('container')['donation_finder']->adminSearch($text, $sum, $public, $status, $date1, $date2, $limit, $page); $f3->set('row_count', count($results)); $f3->set('texte', $text); @@ -96,6 +98,8 @@ class Admin extends Controller $f3->set('page', $page); $f3->set('public', $public); $f3->set('status', $status); + $f3->set('date1', substr($date1, 0, 10)); + $f3->set('date2', substr($date2, 0, 10)); $f3->set('data', $results); $f3->set('piplome_url', PIPLOME_URL); @@ -924,23 +928,10 @@ class Admin extends Controller public function banque($f3, $args) { - $f3->set('class_cbs', 'on'); - $f3->set('class_verif', 'off'); - $f3->set('class_update', 'off'); $message = ''; $error = ''; $result = ''; if ($f3->get('VERB')=='POST') { - switch ($f3->get('POST.tab')) { - case 'verif': - $f3->set('class_cbs', 'off'); - $f3->set('class_verif', 'on'); - break; - case 'update': - $f3->set('class_cbs', 'off'); - $f3->set('class_update', 'on'); - break; - } if ($_FILES['file']['tmp_name']=='') { $message = "Merci de sélectionner un fichier."; } else { @@ -1233,6 +1224,7 @@ class Admin extends Controller // On ne s'intéresse qu'aux dons récurrents if ($identifier!='') { $total ++; + $email = ''; $time_struct = strptime($effect, "%d/%m/%Y %H:%M:%S"); $new_effect = strftime("%Y-%m-%d %H:%M:%S", mktime( $time_struct['tm_hour']+1, @@ -1248,71 +1240,92 @@ class Admin extends Controller JOIN identifiers ON users.id = identifiers.user_id AND identifiers.identifier='".$identifier. "'"); - if ($result) { + if ($result->rowCount() == 0) { + // Identifier does not exist, we must create it. We have either a pseudo or an email. + $user_field = explode("_", $identifier)[1]; + $user = 'asfhjk'; + + if (strpos($user_field, '@')) { + // identifier is an email + $user = $f3->get('container')['user_finder']->findByEmail($user_field); + } else { + // identifier is a pseudo + $user = $f3->get('container')['user_finder']->findByPseudo($user_field); + } + + if ($user) { + $db->query("INSERT INTO identifiers(user_id, identifier) VALUES ('".$user['id']."', '".$identifier."')"); + $email = $user['email']; + } else { + // No user, let's add to the errors + $sans_cumul[] = $user_field; + continue; + } + } else { $email = $result->fetch(\PDO::FETCH_ASSOC); $email = $email['email']; // On stocke l'email pour comptabiliser les dons - if (array_key_exists($email, $emails)) { - $emails[$email] ++; - //echo $new_effect . ' - ' . $identifier.' : '.$email.' => '.$combien[0].'<br />'; - } else { - $emails[$email] = 1; - } - // Récupération de l'id du bon abonnement - $result = $db->query("SELECT d.id AS id - FROM dons d - JOIN users u ON u.id = d.user_id - WHERE u.email='".$email. "' - AND d.status=101 - AND d.id='".$transaction."' "); - if ($result) { - $cumul = $result->fetch(\PDO::FETCH_ASSOC); - $cumul = $cumul['id']; - if ($cumul!='') { - $result = $db->query("SELECT COUNT(1) - FROM dons d - JOIN users u ON u.id = d.user_id - WHERE u.email='".$email. "' - AND d.status=102 - AND d.datec='".$new_effect."' - AND d.cumul=".$cumul." - "); - if ($result) { - $combien = $result->fetch(); - if ($combien[0]==0) { - $update ++; - // Don récurrent non comptabilisé, on l'ajoute - $user_id = $db->query("SELECT id FROM users WHERE email='$email'"); - $user_id = $user_id->fetch(\PDO::FETCH_ASSOC); - $user_id = $user_id['id']; - $query = "INSERT INTO dons (status, - datec, - somme, - user_id, - cumul, - identifier) - VALUES ( - 102, - '".$new_effect."', - ".$amount.", - '".$user_id."', - '".$cumul."', - '".$identifier."')"; - if (!$testing) { - $db->query($query); - // On met alors à jour le cumul et le total de l'utilisateur concerné - $result = $db->query("UPDATE users - SET cumul=cumul+".$amount.", - total=total+".$amount." - WHERE id='".$user_id."'"); - } - } else { - $comptabilise[] = $identifier; + } + if (array_key_exists($email, $emails)) { + $emails[$email] ++; + } else { + $emails[$email] = 1; + } + // Récupération de l'id du bon abonnement + $result = $db->query("SELECT d.id AS id + FROM dons d + JOIN users u ON u.id = d.user_id + WHERE u.email='".$email. "' + AND d.status=101 + AND d.id='".$transaction."' "); + print_r($result); + if ($result->rowCount() > 0) { + $cumul = $result->fetch(\PDO::FETCH_ASSOC); + $cumul = $result['id']; + if ($cumul!='') { + $result = $db->query("SELECT COUNT(1) + FROM dons d + JOIN users u ON u.id = d.user_id + WHERE u.email='".$email. "' + AND d.status=102 + AND d.datec='".$new_effect."' + AND d.cumul=".$cumul." + "); + if ($result) { + $combien = $result->fetch(); + if ($combien[0]==0) { + $update ++; + // Don récurrent non comptabilisé, on l'ajoute + $user_id = $db->query("SELECT id FROM users WHERE email='$email'"); + $user_id = $user_id->fetch(\PDO::FETCH_ASSOC); + $user_id = $user_id['id']; + $query = "INSERT INTO dons (status, + datec, + somme, + user_id, + cumul, + identifier) + VALUES ( + 102, + '".$new_effect."', + ".$amount.", + '".$user_id."', + '".$cumul."', + '".$identifier."')"; + if (!$testing) { + $db->query($query); + // On met alors à jour le cumul et le total de l'utilisateur concerné + $result = $db->query("UPDATE users + SET cumul=cumul+".$amount.", + total=total+".$amount." + WHERE id='".$user_id."'"); } + } else { + $comptabilise[] = $identifier; } - } else { - $sans_cumul[] = $email; } + } else { + $sans_cumul[] = $email; } } } diff --git a/app/controller/campaign.php b/app/controller/campaign.php index b589886..37db577 100644 --- a/app/controller/campaign.php +++ b/app/controller/campaign.php @@ -108,7 +108,7 @@ class Campaign extends Controller $user = $f3->get('container')['user_finder']->findByEmail(\Utils::asl($email)); - if (len($user) > 0) { + if (count($user) > 0) { // We have an existing user, we should try to login with the provided password // or 403. $mapper = new \DB\SQL\Mapper($f3->get('DB'), 'users'); @@ -117,6 +117,9 @@ class Campaign extends Controller if (!$login) { $f3->error(403); } + $email = $user['email']; + $user_id = $user['id']; + $cumul_id = $user['cumul']; } else { // The user does not exist, so let's create it $result = $db->query("INSERT INTO users (pseudo, email, hash) diff --git a/app/view/backend/banque.html b/app/view/backend/banque.html index b598b0a..444f66d 100644 --- a/app/view/backend/banque.html +++ b/app/view/backend/banque.html @@ -5,15 +5,7 @@ <check if="{{@error}}"><p class="error">{{@error | raw}}</p></check> <check if="{{@message}}"><p class="message">{{@message | raw}}</p></check> -<section> -<ul> - <li class="clickable" onclick="show_hide('cbs', ['verif', 'update']);">Dates d'expiration des CB</li> - <li class="clickable" onclick="show_hide('verif', ['cbs', 'update']);">Vérification des dons</li> - <li class="clickable" onclick="show_hide('update', ['verif', 'cbs']);">Mise à jour des dons</li> -</ul> -</section> - -<section id="cbs" class="{{@class_cbs}}"> +<section id="cbs"> <h3 >Mise à jour des dates d'expiration des CB</h3> <form enctype="multipart/form-data" name="f" method="POST" action="{{ 'banque' | alias }}"> <input type="hidden" id="csrf" name="csrf" value="{{ @CSRF }}" /> @@ -24,7 +16,7 @@ </form> </section> -<section id="verif" class="{{@class_verif}}"> +<section id="verif"> <h3>Vérification des dons</h3> <form enctype="multipart/form-data" name="f" method="POST" action="{{ 'banque' | alias }}"> <input type="hidden" id="csrf" name="csrf" value="{{ @CSRF }}" /> @@ -35,7 +27,7 @@ </form> </section> -<section id="update" class="{{@class_update}}"> +<section id="update"> <h3>Mise à jour des dons</h3> <form enctype="multipart/form-data" name="f" method="POST" action="{{ 'banque' | alias }}"> <input type="hidden" id="csrf" name="csrf" value="{{ @CSRF }}" /> diff --git a/app/view/backend/base.html b/app/view/backend/base.html index 3ea0abd..27f6e50 100644 --- a/app/view/backend/base.html +++ b/app/view/backend/base.html @@ -1,4 +1,4 @@ <include href="backend/header.html" /> <include href="backend/toolbar.html" /> <include href="{{ @block_content }}" /> -<!-- <include href="backend/footer.html" /> <!-- No need for scripts right now --> +<!-- <include href="backend/footer.html" /> --> diff --git a/app/view/backend/dons.html b/app/view/backend/dons.html index 02bd488..15aa05a 100644 --- a/app/view/backend/dons.html +++ b/app/view/backend/dons.html @@ -31,8 +31,15 @@ <option value="4,101" <check if="{{ @status=='4,101' }}">selected</check> >Récurrent validé</option> </select> + <label for="date1">Depuis le</label> + <input type="date" id="date1" name="date1" value="{{ @date1 }}" /> + + <label for="date2">Jusqu'au</label> + <input type="date" id="date2" name="date2" value="{{ @date2 }}" /> + <label for="limite">Limite</label> <input type="text" id="limite" name="limite" size="3" value="{{ @limite }}" /> + <label for="page">Page</label> <input type="text" id="page" name="page" size="3" value="{{ @page }}" /> -- GitLab