Browse Source

Documentation des class 4

stany.ferer 3 months ago
parent
commit
20dd8351b1
2 changed files with 230 additions and 2 deletions
  1. 8 2
      core/class/debug.class.php
  2. 222 0
      core/class/salaries.class.php

+ 8 - 2
core/class/debug.class.php

@@ -371,7 +371,14 @@ class debug
     }
 
     /**
-     * Affiche les journaux de débogage.
+     * Affiche le panneau des journaux du débogueur en HTML.
+     *
+     * Cette méthode affiche les versions de PHP et MySQL, le temps d'exécution, ainsi qu'un ensemble de cases à cocher
+     * pour intercepter différents types d'actions (Submit, requêtes SQL, Emails et mode debug d'envoi d'email).
+     * Elle affiche ensuite les journaux de débogage collectés et, si disponibles, les journaux de session.
+     * Enfin, elle charge le JavaScript associé au débogage.
+     *
+     * @return void
      */
     public static function renderLogs()
     {
@@ -424,7 +431,6 @@ class debug
      */
     public static function init()
     {
-        // Register shutdown function to render logs at the end of the script execution
         register_shutdown_function(function () {
             self::renderLogs();
         });

+ 222 - 0
core/class/salaries.class.php

@@ -1,7 +1,16 @@
 <?php
 
+/**
+ * Classe de gestion des salariés.
+ *
+ * Cette classe fournit des méthodes pour gérer les données des salariés,
+ * y compris les opérations sur les fichiers Excel et les interactions avec la base de données.
+ */
 class salaries
 {
+    /**
+     * Nettoie la table temporaire des salariés.
+     */
     public static function cleanTmp()
     {
         // Nettoyage de la table temporaire des salairés
@@ -9,6 +18,12 @@ class salaries
         db::execute();
     }
 
+    /**
+     * Récupère un salarié par son identifiant local.
+     *
+     * @param int $_idLocal Identifiant local du salarié.
+     * @return array|null Les données du salarié ou NULL si non trouvé.
+     */
     public static function getSalarieByidLocal(int $_idLocal)
     {
         // Récupération des données de l'excel au format Json
@@ -17,6 +32,12 @@ class salaries
         return db::single();
     }
 
+    /**
+     * Récupère un salarié par son identifiant de connexion.
+     *
+     * @param string $_loginId Identifiant de connexion du salarié.
+     * @return array|null Les données du salarié ou NULL si non trouvé.
+     */
     public static function getSalarieByLoginId(string $_loginId)
     {
         // Récupération des données de l'excel au format Json
@@ -25,6 +46,12 @@ class salaries
         return db::single();
     }
 
+    /**
+     * Récupère un salarié par son identifiant unique.
+     *
+     * @param int $_id Identifiant unique du salarié.
+     * @return array|null Les données du salarié ou NULL si non trouvé.
+     */
     public static function getSalarieById(int $_id)
     {
         // Récupération des données de l'excel au format Json
@@ -33,6 +60,11 @@ class salaries
         return db::single();
     }
 
+    /**
+     * Récupère la liste de tous les salariés.
+     *
+     * @return array La liste des salariés.
+     */
     public static function getSalaries()
     {
         db::query("SELECT "
@@ -56,18 +88,34 @@ class salaries
         return db::resultset();
     }
 
+    /**
+     * Récupère l'identifiant du dernier fichier Excel.
+     *
+     * @return int Identifiant du dernier fichier Excel.
+     */
     public static function lastExcel()
     {
         db::query("SELECT MAX(id) AS id FROM " . DB_T_EXCEL);
         return db::single()["id"];
     }
 
+    /**
+     * Récupère l'identifiant du dernier fichier Excel destiné au SFTP.
+     *
+     * @return int Identifiant du dernier fichier Excel pour le SFTP.
+     */
     public static function lastExcelForSFTP()
     {
         db::query("SELECT MAX(id) AS id FROM " . DB_T_EXCEL . " WHERE forSFTP IS NOT NULL");
         return db::single()["id"];
     }
 
+    /**
+     * Récupère le hash MD5 d'un fichier Excel par son identifiant.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return string Le hash MD5 du fichier Excel.
+     */
     public static function getExcelMd5(int $_id)
     {
         // Récupération des données de l'excel au format Json
@@ -76,6 +124,12 @@ class salaries
         return db::single()["md5"];
     }
 
+    /**
+     * Insère un fichier Excel dans la base de données.
+     *
+     * @param array $_data Données du fichier Excel à insérer.
+     * @return bool TRUE si l'insertion a réussi, FALSE sinon.
+     */
     public static function insertExcel(array $_data)
     {
         db::query("INSERT INTO " . DB_T_EXCEL . " (nbSalaries, md5, json, dateData, id_user) VALUES (:nbSalaries, :md5, :json, :dateData, :id_user)");
@@ -93,6 +147,12 @@ class salaries
         }
     }
 
+    /**
+     * Récupère les données JSON d'un fichier Excel pour le SFTP.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return array Les données JSON du fichier Excel.
+     */
     public static function getExcelJsonForSFTP(int $_id)
     {
         // Récupération des données de l'excel au format Json
@@ -101,6 +161,12 @@ class salaries
         return db::single();
     }
 
+    /**
+     * Supprime les données JSON d'un fichier Excel pour le SFTP.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return bool TRUE si la suppression a réussi, FALSE sinon.
+     */
     public static function deleteExcelJsonForSFTP(int $_id)
     {
         db::query("UPDATE " . DB_T_EXCEL . " SET "
@@ -115,6 +181,12 @@ class salaries
         }
     }
 
+    /**
+     * Récupère les données de transfert JSON d'un fichier Excel pour le SFTP.
+     *
+     * @param string $_md5 Hash MD5 du fichier Excel.
+     * @return string Les données de transfert JSON.
+     */
     public static function getExcelJsonTransferForSFTP(string $_md5)
     {
         // Récupération des données de l'excel au format Json
@@ -123,6 +195,12 @@ class salaries
         return db::single()["transfertForSFTP"];
     }
 
+    /**
+     * Récupère les données JSON d'un fichier Excel par son identifiant.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return string Les données JSON décodées.
+     */
     public static function getExcelJson(int $_id)
     {
         // Récupération des données de l'excel au format Json
@@ -131,6 +209,12 @@ class salaries
         return base64_decode(db::single()["json"]);
     }
 
+    /**
+     * Récupère le nom d'un fichier Excel par son identifiant.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return string Le nom du fichier Excel.
+     */
     public static function getExcelName(int $_id)
     {
         // Récupération des données de l'excel au format Json
@@ -144,6 +228,13 @@ class salaries
         return db::single()["name"];
     }
 
+    /**
+     * Met à jour l'état "en cours" d'un fichier Excel.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @param int $_action Action à effectuer (1 pour activer, 0 pour désactiver).
+     * @return bool TRUE si la mise à jour a réussi, FALSE sinon.
+     */
     public static function excelUpdateInProgress(int $_id, int $_action = 1)
     {
         db::query("UPDATE 
@@ -160,6 +251,12 @@ class salaries
         }
     }
 
+    /**
+     * Supprime un fichier Excel par son identifiant.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return bool TRUE si la suppression a réussi, FALSE sinon.
+     */
     public static function delete_excel(int $_id)
     {
         db::query("DELETE FROM " . DB_T_EXCEL . " WHERE id = :id");
@@ -172,6 +269,11 @@ class salaries
         }
     }
 
+    /**
+     * Récupère les informations du fichier Excel actuellement en cours de traitement.
+     *
+     * @return array|null Les informations du fichier Excel en cours ou NULL si aucun.
+     */
     public static function excelGetInProgress()
     {
         db::query("SELECT 
@@ -184,11 +286,22 @@ class salaries
         return db::single();
     }
 
+    /**
+     * Récupère les données JSON d'un fichier Excel par son identifiant sous forme de tableau.
+     *
+     * @param int $_id Identifiant du fichier Excel.
+     * @return array Les données JSON décodées sous forme de tableau.
+     */
     public static function getExcelArray(int $_id)
     {
         return json_decode(self::getExcelJson($_id));
     }
 
+    /**
+     * Convertit une ligne de données Excel en un format compatible avec la base de données MySQL.
+     * @param array $_value Ligne de données Excel.
+     * @return array Données formatées pour MySQL.
+     */
     public static function excelToMysql(array $_value)
     {
         if ($_value[4] == "Actif") {
@@ -210,6 +323,11 @@ class salaries
         );
     }
 
+    /**
+     * Insère les données des salariés temporaires dans la table temporaire.
+     *
+     * @param string $_excel Identifiant du fichier Excel associé.
+     */
     public static function createTmp(string $_excel)
     {
         db::query("SELECT idLocal, loginId, nom, prenom, sexe, contrat, jourEntree, lieu, actif FROM " . DB_T_SALARIES);
@@ -234,6 +352,11 @@ class salaries
         }
     }
 
+    /**
+     * Met à jour les salariés inactifs dans la table temporaire.
+     *
+     * @return bool TRUE si la mise à jour a réussi, FALSE sinon.
+     */
     public static function updateInactiveTempSalarie()
     {
         db::query("UPDATE " . DB_T_TEMP_SALARIES . " SET "
@@ -249,6 +372,12 @@ class salaries
         }
     }
 
+    /**
+     * Met à jour les données JSON d'un fichier Excel.
+     *
+     * @param array $_json Données JSON à mettre à jour.
+     * @return bool TRUE si la mise à jour a réussi, FALSE sinon.
+     */
     public static function updateJsonExcel(array $_json)
     {
         db::query("UPDATE " . DB_T_EXCEL . " SET "
@@ -265,6 +394,13 @@ class salaries
         }
     }
 
+    /**
+     * Met à jour les données temporaires des salariés.
+     *
+     * @param array $_new_salaries Les nouvelles données des salariés.
+     * @param string $_excel Identifiant du fichier Excel associé.
+     * @return bool TRUE si la mise à jour a réussi, FALSE sinon.
+     */
     public static function update_temp_salaries(array $_new_salaries, string $_excel)
     {
         $cp["INSERT"]["SUCCESS"] = 0;
@@ -408,6 +544,13 @@ class salaries
         }
     }
 
+    /**
+     * Enregistre les changements de contrat pour le SFTP.
+     *
+     * @param int $_idExcel Identifiant du fichier Excel.
+     * @param array|null $_data Données des changements de contrat.
+     * @return bool TRUE si l'enregistrement a réussi, FALSE sinon.
+     */
     private static function recContratForSFTP(int $_idExcel, ?array $_data)
     {
         db::query("UPDATE " . DB_T_EXCEL . " SET "
@@ -423,6 +566,11 @@ class salaries
         }
     }
 
+    /**
+     * Met à jour les données des salariés à partir d'un fichier Excel.
+     *
+     * @param int $_excel Identifiant du fichier Excel.
+     */
     public static function updateSalaries(int $_excel)
     {
         $cp["INSERT"]["SUCCESS"] = 0;
@@ -606,6 +754,13 @@ class salaries
         }
     }
 
