Files
MYSOPHAL/front/drh.demandes.hs.export.php
2025-08-07 13:15:31 +01:00

334 lines
17 KiB
PHP

<?php
use Glpi\Event;
include ('../inc/includes.php');
Session::checkLoginUser();
require_once '../functionsophalglpi.php';
if (isset($_GET['content'])){
$data_populated = false;
switch ($_GET['content']) {
case "HS":
$result = getHSEmployees(true,36);//Heurs sup
$title = "Export_Heur_Sup_";
$header = ['Nom','Matricule','Fonction','Structure','Date de requisition',
'Motif de requisition','Heure de debut','Heure de fin','Lieu de travail','Validation','Ticket'];
$final_data = array();
// print_r(explode("<br>",html_entity_decode(str_replace('<br />','<br>',$result[0]['content']))));
// print_r($result);
foreach($result as $res){
// $temp = explode("<br />",html_entity_decode($res['content']));
if($res){
$temp = array();
$temp_content = explode("<br>",html_entity_decode(str_replace("r /","r",$res['content'])));
array_push($temp,$res['name']);
array_push($temp,explode(':',$temp_content[0])[1]);
array_push($temp,explode(':',$temp_content[1])[1]);
array_push($temp,explode(':',$temp_content[2])[1]);
array_push($temp,explode(':',$temp_content[4])[1]);
array_push($temp,explode(':',$temp_content[5])[1]);
array_push($temp,explode(':',$temp_content[6])[1]);
array_push($temp,explode(':',$temp_content[7])[1]);
array_push($temp,strip_tags(explode(':',$temp_content[8])[1]));
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
// print_r($temp);
//print_r($temp);
array_push($final_data,$temp);
}
}
$data_populated = true;
break;
case "AA":
$result = getHSEmployees(true,15);//Autorisation Absenece
$title = "Export_Autorisation_abs_";
$header = ['Nom','Matricule','Fonction','Structure','la journee d\'absence','Commentaire','Validation','Ticket'];
$final_data = array();
//print_r(explode("<br>",html_entity_decode(str_replace('<br />','<br>',$result[0]['content']))));
foreach($result as $res){
// $temp = explode("<br />",html_entity_decode($res['content']));
if($res){
$temp = array();
$temp_content = explode("<br>",html_entity_decode(str_replace("r /","r",$res['content'])));
if(str_contains($res['content'],"&lt;table")){
$DOM = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$DOM->loadHTML(html_entity_decode($res['content']));
libxml_use_internal_errors($internalErrors);
$Detail = $DOM->getElementsByTagName('td');
foreach($Detail as $NodeHeader)
{
$aDataTableHeaderHTML[] = trim($NodeHeader->textContent);
}
array_push($temp,$res['name']);
array_push($temp,$aDataTableHeaderHTML[1]);
array_push($temp,$aDataTableHeaderHTML[3]);
array_push($temp,$aDataTableHeaderHTML[5]);
array_push($temp,$aDataTableHeaderHTML[7]);
array_push($temp,"");
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
$aDataTableHeaderHTML = null;
//print_r($temp);
//echo"<br>";
array_push($final_data,$temp);
} else {
array_push($temp,$res['name']);
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[0])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[1])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[2])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[3])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[4])[1] : "");
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
//print_r($temp);
array_push($final_data,$temp);
}
}
}
$data_populated = true;
// print_r($result);
break;
case "AE":
$result = getHSEmployees(true,16);//Autorisation Entrer
$title = "Export_Autorisation_entr_";
$header = ['Nom','Matricule','Fonction','Structure','la journee de reprise','Commentaire','Validation','Ticket'];
$final_data = array();
foreach($result as $res){
// $temp = explode("<br />",html_entity_decode($res['content']));
if($res){
$temp = array();
$temp_content = explode("<br>",html_entity_decode(str_replace("r /","r",$res['content'])));
array_push($temp,$res['name']);
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[0])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[1])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[2])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[3])[1] : "");
array_push($temp,str_contains($res['content'],"Commentaire:") ? explode(':',$temp_content[4])[1] : "");
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
//print_r($temp);
array_push($final_data,$temp);
}
}
$data_populated = true;
break;
case "AS":
$result = getHSEmployees(true,12);//Autorisation Sortie
$title = "Export_Bulletin_Sortie_";
$header = ['Nom','Matricule','Fonction','Structure','Date autorisation de sortie','Heure','Pour','Validation','Ticket'];
$final_data = array();
//print_r(explode("<br>",html_entity_decode(str_replace('<br />','<br>',$result[0]['content']))));
foreach($result as $res){
// $temp = explode("<br />",html_entity_decode($res['content']));
if($res){
$temp = array();
$temp_content = explode("<br>",html_entity_decode(str_replace("r /","r",$res['content'])));
if(str_contains($res['content'],"&lt;table")){
$DOM = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$DOM->loadHTML(html_entity_decode($res['content']));
libxml_use_internal_errors($internalErrors);
$Detail = $DOM->getElementsByTagName('td');
foreach($Detail as $NodeHeader)
{
$aDataTableHeaderHTML[] = trim($NodeHeader->textContent);
}
array_push($temp,$res['name']);
array_push($temp,$aDataTableHeaderHTML[1]);
array_push($temp,$aDataTableHeaderHTML[3]);
array_push($temp,$aDataTableHeaderHTML[5]);
array_push($temp,$aDataTableHeaderHTML[7]);
array_push($temp,$aDataTableHeaderHTML[9]);
array_push($temp,$aDataTableHeaderHTML[11]);
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
$aDataTableHeaderHTML = null;
//print_r($temp);
//echo"<br>";
array_push($final_data,$temp);
} else {
array_push($temp,$res['name']);
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[0])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[1])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[2])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[3])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[4])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[5])[1] : "");
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
//print_r($temp_content);
//echo"<br>";
array_push($final_data,$temp);
}
}
}
$data_populated = true;
// print_r($result);
break;
case "CR":
$result = getHSEmployees(true,38);//Conge de recuperation
$title = "Export_Conge_Recup_";
$header = ['Nom','Matricule','Fonction','Structure','Date debut','Date fin','Commentaire','Validation','Ticket'];
$final_data = array();
//print_r(explode("<br>",html_entity_decode(str_replace('<br />','<br>',$result[0]['content']))));
foreach($result as $res){
// $temp = explode("<br />",html_entity_decode($res['content']));
if($res){
$temp = array();
$temp_content = explode("<br>",html_entity_decode(str_replace("r /","r",$res['content'])));
if(str_contains($res['content'],"&lt;table")){
$DOM = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$DOM->loadHTML(html_entity_decode($res['content']));
libxml_use_internal_errors($internalErrors);
$Detail = $DOM->getElementsByTagName('td');
foreach($Detail as $NodeHeader)
{
$aDataTableHeaderHTML[] = trim($NodeHeader->textContent);
}
array_push($temp,$res['name']);
array_push($temp,$aDataTableHeaderHTML[1]);
array_push($temp,$aDataTableHeaderHTML[3]);
array_push($temp,$aDataTableHeaderHTML[5]);
array_push($temp,$aDataTableHeaderHTML[7]);
array_push($temp,$aDataTableHeaderHTML[9]);
array_push($temp,$aDataTableHeaderHTML[11]);
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
$aDataTableHeaderHTML = null;
//print_r($temp);
//echo"<br>";
array_push($final_data,$temp);
} else {
array_push($temp,$res['name']);
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[0])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[1])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[2])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[3])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[4])[1] : "");
array_push($temp,str_contains($res['content'],":") ? explode(':',$temp_content[5])[1] : "");
array_push($temp,$res['Validation']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
//print_r($temp_content);
//echo"<br>";
array_push($final_data,$temp);
}
}
}
$data_populated = true;
// print_r($result);
break;
case "RE":
$result = getReclamations(true,33); //Reclamation
$title = "Export_Reclamation_";
$header = ['Matricule','Nom','Titre','Description','Date','Ticket'];
$final_data = array();
foreach($result as $res){
if($res){
$temp = array();
array_push($temp,$res['matricule']);
array_push($temp,$res['name']);
array_push($temp,$res['ticket_name']);
// Remove HTML tags and decode entities to keep only plain text
$plain_content = html_entity_decode(strip_tags($res['content']), ENT_QUOTES | ENT_HTML5, 'UTF-8');
array_push($temp, $plain_content); // Description
array_push($temp,$res['date']);
array_push($temp,$res['status']);
array_push($temp,'https://dsi.sophal.dz/front/ticket.form.php?id='.$res['id']);
$aDataTableHeaderHTML = null;
//print_r($temp);
//echo"<br>";
array_push($final_data,$temp);
}
}
$data_populated = true;
// print_r($result);
break;
}
if($data_populated){
switch ($_GET['content']){
case "RE":
header("Content-Disposition: attachment; filename=\"".$title.Date('Y-m-d').".xls\"");
header("Content-Type: application/vnd.ms-excel;");
header("Pragma: no-cache");
header("Expires: 0");
// Start output buffering
ob_start();
// Start the HTML table
echo "<table border='1'>";
// Output the header row
echo "<tr>";
foreach ($header as $col) {
echo "<th>" . htmlspecialchars($col) . "</th>";
}
echo "</tr>";
// Output the data rows
foreach ($final_data as $data) {
echo "<tr>";
foreach ($data as $index => $cell) {
// Check if this is the column with HTML content
if ($index === 3) { // for the content colomn
$cell = strip_tags(html_entity_decode($cell, ENT_QUOTES | ENT_HTML5, 'UTF-8'));
}
echo "<td>" . htmlspecialchars($cell) . "</td>";
}
echo "</tr>";
}
// Close the table
echo "</table>";
// Send the buffered content to output
ob_end_flush();
break;
default:
header("Content-Disposition: attachment; filename=\"".$title.Date('Y-m-d-H:i:s').".xls\"");
header("Content-Type: application/vnd.ms-excel;");
header("Pragma: no-cache");
header("Expires: 0");
$out = fopen("php://output", 'w');
fputcsv($out, $header,"\t");
// print_r($final_data);
foreach ($final_data as $data)
{
fputcsv($out, $data,"\t");
}
fclose($out);
break;
}
#print_r(strip_tags(html_entity_decode(),""));
}else{
// echo"<script>alert('Erreur! Contactez votre administrateur.');window.location = 'central.php';</script>";
}
}else{
echo"<script>alert('invalide!');window.location = 'central.php';</script>";
}