";
$httpString = $httpString . "\n";
$httpString = $httpString . "\n";
$httpString = gzcompress($httpString, 9);
$httpString = "_c_" . base64_encode($httpString);
echo "$httpString";
//echo "$httpString";
// récupération historique
function get_files(&$import_id, &$returnCode, &$returnTexte)
{
global $database;
global $in_import_texte;
$database = new Database("iCTI");
global $tmp_path;
global $ENV_TYPEETS;
global $FILES_array;
$FILES_array = array();
$httpString = "";
$path = $tmp_path;
$rep = @opendir($path);
if ($rep > 0) {
while ($FILE_fullname = readdir($rep)) {
if ($FILE_fullname != '..' && $FILE_fullname != '.' && $FILE_fullname != '' && substr($FILE_fullname, 0, 10) == "PMSIMPORT.") {
$FILE_fullpath = $path . '/' . $FILE_fullname;
$fileType = "";
$path_parts = pathinfo($FILE_fullpath);
$fileType = strtoupper($path_parts['extension']);
if (is_dir($FILE_fullpath)) {
$fileType = "DIR";
}
$array = explode(".", $FILE_fullname);
$FILE_index = 0;
$FILE_pmsitype = $array[1];
$FILE_finess = $array[2];
$FILE_mois = $array[3];
if ($FILE_mois == "0000") {
$FILE_mois = "";
}
$FILE_date = date("d/m/Y H:i", $array[4]);
array_shift($array);
array_shift($array);
array_shift($array);
array_shift($array);
array_shift($array);
$FILE_name = implode(".", $array);
$FILE_size = filesize($FILE_fullpath);
$FILE_pmsitypeTexte = $FILE_pmsitype;
switch ($FILE_pmsitype) {
case "DRUIDE_OQN" :
$FILE_pmsitypeTexte = "DRUIDES OQN";
$FILE_index = 5;
break;
case "DRUIDE_SEJ" :
$FILE_pmsitypeTexte = "DRUIDES SEJOURS";
$FILE_index = 6;
break;
case "DRUIDE_ACE" :
$FILE_pmsitypeTexte = "DRUIDES RSFACE";
$FILE_index = 7;
break;
case "RSS" :
$FILE_pmsitypeTexte = "RSS.TXT (ex OQN)";
$FILE_index = 11;
break;
case "RSF" :
$FILE_pmsitypeTexte = "RSF.TXT (ex OQN)";
$FILE_index = 12;
break;
case "ZIN" :
$FILE_pmsitypeTexte = "RSS.IN.ZIP";
$FILE_index = 1;
break;
case "ZOU" :
$FILE_pmsitypeTexte = "RSS.OUT.ZIP (ex DG)";
$FILE_index = 2;
break;
case "ZIF" :
$FILE_pmsitypeTexte = "RSF.IN.ZIP (ex DG)";
$FILE_index = 3;
break;
case "MED" :
$FILE_pmsitypeTexte = "Médecins";
$FILE_index = 21;
break;
case "RSM" :
$FILE_pmsitype = "RSSMED";
$FILE_pmsitypeTexte = "Médecins par RSS";
$FILE_index = 22;
break;
case "RSI" :
$FILE_pmsitype = "RSSNOM";
$FILE_pmsitypeTexte = "Identités des RSS";
$FILE_index = 23;
break;
case "ACM" :
$FILE_pmsitype = "ACTMED";
$FILE_pmsitypeTexte = "Exécutants actes";
$FILE_index = 24;
break;
case "VSJ" :
$FILE_pmsitypeTexte = "Valorisation séjours";
$FILE_index = 25;
break;
case "VSE" :
$FILE_pmsitypeTexte = "Valorisation ACE";
$FILE_index = 26;
break;
case "TSP" :
$FILE_pmsitypeTexte = "FICHSUP transports";
$FILE_index = 27;
break;
}
$FILE_object["fullname"] = $FILE_fullname;
$FILE_object["name"] = $FILE_name;
$FILE_object["fullpath"] = $FILE_fullpath;
$FILE_object["pmsitype"] = $FILE_pmsitype;
$FILE_object["pmsitypeTexte"] = $FILE_pmsitypeTexte;
$FILE_object["finess"] = $FILE_finess;
$FILE_object["mois"] = $FILE_mois;
$FILE_object["date"] = $FILE_date;
$FILE_object["size"] = $FILE_size;
$FILE_object["crc"] = @md5_file($FILE_fullpath);
$FILES_array[$FILE_index] = $FILE_object;
}
}
}
@closedir($rep);
ksort($FILES_array);
// Fichiers remontés
$ZIN_object = isset($FILES_array[1]) ? $FILES_array[1] : '';
$ZOU_object = isset($FILES_array[2]) ? $FILES_array[2] : '';
$ZIF_object = isset($FILES_array[3]) ? $FILES_array[3] : '';
// Druides
$DRUIDE_OQN_object = isset($FILES_array[5]) ? $FILES_array[5] : '';
$DRUIDE_SEJ_object = isset($FILES_array[6]) ? $FILES_array[6] : '';
$DRUIDE_ACE_object = isset($FILES_array[7]) ? $FILES_array[7] : '';
$RSS_object = '';
$RSF_object = '';
if (!$ZIN_object) {
$RSS_object = isset($FILES_array[11]) ? $FILES_array[11] : '';
$RSF_object = isset($FILES_array[12]) ? $FILES_array[12] : '';
}
$MED_object = isset($FILES_array[21]) ? $FILES_array[21] : '';
$RSM_object = isset($FILES_array[22]) ? $FILES_array[22] : '';
$RSI_object = isset($FILES_array[23]) ? $FILES_array[23] : '';
$ACM_object = isset($FILES_array[24]) ? $FILES_array[24] : '';
$VSJ_object = isset($FILES_array[25]) ? $FILES_array[25] : '';
$VSE_object = isset($FILES_array[26]) ? $FILES_array[26] : '';
$TSP_object = isset($FILES_array[27]) ? $FILES_array[27] : '';
$ZIN_crc = isset($ZIN_object["crc"]) ? trim($ZIN_object["crc"]) : '';
$ZOU_crc = isset($ZOU_object["crc"]) ? trim($ZOU_object["crc"]) : '';
$ZIF_crc = isset($ZIF_object["crc"]) ? trim($ZIF_object["crc"]) : '';
$DRUIDE_OQN_crc = isset($DRUIDE_OQN_object["crc"]) ? trim($DRUIDE_OQN_object["crc"]) : '';
$DRUIDE_SEJ_crc = isset($DRUIDE_SEJ_object["crc"]) ? trim($DRUIDE_SEJ_object["crc"]) : '';
$DRUIDE_ACE_crc = isset($DRUIDE_ACE_object["crc"]) ? trim($DRUIDE_ACE_object["crc"]) : '';
$RSS_crc = isset($RSS_object["crc"]) ? trim($RSS_object["crc"]) : '';
$RSF_crc = isset($RSF_object["crc"]) ? trim($RSF_object["crc"]) : '';
$MED_crc = isset($MED_object["crc"]) ? trim($MED_object["crc"]) : '';
$RSM_crc = isset($RSM_object["crc"]) ? trim($RSM_object["crc"]) : '';
$RSI_crc = isset($RSI_object["crc"]) ? trim($RSI_object["crc"]) : '';
$ACM_crc = isset($ACM_object["crc"]) ? trim($ACM_object["crc"]) : '';
$VSJ_crc = isset($VSJ_object["crc"]) ? trim($VSJ_object["crc"]) : '';
$VSE_crc = isset($VSE_object["crc"]) ? trim($VSE_object["crc"]) : '';
$TSP_crc = isset($TSP_object["crc"]) ? trim($TSP_object["crc"]) : '';
// Vérification si déjà enregistré
$sqlcmd = "SELECT oid, texte FROM
(
SELECT
p_imports.oid,
p_imports.texte,
MAX(CASE WHEN data_type = 'RSS' THEN p_imports_data.data_crc ELSE '' END) AS RSS_data_crc,
MAX(CASE WHEN data_type = 'RSF' THEN p_imports_data.data_crc ELSE '' END) AS RSF_data_crc,
MAX(CASE WHEN data_type = 'ZIN' THEN p_imports_data.data_crc ELSE '' END) AS ZIN_data_crc,
MAX(CASE WHEN data_type = 'ZOU' THEN p_imports_data.data_crc ELSE '' END) AS ZOU_data_crc,
MAX(CASE WHEN data_type = 'ZIF' THEN p_imports_data.data_crc ELSE '' END) AS ZIF_data_crc,
MAX(CASE WHEN data_type = 'DRUIDE_OQN' THEN p_imports_data.data_crc ELSE '' END) AS DRUIDE_OQN_data_crc,
MAX(CASE WHEN data_type = 'DRUIDE_SEJ' THEN p_imports_data.data_crc ELSE '' END) AS DRUIDE_SEJ_data_crc,
MAX(CASE WHEN data_type = 'DRUIDE_ACE' THEN p_imports_data.data_crc ELSE '' END) AS DRUIDE_ACE_data_crc,
MAX(CASE WHEN data_type = 'MED' THEN p_imports_data.data_crc ELSE '' END) AS MED_data_crc,
MAX(CASE WHEN data_type = 'RSSMED' THEN p_imports_data.data_crc ELSE '' END) AS RSM_data_crc,
MAX(CASE WHEN data_type = 'RSSNOM' THEN p_imports_data.data_crc ELSE '' END) AS RSI_data_crc,
MAX(CASE WHEN data_type = 'ACTMED' THEN p_imports_data.data_crc ELSE '' END) AS ACM_data_crc,
MAX(CASE WHEN data_type = 'VSJ' THEN p_imports_data.data_crc ELSE '' END) AS VSJ_data_crc,
MAX(CASE WHEN data_type = 'VSE' THEN p_imports_data.data_crc ELSE '' END) AS VSE_data_crc,
MAX(CASE WHEN data_type = 'TSP' THEN p_imports_data.data_crc ELSE '' END) AS TSP_data_crc
FROM pmsi.p_imports
JOIN pmsi.p_imports_data ON p_imports.oid = p_imports_data.import_id
WHERE data_type IN ('RSS', 'RSF', 'ZIN', 'ZOU', 'ZIF', 'DRUIDE_OQN', 'DRUIDE_SEJ', 'DRUIDE_ACE', 'MED', 'RSSMED', 'RSSNOM', 'ACTMED', 'VSJ', 'VSE', 'TSP')
GROUP BY 1,2
) subview
WHERE
ZIN_data_crc = '$ZIN_crc' AND
ZOU_data_crc = '$ZOU_crc' AND
ZIF_data_crc = '$ZIF_crc' AND
DRUIDE_OQN_data_crc = '$DRUIDE_OQN_crc' AND
DRUIDE_SEJ_data_crc = '$DRUIDE_SEJ_crc' AND
DRUIDE_ACE_data_crc = '$DRUIDE_ACE_crc' AND
RSS_data_crc = '$RSS_crc' AND
RSF_data_crc = '$RSF_crc' AND
MED_data_crc = '$MED_crc' AND
RSM_data_crc = '$RSM_crc' AND
RSI_data_crc = '$RSI_crc' AND
ACM_data_crc = '$ACM_crc' AND
VSJ_data_crc = '$VSJ_crc' AND
VSE_data_crc = '$VSE_crc' AND
TSP_data_crc = '$TSP_crc'
ORDER BY oid DESC";
$result = $database->exec($sqlcmd);
if ($result != false) {
$ok = TRUE;
while ($ok == TRUE) {
$ok = FALSE;
$record = $database->nextRecordInto();
if ($record != FALSE) {
$ok = TRUE;
$oid = floatval($record[0]);
$texte = $record[1];
$returnCode = "KO";
$returnTexte = "Fichiers déjà importés sous le numéro $oid ($texte)";
}
}
}
if ($returnCode == "KO") {
return;
}
// Ajout en base de données
$sqlcmd = "INSERT INTO pmsi.p_imports (texte, etat, date_import, etat_en_cours)
VALUES('" . pg_escape_string($in_import_texte) . "', '', CURRENT_DATE, 'I')";
$result = $database->exec($sqlcmd);
if ($result == false) {
$returnCode = "KO";
$returnTexte = "Ajout en base de données de l'entete a échoué";
return;
}
// Numéro du nouveau fichier
$import_id = 0;
$sqlcmd = "SELECT max(oid) AS oid FROM pmsi.p_imports WHERE etat = '' AND etat_en_cours = 'I' ";
$result = $database->exec($sqlcmd);
if ($result != false) {
$ok = TRUE;
while ($ok == TRUE) {
$ok = FALSE;
$record = $database->nextRecordInto();
if ($record != FALSE) {
$ok = TRUE;
$import_id = floatval($record[0]);
}
}
}
if ($import_id == 0) {
$returnCode = "KO";
$returnTexte = "Ajout en base de données de l'entete (2) a échoué";
return;
}
foreach ($FILES_array as &$FILE_object) {
addFile($import_id, $FILE_object["pmsitype"], $FILE_object["fullpath"], $FILE_object["name"], $FILE_object["crc"]);
}
$sqlcmd = "UPDATE pmsi.p_imports SET etat = 'I', etat_en_cours = '', traitement_a_faire = '' WHERE oid = $import_id ";
$result = $database->exec($sqlcmd);
}
function addFile($import_id, $data_type, $data_path, $file_name, $data_crc)
{
global $database;
if (file_exists($data_path)) {
$file_size = filesize($data_path);
$file_name = toSQL($file_name);
$start = 0;
$data_num = 0;
while ($start <= $file_size) {
$filebuff = file_get_contents($data_path, FALSE, NULL, $start, 10000000);
if ($data_type != "ZIN" && $data_type != "ZIF" && $data_type != "ZOU") {
$filebuff = compress($filebuff);
}
$filebuff = pg_escape_bytea($filebuff);
$sqlcmd = "INSERT INTO pmsi.p_imports_data (import_id, data_type, date_creation, data_num, data, file_path, file_size, data_crc)
VALUES($import_id, '$data_type', '2099-12-31', $data_num, '$filebuff', '$file_name', $file_size, '$data_crc' )";
$result = $database->exec($sqlcmd, "", FALSE, "", "-nohtmlspecialchars");
$start = $start + 10000000;
$data_num++;
}
}
}
function initializeDir()
{
if (!file_exists("../../../temp")) {
@mkdir("../../../temp");
}
}
?>