+    /**
+     * Enregistre les données pour le SFTP.
+     *
+     * @param array $_array Données à enregistrer.
+     * @param int $_idExcel Identifiant du fichier Excel.
+     * @return bool TRUE si l'enregistrement a réussi, FALSE sinon.
+     */
     private static function recForSFTP(array $_array, int $_idExcel)
     {
         $json = json_encode($_array);
@@ -625,6 +780,21 @@ class salaries
         }
     }
 
+    /**
+     * Crée un rapport des modifications des salariés à partir de la table temporaire.
+     *
+     * Cette méthode interroge la table temporaire des salariés pour récupérer les enregistrements
+     * ayant un champ 'log' non nul, indiquant une modification (INSERT, DISABLE ou UPDATE).
+     * Elle construit un tableau contenant les détails de chaque modification, puis encode ce tableau en JSON.
+     *
+     * - Pour une action "INSERT", toutes les informations du salarié sont ajoutées.
+     * - Pour une action "DISABLE", toutes les informations du salarié sont ajoutées.
+     * - Pour une action "UPDATE", seules les informations modifiées sont ajoutées selon le contenu du champ 'log'.
+     *
+     * @return array|null Un tableau associatif contenant :
+     *                    - 'json' : la liste des modifications encodée en JSON ou NULL si aucune modification.
+     *                    - 'excel' : le nom du fichier Excel associé ou NULL si aucune modification.
+     */
     public static function createRapport()
     {
         $log = NULL;
@@ -692,12 +862,32 @@ class salaries
         return $log;
     }
 
