Parcourir la source

Code event - pre-inscription

stany.ferer il y a 2 ans
Parent
commit
9d829044b8

+ 34 - 0
core/class/event.class.php

@@ -128,6 +128,7 @@ class event
             . "" . DB_T_EVENTS . ".endDate, "
             . "" . DB_T_EVENTS . ".type_emargement, "
             . "" . DB_T_EVENTS_INSCRITS . ".sel, "
+            . "" . DB_T_EVENTS_INSCRITS . ".code, "
             . "" . DB_T_EVENTS_INSCRITS . ".present "
             . "FROM " . DB_T_EVENTS . " "
             . "LEFT JOIN " . DB_T_EVENTS_INSCRITS . " ON " . DB_T_EVENTS_INSCRITS . ".id_evenement = " . DB_T_EVENTS . ".id AND " . DB_T_EVENTS_INSCRITS . ".id_salarie = :id_salarie "
@@ -414,4 +415,37 @@ class event
                     </div>';
         }
     }
+
+    private static function uniqueCode(string $_string){
+        db::query("SELECT "
+                . "IF(" . DB_T_EVENTS_INSCRITS . ".id_salarie IS NOT NULL, 0, 1) AS exite"
+                . "FROM " . DB_T_EVENTS_INSCRITS . " "
+                . "WHERE " . DB_T_EVENTS_INSCRITS . ".code = " . $_string);
+        return db::single()["exite"];
+    }
+
+    private static function generateCode(int $_nb){
+        $string = "";
+        $chaine = "AZERTYUPQSDFGHJKLMWXCVBN23456789";
+        for ($i = 0; $i < $_nb; $i++) {
+            $index = rand(0, strlen($chaine) - 1);
+            $string .= $chaine[$index];
+        }
+        return $string;
+    }
+
+    public static function getGenerateCode(int $_nb = 8) // ALTER TABLE `evenement_salaries` ADD `code` VARCHAR(8) NULL AFTER `sel`; ALTER TABLE `evenement_salaries` ADD INDEX(`code`);
+    {
+        $tmp = self::generateCode($_nb);
+
+        for($valide = 0; $valide == 1; $valide = self::uniqueCode($tmp)){
+            if($valide == 1){
+                break;
+            } else {
+                $tmp = self::generateCode($_nb);
+            }
+        }
+
+        return $tmp;
+    }
 }

+ 2 - 1
core/submit/cms.event-inscription.php

@@ -2,8 +2,9 @@
 
 if(core::ifPost("event") AND core::ifPost("salarie")){
     
-    db::query("INSERT INTO " . DB_T_EVENTS_INSCRITS . " (id_evenement, id_salarie, sel, id_user) VALUES (:id_evenement, :id_salarie, :sel, :id_user)");
+    db::query("INSERT INTO " . DB_T_EVENTS_INSCRITS . " (id_evenement, id_salarie, sel, code, id_user) VALUES (:id_evenement, :id_salarie, :sel, :code, :id_user)");
     db::bind(':sel', md5(core::getPost("event")."-".time().rand(100000000000000, 999999999999999)));
+    db::bind(':code', event::getGenerateCode());
     db::bind(':id_evenement', core::getPost("event"));
     db::bind(':id_salarie', core::getPost("salarie"));
     db::bind(':id_user', session::getId());

+ 11 - 1
core/views/pages/events.list-events.php

@@ -25,6 +25,7 @@
             <div class="card-header" id="showTitreEvent"></div>
             <div class="card-body">
                 <div class="modal-body" id="showQRCode"></div>
+                <div id="showCode"></div>
             </div>
             <div class="card-footer"><?php echo session::getName("salarie"); ?></div>
         </div>
@@ -33,4 +34,13 @@
 
 <div id="confirmationModal"></div>
 
-<script src="js/list-events.js"></script>
+<script src="js/list-events.js"></script>
+
+<style>
+    #showCode {
+        font-size: 30px;
+        text-transform: uppercase;
+        color: black;
+        margin-top: -25px;
+    }
+</style>

+ 5 - 3
public-events/js/list-events.js

@@ -18,7 +18,7 @@ function printTuile(data){
     
         if(data["type_emargement"] == 1){
             explication = '<p class="card-text"><div>[ QRCode à présenter à votre arrivée ]</div><br /><div><span data-feather="maximize"></span></div></p>';
-            meta = 'data-toggle="modal" data-target="#QRCodeModal" onclick="showQRCode(this)" data-qrr-qrcode-regexp="^https?:\/\/" data-sel="' + data["url_qrcode"] + '" data-titre="' + data["titre"] + '"';
+            meta = 'data-toggle="modal" data-target="#QRCodeModal" onclick="showQRCode(this)" data-qrr-qrcode-regexp="^https?:\/\/" data-code="' + data["code"] + '" data-sel="' + data["url_qrcode"] + '" data-titre="' + data["titre"] + '"';
             classCard = "showQRCode";
             txtFooter = "Cliquez ici pour afficher votre QRCode";
         } else {
@@ -70,7 +70,6 @@ function getEvements(){
     }
 
     if (checkconnection()) {
-
         $.ajax({
             type: "GET",
             url: "json.php",
@@ -101,11 +100,15 @@ function getEvements(){
 
 function showQRCode(element){
     var sel = $(element).data("sel");
+    var code = $(element).data("code");
     var titre = $(element).data("titre");
 
     $("#showQRCode").empty();
     $("#showQRCode").replaceWith('<div class="modal-body" id="showQRCode"><img src="qrcode.php?q=' + sel + '" width="100%" ></div>');
 
+    $("#showCode").empty();
+    $("#showCode").replaceWith('<div id="showCode">' + code + '</div>');
+
     $("#showTitreEvent").empty();
     $("#showTitreEvent").replaceWith('<div class="card-header" id="showTitreEvent">' + titre + '</div>');
 }
@@ -129,7 +132,6 @@ function checkEmagementControl(){
     };
 
     if (checkconnection()) {
-
         $.ajax({
             type: "POST",
             url: "json.php?jsonData=check-control-emargement",