فهرست منبع

fix(salaries): Corrige la gestion des contrats suspendus et l'exportation des salariés

stany.ferer 2 هفته پیش
والد
کامیت
39e7f45165
1فایلهای تغییر یافته به همراه16 افزوده شده و 7 حذف شده
  1. 16 7
      core/class/salaries.class.php

+ 16 - 7
core/class/salaries.class.php

@@ -678,10 +678,12 @@ class salaries
                             $forSFTP["actif"] = 1;
                             $reprise = $dateReprise;
                         } elseif ($updateContrat[$salaries["idLocal"]] == "end") {
+                            // Arrêt de contrat temporaire (suspension) : on ne définit PAS jourSortie
+                            // car ce n'est pas une sortie définitive de l'entreprise
                             $forSFTP["jourEntree"] = $salaries["jourEntree"];
-                            $forSFTP["jourSortie"] = $jourSortie;
+                            $forSFTP["jourSortie"] = NULL; // Pas de date de sortie pour une suspension
                             $forSFTP["repriseContrat"] = NULL;
-                            $forSFTP["actif"] = 0;
+                            $forSFTP["actif"] = 1; // Reste actif dans le système, juste contrat suspendu
                         }
                     } else {
                         $forSFTP["jourEntree"] = $salaries["jourEntree"];
@@ -912,18 +914,25 @@ class salaries
     /**
      * 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.
+     * Cette méthode vérifie si le tableau du salarié contient un 'loginId' non vide,
+     * un champ 'jourSortie' défini, ET une action 'disabled' (sortie définitive).
+     * Les arrêts de contrat temporaires (action = 'update' avec contrat = 0) ne sont pas
+     * considérés comme des sorties et ne sont pas inclus dans le CSV.
      *
-     * @param array $salarie   Tableau des données du salarié contenant au moins 'loginId' et 'jourSortie'.
+     * @param array $salarie   Tableau des données du salarié contenant au moins 'loginId', 'jourSortie' et 'action'.
      * @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"])) {
+        // On n'exporte que les salariés avec l'action "disabled" (sortie définitive)
+        // Les arrêts de contrat temporaires (action "update" avec jourSortie) ne sont pas des sorties
+        if (
+            isset($salarie["loginId"]) && $salarie["loginId"] != ""
+            && isset($salarie["jourSortie"]) && $salarie["jourSortie"] != NULL
+            && isset($salarie["action"]) && $salarie["action"] == "disabled"
+        ) {
             $tmpSalarie = [
                 "loginId" => $salarie["loginId"],
                 "jourSortie" => $salarie["jourSortie"]