+    /**
+     * Compte le nombre de salariés temporaires dans la base de données.
+     *
+     * Exécute une requête SQL pour compter tous les enregistrements dans la table temporaire des salariés
+     * et retourne le nombre sous forme d'entier.
+     *
+     * @return int Nombre de salariés temporaires.
+     */
     public static function countTmpSalaries()
     {
         db::query("SELECT COUNT(*) AS nb FROM " . DB_T_TEMP_SALARIES);
         return db::single()["nb"];
     }
 
+    /**
+     * Génère un fichier CSV pour l'export SFTP contenant les identifiants de connexion et les dates de sortie des salariés.
+     *
+     * Cette méthode effectue les étapes suivantes :
+     * 1. Récupère le dernier fichier Excel destiné à l'export SFTP.
+     * 2. Extrait et décode les données JSON du fichier Excel.
+     * 3. Crée un fichier CSV nommé avec la date du jour et écrit l'en-tête.
+     * 4. Parcourt chaque enregistrement salarié, traite et écrit ses données dans le CSV.
+     * 5. Enregistre la date d'export pour le suivi SFTP.
+     *
+     * @throws Exception Si les données JSON pour le SFTP sont invalides.
+     */
     public static function dataForSFTP()
     {
         $lastExcel = self::lastExcelForSFTP();
@@ -719,6 +909,18 @@ class salaries
         self::recDateForSFTP($lastExcel);
     }
 
