6) { return false; } $annee_now = date("Y"); $annee = intval(substr($annee_mois, 0, 4)); $mois = intval(substr($annee_mois, -2)); if ($mois < 1 || $mois > 12) { return false; } if ($annee > $annee_now) { return false; } return true; } /** * Détermine si le paramètre est une chaine de charatère du type '202304, 202305, 202306' */ function is_annee_mois_array($mois_forces) { $annee_mois_array = explode(",", $mois_forces); foreach ($annee_mois_array as $annee_mois) { if (!is_annee_mois($annee_mois)) { return false; } } return true; } function find_min_year($years) { $years_array = explode(',', $years); function cast_to_int($year) { return intval($year); }; $years_int = array_map('cast_to_int', $years_array); return min($years_int); } /** * Crée la liste au format string des annees mois '202201, 202202, 202203' * des séjours présent après le parametre $annee_mois_force */ function get_list_annee_mois($annee_mois_force) { global $iCTI_connexion; $mois_sortie_concat = "0"; $sqlcmd = " WITH w_mois AS ( SELECT mois FROM base.p_calendrier WHERE mois BETWEEN $annee_mois_force AND TO_CHAR(NOW(), 'YYYYMM') GROUP BY mois ORDER BY mois ) SELECT base.cti_group_concat(mois) AS mois_sortie_concat FROM w_mois;"; $record = pg_fetch_array($iCTI_connexion->query($sqlcmd)); if ($record) { $mois_sortie_concat = $record["mois_sortie_concat"]; } return $mois_sortie_concat; } ////////////////////// PARAMETRES DE COMMANDE ////////////////////// function create_mois_forces($cti_args) { // Paramètre --annee-mois-force if (isset($cti_args->args["--annee-mois-force"]) || isset($cti_args->args["-af"])) { $annee_mois_force = empty($cti_args->args["--annee-mois-force"]) ? $cti_args->args["-af"] : $cti_args->args["--annee-mois-force"]; if (is_year_AX($annee_mois_force)) { $annee_mois_force = transform_AX_in_year($annee_mois_force) . "01"; } if (!is_annee_mois($annee_mois_force)) { logErrorMsg("L'année $annee_mois_force en paramètre de --annee-mois-force doit être du type: 202301 ou A3"); die_conso(); } return get_list_annee_mois($annee_mois_force); } // Paramètre --moisforces if (isset($cti_args->args["--moisforces"]) || isset($cti_args->args["-mf"])) { $moisforces = empty($cti_args->args["--moisforces"]) ? $cti_args->args["-mf"] : $cti_args->args["--moisforces"]; if (!is_annee_mois_array($moisforces)) { logErrorMsg("L'année en paramètre de -moisforces doit être du type: 202301"); die_conso(); } return $moisforces; } return "0"; } ////////////////////// DATABASE ////////////////////// function nettoyage_sejours_bdd($year_to_delete){ $year_min = date("Y") - 2; if ($year_to_delete && $year_to_delete <= $year_min) { nettoyer_sejours_jusqua($year_to_delete); } else { nettoyer_sejours(); } } function die_conso() { logErrorMsg("Arrêt de la génération"); die(); } function iCTI_disconnect() { global $iCTI_connexion; $iCTI_connexion->close(); }