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.
 
 

322 lines
8.8 KiB

<?php
/** Le dossier de l'environnement est le dossier parent du dossier 'modules' */
list($environmentPath) = explode(DIRECTORY_SEPARATOR.'modules', dirname(__FILE__));
$environmentPath .= DIRECTORY_SEPARATOR;
require_once $environmentPath . 'modules/base/php/startSession.php';
require_once $environmentPath . 'modules/base/php/Environnement.php';
require_once $environmentPath . 'modules/base/php/Functions.php';
require_once $environmentPath . 'modules/base/php/classDatabase.php';
$httpString = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
$httpString .= "\r\n<HTTP_SERVICE>";
$databaseName = "iCTI";
$database = new Database($databaseName);
$sqlcmd = "SELECT * FROM pmsi.create_view_consolidation_imports_1()";
$result = $database->exec($sqlcmd);
$sqlcmd = "SELECT * FROM pmsi.create_view_chiffrier_imports_1()";
$result = $database->exec($sqlcmd);
// Chiffriers
$sqlcmd = <<<SQL
SELECT
t_finess.code AS finess
,t_finess.texte AS finess_texte
,c_datemin
,c_datemax
,c_rsa
,c_ca
,d_datemin
,d_datemax
,d_rsa
,d_ca
FROM base.t_finess
LEFT JOIN
(
SELECT
finess
,MIN(mois || '01') AS c_datemin
,MAX(mois || '01') AS c_datemax
,SUM(nb_rsa) AS c_rsa
,SUM(ca_sejour) AS c_ca
FROM pmsi.p_chiffrier
WHERE mois >= 200701
GROUP BY finess
) subview_c
ON (subview_c.finess = t_finess.code)
LEFT JOIN
(
SELECT
finess_id
,MIN(mois || '01') AS d_datemin
,MAX(mois || '01') AS d_datemax
,SUM(nb_rsa) AS d_rsa
,SUM(ca_sejour) AS d_ca
FROM pmsi.v_consolidation_chiffrier_1
WHERE mois >= 200701
GROUP BY finess_id
) subview_d
ON (subview_d.finess_id = t_finess.oid)
WHERE t_finess.secondaire = '1'
ORDER BY t_finess.code
;
SQL;
$result = $database->exec($sqlcmd);
if ($result != false) {
$ok = TRUE;
while ($ok == TRUE) {
$ok = FALSE;
$record = $database->nextRecordAssoc();
if ($record != FALSE) {
$ok = TRUE;
$finess = trim($record['finess']);
$finess_texte = toHTML(trim($record['finess_texte']));
$min_conso = trim($record['c_datemin']);
$max_conso = trim($record['c_datemax']);
$rsa_conso = $record['c_rsa'];
$ca_conso = $record['c_ca'];
$min_det = trim($record['d_datemin']);
$max_det = trim($record['d_datemax']);
$rsa_det = $record['d_rsa'];
$ca_det = $record['d_ca'];
$node = <<<XML
<CHIFFRIER
finess="$finess"
finess_texte="$finess_texte"
min_det="$min_det"
max_det="$max_det"
rsa_det="$rsa_det"
ca_det="$ca_det"
min_conso="$min_conso"
max_conso="$max_conso"
rsa_conso="$rsa_conso"
ca_conso="$ca_conso"
/>
XML;
$httpString .= "\r\n$node";
}
}
}
// Imports
$sqlcmd = <<<SQL
SELECT
v_consolidation_imports_1.oid
,v_consolidation_imports_1.texte
,v_consolidation_imports_1.date_import
,v_consolidation_imports_1.etat
,v_consolidation_imports_1.etat_en_cours
,v_consolidation_imports_1.traitement_a_faire
,finess_code AS finess
,date_debut
,date_fin
,nb_rss
,nb_rum
,nb_rsf
,nb_erreurs
,nb_avertissements
,t_finess_database.dbname
,t_finess.texte AS finess_texte
FROM
pmsi.v_consolidation_imports_1
,base.t_finess_database
,base.t_finess
WHERE v_consolidation_imports_1.finess_id = t_finess_database.finess_id
AND v_consolidation_imports_1.finess_id = t_finess.oid
AND v_consolidation_imports_1.date_fin >= '20070101'
ORDER BY t_finess.code
,v_consolidation_imports_1.oid DESC
;
SQL;
$result = $database->exec($sqlcmd);
if ($result != false) {
$ok = TRUE;
while ($ok == TRUE) {
$ok = FALSE;
$record = $database->nextRecordAssoc();
if ($record != FALSE) {
$ok = TRUE;
$oid = $record['oid'];
$texte = toHTML(trim($record['texte']));
$date_import = trim($record['date_import']);
$etat = trim($record['etat']);
$etat_en_cours = trim($record['etat_en_cours']);
$traitement_a_faire = trim($record['traitement_a_faire']);
$finess = trim($record['finess']);
$date_debut = trim($record['date_debut']);
$date_fin = trim($record['date_fin']);
$nb_rss = trim($record['nb_rss']);
$nb_rum = trim($record['nb_rum']);
$nb_rsf = trim($record['nb_rsf']);
$nb_erreurs = trim($record['nb_erreurs']);
$nb_avertissements = trim($record['nb_avertissements']);
$dbname = trim($record['dbname']);
/** Informations d'autentification communes */
$dbuser = $database->user;
$dbpassword = $database->password;
$finess_texte = toHTML(trim($record['finess_texte']));
$node = <<<XML
<IMPORT
oid="$oid"
texte="$texte"
date_import="$date_import"
etat="$etat"
etat_en_cours="$etat_en_cours"
traitement_a_faire="$traitement_a_faire"
finess="$finess"
date_debut="$date_debut"
date_fin="$date_fin"
nb_rss="$nb_rss"
nb_rum="$nb_rum"
nb_rsf="$nb_rsf"
nb_erreurs="$nb_erreurs"
nb_avertissements="$nb_avertissements"
dbname="$dbname"
dbuser="$dbuser"
dbpassword="$dbpassword"
finess_texte="$finess_texte"
/>
XML;
$httpString .= "\r\n$node";
}
}
}
// Historique des travaux
// travaux actifs
$httpString .= getJobs("active");
// travaux terminés
$httpString .= getJobs("endded");
$httpString .= "\r\n</HTTP_SERVICE>";
$httpString = gzcompress($httpString,9);
$httpString = "_c_" . base64_encode($httpString);
echo "<CTICONTENT>$httpString</CTICONTENT>";
// recherche historique des travaux
function getJobs($type) {
$httpString = "";
global $jobs;
global $jobsDate;
global $jobsType;
if ($type == "active") {
$path = rootDir() . "system/batch/activejobs";
}
else {
$path = rootDir() . "system/batch/jobs";
}
// lecture
$rep=@opendir($path);
if ($rep > 0) {
while ($file = readdir($rep)){
if($file != '..' && $file !='.' && $file !='' ){
$suffix = strtolower(substr($file,strlen($file)-4));
if ($suffix == ".pid") {
$longFile = $path . '/' . $file;
$pid="";
$name="";
$module="";
$title="";
$start="";
$end="";
$endStatus="";
$duration="";
$log="";
if ($type == "active") {
$endStatus="En cours";
$end="En-cours";
}
$handle = @fopen($longFile, "r");
$contents = "";
while (!feof($handle)) {
$contents = @fgets($handle);
if (substr($contents, 0, 4) == 'pid=') {
$pid = trim(substr($contents, 4, strlen($contents)-4));
}
if (substr($contents, 0, 5) == 'name=') {
$name = trim(substr($contents, 5, strlen($contents)-5));
}
if (substr($contents, 0, 7) == 'module=') {
$module = trim(substr($contents, 7, strlen($contents)-7));
}
if (substr($contents, 0, 6) == 'title=') {
$title = trim(substr($contents, 6, strlen($contents)-6));
}
if (substr($contents, 0, 6) == 'start=') {
$start = trim(substr($contents, 6, strlen($contents)-6));
}
if (substr($contents, 0, 4) == 'end=' && $type != "active") {
$end = trim(substr($contents, 4, strlen($contents)-4));
}
if (substr($contents, 0, 9) == 'duration=') {
$duration = trim(substr($contents, 9, strlen($contents)-9));
$duration = mktime(0, 0, $duration, 1, 1, 2007);
$duration = date("G:i:s", $duration);
}
if (substr($contents, 0, 10) == 'endStatus=' && $type != "active") {
$endStatus = trim(substr($contents, 10, strlen($contents)-10));
}
if (substr($contents, 0, 4) == 'log=') {
$log = trim(substr($contents, 4, strlen($contents)-4));
}
}
@fclose($handle);
if ($pid !== '' && (strtolower($name) === "icti_consolidation_pmsi" || strtolower($name) === "icti_consolidation_pmsi_2")) {
$node = <<<XML
<JOB
pid="$pid"
logFile="$log"
name="$name"
module="$module"
title="$title"
start="$start"
end="$end"
duration="$duration"
endStatus="$endStatus"
pidfile="$longFile"
/>
XML;
$httpString .= "\r\n$node";
}
}
}
}
}
@closedir($rep);
return $httpString;
}