"; $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"); } } ?>