|
|
@@ -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"]
|