pour déploiement auto v2 via gitlab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

333 lines
9.2 KiB

<?php
require_once("../../base/php/startSession.php");
require_once("../../base/php//classDatabase.php");
require_once("../../base/php/Functions.php");
require_once("../../base/php/WebAppLog.php");
global $database;
global $finess;
global $typeEts;
global $tmp_path;
set_time_limit(3600);
ini_set('memory_limit','256M');
initializeDir();
$tmp_path = "../../../temp";
$returnCode = "OK";
$returnTexte = "";
$httpString = "";
$httpString = $httpString . "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
$httpString = $httpString . "\n<HTTP_SERVICE returnCode=\"$returnCode\" returnTexte=\"$returnTexte\" >";
$httpString = $httpString . get_files();
$httpString = $httpString . "\n</HTTP_SERVICE>";
$httpString = gzcompress($httpString,9);
$httpString = "_c_" . base64_encode($httpString);
echo "<CTICONTENT>$httpString</CTICONTENT>";
// récupération historique
function get_files() {
global $tmp_path;
global $typeEts;
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." ){
$longFile = $path . '/' . $FILE_fullname;
$fileType = "";
$path_parts = pathinfo($longFile);
$fileType = strtoupper($path_parts['extension']);
if (is_dir($longFile)) {
$fileType = "DIR";
}
$array = explode(".", $FILE_fullname);
$FILE_index = 0;
$FILE_pmsitype = $array[1];
// On ne récupère pas les fichiers originaux de druides du dossier temp
$druide_types = array("DRUIDE_SEJ", "DRUIDE_ACE", "DRUIDE_OQN");
if (in_array($FILE_pmsitype, $druide_types, true)){
continue;
}
$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($longFile);
$FILE_pmsitypeTexte = $FILE_pmsitype;
switch ($FILE_pmsitype) {
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";
$FILE_index = 2;
break;
case "ZIF" :
$FILE_pmsitypeTexte = "RSF.IN.ZIP (ex DG)";
$FILE_index = 3;
break;
case "MED" :
$FILE_pmsitypeTexte = "Compléments : Médecins";
$FILE_index = 21;
break;
case "RSM" :
$FILE_pmsitypeTexte = "Compléments : Médecins par RSS";
$FILE_index = 22;
break;
case "RSI" :
$FILE_pmsitypeTexte = "Compléments : Identités des RSS";
$FILE_index = 23;
break;
case "ACM" :
$FILE_pmsitypeTexte = "Compléments : Exécutants actes";
$FILE_index = 24;
break;
case "VSJ" :
$FILE_pmsitypeTexte = "Valorisation des séjours";
$FILE_index = 25;
break;
case "VSE" :
$FILE_pmsitypeTexte = "Valorisation des 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"] = $longFile;
$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;
$FILES_array[$FILE_index] = $FILE_object;
}
}
}
@closedir($rep);
$ZIN_mois = "";
$ZIN_name = "";
$ZOU_mois = "";
$ZOU_name = "";
$ZIF_mois = "";
$ZIF_name = "";
$RSS_mois = "";
$RSS_name = "";
$RSF_mois = "";
$RSF_name = "";
$VSJ_mois = "";
$VSJ_name = "";
$VSJ_size = 0;
$VSE_mois = "";
$VSE_name = "";
$VSE_size = 0;
ksort($FILES_array);
foreach ($FILES_array as &$FILE_object) {
$FILE_name = $FILE_object["name"];
$FILE_fullname = $FILE_object["fullname"];
$FILE_fullpath = $FILE_object["fullpath"];
$FILE_pmsitype = $FILE_object["pmsitype"];
$FILE_pmsitypeTexte = $FILE_object["pmsitypeTexte"];
$FILE_finess = $FILE_object["finess"];
$FILE_mois = $FILE_object["mois"];
$FILE_date = $FILE_object["date"];
$FILE_size = $FILE_object["size"];
if ($FILE_pmsitype == "ZIN") {
$ZIN_mois = $FILE_mois;
$ZIN_name = $FILE_name;
}
if ($FILE_pmsitype == "ZOU") {
$ZOU_mois = $FILE_mois;
$ZOU_name = $FILE_name;
}
if ($FILE_pmsitype == "ZIF") {
$ZIF_mois = $FILE_mois;
$ZIF_name = $FILE_name;
}
if ($FILE_pmsitype == "VSJ") {
$VSJ_mois = $FILE_mois;
$VSJ_name = $FILE_name;
$VSJ_size = $FILE_size;
}
if ($FILE_pmsitype == "VSE") {
$VSE_mois = $FILE_mois;
$VSE_name = $FILE_name;
$VSE_size = $FILE_size;
}
if ($FILE_pmsitype == "RSS") {
$RSS_mois = $FILE_mois;
$RSS_name = $FILE_name;
}
if ($FILE_pmsitype == "RSF") {
$RSF_mois = $FILE_mois;
$RSF_name = $FILE_name;
}
$httpString = $httpString . "\r\n<FILE name=\"$FILE_name\" type=\"$FILE_pmsitype\" typeTexte=\"$FILE_pmsitypeTexte\" fullname=\"$FILE_fullname\" fullpath=\"$FILE_fullpath\" mois=\"$FILE_mois\" date=\"$FILE_date\" size=\"$FILE_size\" />";
}
$statusCode = "OK";
$statusText = "";
if ($statusCode == "OK") {
if ($ZIN_name == "" && $RSS_name == "") {
$statusCode = "KO";
$statusText = "Le fichier RSS est obligatoire";
}
}
if ($statusCode == "OK") {
if ($ZIN_name != "" && $ZOU_name == "") {
$statusCode = "KO";
$statusText = "Le fichier OUT des RSS est obligatoire";
}
}
if ($statusCode == "OK") {
if ($RSS_name != "" && $RSF_name != "" && $RSS_mois != $RSF_mois) {
$statusCode = "KO";
$statusText = "Les fichiers RSS et RSF doivent être au même mois";
}
}
if ($statusCode == "OK") {
if ($RSS_name != "" && $RSF_name == "") {
$statusCode = "ATT";
$statusText = "Le fichier RSF est manquant";
}
}
if ($statusCode == "OK") {
if ($ZIN_name != "" && $ZOU_name != "" && $ZIN_mois != $ZOU_mois) {
$statusCode = "KO";
$statusText = "Les fichiers IN et OUT doivent être au même mois";
}
}
if ($statusCode == "OK") {
if ($ZIN_name != "" && $ZOU_name != "" && $ZIN_name != str_replace(".out.",".in.",$ZOU_name)) {
$statusCode = "KO";
$statusText = "Les fichiers IN et OUT doivent avoir le même horodatage";
}
}
if ($statusCode == "OK") {
if ($typeEts == "2" || $typeEts == "3") {
if ($ZIN_name != "" && $VSJ_name == "") {
$statusCode = "KO";
$statusText = "Le fichier VALOSEJ est obligatoire";
}
}
}
if ($statusCode == "OK") {
if ($typeEts == "2" || $typeEts == "3") {
if ($ZIN_name != "" && $VSJ_name != "" && $VSJ_size < 1000) {
$statusCode = "KO";
$statusText = "Le fichier VALOSEJ est vide";
}
}
}
if ($statusCode == "OK") {
if ($typeEts == "2" || $typeEts == "3") {
if ($ZIF_name != "" && $VSE_name != "" && $VSE_size < 1000) {
$statusCode = "KO";
$statusText = "Le fichier VALOACE est vide";
}
}
}
if ($statusCode == "OK") {
if ($ZIN_name != "" && $ZIF_name != "" && $ZIN_mois != $ZIF_mois) {
$statusCode = "KO";
$statusText = "Les fichiers RSS et ACE doivent être au même mois";
}
}
if ($statusCode == "OK") {
if ($ZIN_name != "" && $VSJ_name != "" && $ZIN_mois != $VSJ_mois) {
$statusCode = "KO";
$statusText = "Les fichiers RSS IN et VALOSEJ doivent être au même mois";
}
}
if ($statusCode == "OK") {
if ($ZIF_name != "" && $VSE_name != "" && $ZIF_mois != $VSE_mois) {
$statusCode = "KO";
$statusText = "Les fichiers RSF ACE et VALOACE doivent être au même mois";
}
}
if ($statusCode == "OK") {
if ($typeEts == "2" || $typeEts == "3") {
if ($ZIF_name != "" && $VSE_name == "") {
$statusCode = "ATT";
$statusText = "Le fichier VALOACE est indispensable à une valorisation correcte. L'import est malgré tout possible";
}
}
}
$httpString = $httpString . "\r\n<STATUS statusCode=\"$statusCode\" statusText=\"$statusText\" />";
return $httpString;
}
function initializeDir() {
if (! file_exists("../../../temp")) {
@mkdir("../../../temp");
}
}
?>