+    /**
+     * Traite un enregistrement salarié et écrit les champs sélectionnés dans un fichier CSV.
+     *
+     * Cette méthode vérifie si le tableau du salarié contient un 'loginId' non vide
+     * et un champ 'jourSortie'. Si c'est le cas, elle écrit ces champs dans le fichier CSV
+     * spécifié, en utilisant le point-virgule comme séparateur.
+     *
+     * @param array $salarie   Tableau des données du salarié contenant au moins 'loginId' et 'jourSortie'.
+     * @param resource $tmpSFTP Ressource du fichier où écrire la ligne CSV.
+     *
+     * @return void
+     */
     private static function processSalarie($salarie, $tmpSFTP)
     {
         if (isset($salarie["loginId"]) && $salarie["loginId"] != "" && isset($salarie["jourSortie"])) {
@@ -730,6 +932,15 @@ class salaries
         }
     }
 
+    /**
+     * Met à jour le champ 'createForSFTP' avec la date et l'heure actuelles pour un enregistrement Excel donné.
+     *
+     * Cette méthode définit la colonne 'createForSFTP' à la date et l'heure courantes dans la base de données
+     * pour l'enregistrement identifié par l'ID Excel fourni. Retourne TRUE en cas de succès, FALSE sinon.
+     *
+     * @param int $_idExcel L'identifiant de l'enregistrement Excel à mettre à jour.
+     * @return bool TRUE si la mise à jour a réussi, FALSE sinon.
+     */
     private static function recDateForSFTP(int $_idExcel)
     {
         db::query("UPDATE " . DB_T_EXCEL . " SET "
@@ -744,6 +955,11 @@ class salaries
         }
     }
 
+    /**
+     * Vérifie si le dernier fichier Excel pour le SFTP a été soumis.
+     *
+     * @return bool TRUE si le dernier fichier Excel pour le SFTP est prêt à être soumis, FALSE sinon.
+     */
     public static function ifSubmitLastForSFTP()
     {
         $lastExcel = self::lastExcel();
@@ -751,6 +967,12 @@ class salaries
         return (@$forSFTP["md5forSFTP"] != NULL and @$forSFTP["createForSFTP"] == NULL) ? TRUE : FALSE;
     }
 
+    /**
+     * Vérifie un salarié par son matricule.
+     *
+     * @param string $_string Matricule du salarié à vérifier.
+     * @return array Résultat de la vérification contenant des messages d'erreur ou de succès.
+     */
     public static function checkSalarieByMatricule(string $_string)
     {
         db::query("SELECT "