<?php
global $iCTI_connexion;

/**
 * Supprime les séjours qui ne sont plus présents dans p_rss 
 */
function nettoyer_sejours($do_analyse = false)
{
	global $iCTI_connexion;

	logInfoMsg("Suppression des séjours non présent dans p_rss");

	$do_analyse = $do_analyse ? 'TRUE' : 'FALSE';

	$toResult = $iCTI_connexion->query("SELECT pmsi.cti_nettoyer_sejours($do_analyse)");
	if ($toResult == FALSE) {
		logErrorMsg("Erreur Lancement fonction cti_nettoyer_sejours()");
	}
}


/**
 * Supprime les séjours de p_rss avant $year 
 * Puis supprime les séjours qui ne sont plus présents dans p_rss 
 */
function nettoyer_sejours_jusqua($year, $do_analyse = false)
{
	global $iCTI_connexion;

	logInfoMsg("Suppression des séjours avant l'année $year");

	$do_analyse = $do_analyse ? 'TRUE' : 'FALSE';

	$sqlcmd = "SELECT pmsi.cti_nettoyer_sejours_jusqua($year, $do_analyse)";

	$toResult = $iCTI_connexion->query($sqlcmd);
	if ($toResult == FALSE) {
		logErrorMsg("Erreur Lancement fonction cti_nettoyer_sejours_jusqua()");
	}
}


//////////////////////  ANNEE ET MOIS //////////////////////


/**
 * Détermine si le paramètre $year_AX est du type 'A2, A5'
 */
function is_year_AX($year_AX)
{
	$annee_mois = trim($year_AX);
	// A0 || A1 || A2 .....
	$pattern = '/^A\d$/i';
	return preg_match($pattern, $annee_mois);
}


/**
 * Transforme $year_AX du type 'A2' en année en cours moins le nombre d'année
 * Ex: Pour l'année 2023
 * A1 = 2022
 * A4 = 2019
 */
function transform_AX_in_year($year_AX)
{
	//année en cours moins nombre années demandées
	$nbAnnee = intval(substr($year_AX, 1));
	if ($nbAnnee === 0 && intval(date("m")) < 7) {
		$nbAnnee = 1;
	}

	return date("Y") - $nbAnnee;
}



/**
 * Determine si c'est une entête vide
 * Dans certains cas, il y a une ligne en plus au début des fichiers 
 * Il peut y avoir quelque charactère au début de la ligne, on ne commence pas au début
 */
function is_entete_empty($buffer)
{
	$entete = trim(substr($buffer, 60, 100));
	if ($entete == "") {
		return true;
	}
	return false;
}



function analyse_table($table_name)
{
	global $iCTI_connexion;

	$toResult = $iCTI_connexion->query("ANALYSE pmsi.$table_name");
	if ($toResult == FALSE) {
		logErrorMsg("Erreur ANALYSE pmsi.$table_name");
	}
}


function vacuum_table($table_name)
{
	global $iCTI_connexion;


	$toResult = $iCTI_connexion->query("VACUUM ANALYSE pmsi.$table_name");
	if ($toResult == FALSE) {
		logErrorMsg("Erreur VACUUM ANALYSE pmsi.$table_name");
	}
}


function analyse_table_temp($table_name)
{
	global $iCTI_connexion;

	$toResult = $iCTI_connexion->query("ANALYSE temp.$table_name");
	if ($toResult == FALSE) {
		logErrorMsg("Erreur ANALYSE temp.$table_name");
	}
}

/**
 * Extraction données Cancéro (nouvelle méthode)
 */
function execute_etude($etude)
{
	$em = new EtudeManager();
	$em->clear($etude);
	$em->execute($etude);
}
