0) {
$ad_nom_resp.=" et ";
}
$ad_nom_resp.=$tmp_tab_resp[$loop_resp]['designation'];
}
}
}
}
}
}
else {
$sql="SELECT nom,prenom,civilite,statut FROM utilisateurs WHERE login='$lig2->login';";
$res3=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res3)>0) {
$lig3=mysqli_fetch_object($res3);
$donnee_tab_protagonistes[$cpt]['nom']=$lig3->civilite." ".strtoupper($lig3->nom)." ".ucfirst(mb_substr($lig3->prenom,0,1));
}
else {
echo "ERREUR: Login $lig2->login inconnu";
}
if($lig3->statut=='autre') {
//echo " (".$_SESSION['statut_special'].")\n";
$sql = "SELECT ds.id, ds.nom_statut FROM droits_statut ds, droits_utilisateurs du
WHERE du.login_user = '".$lig2->login."'
AND du.id_statut = ds.id;";
$query = mysqli_query($GLOBALS["mysqli"], $sql);
$result = mysqli_fetch_array($query);
$donnee_tab_protagonistes[$cpt]['statut']=$result['nom_statut'];
}
else {
$donnee_tab_protagonistes[$cpt]['statut']=$lig3->statut;
}
}
if($lig2->qualite!='') {
$donnee_tab_protagonistes[$cpt]['qualite']=$lig2->qualite;
}
$cpt++;
}
// on inverse les clés
$r_tab_protagonistes=array_flip($tab_protagonistes);
//affichage des donnée pour débug
/*
echo "";
print_r($donnee_tab_protagonistes);
echo "
";
echo "";
print_r($array_type2);
echo "
";
*/
// on récupère les données à transmettre au modèle de retenue open office.
$sql_incident="SELECT * FROM s_incidents WHERE id_incident='$id_incident';";
$res_incident=mysqli_query($GLOBALS["mysqli"], $sql_incident);
if(mysqli_num_rows($res_incident)>0) {
$lig_incident=mysqli_fetch_object($res_incident);
//traitement de la date mysql
$date=datemysql_to_jj_mois_aaaa($lig_incident->date,'-','o');
// Créneau horaire
$creneau = $lig_incident->heure;
//traitement du motif
$motif = $lig_incident->description;
//traitement de l'objet
$objet_rapport = $lig_incident->nature;
// incident clos
$incident_clos = ($lig_incident->etat=="clos")?"L'incident est clos.":"";
//recherche des mesures prises dans la table s_traitement_incident
$sql_mesures_prises="SELECT s_mesures.mesure,s_traitement_incident.login_ele FROM s_traitement_incident,s_mesures WHERE s_traitement_incident.id_incident='$id_incident' AND s_traitement_incident.id_mesure=s_mesures.id AND s_mesures.type='prise' ORDER BY s_traitement_incident.login_ele";
//echo "$sql_lieu
\n";
$res_mesures_prises=mysqli_query($GLOBALS["mysqli"], $sql_mesures_prises);
if(mysqli_num_rows($res_mesures_prises)>0) {
while ($lig_mesure_prise=mysqli_fetch_object($res_mesures_prises)) {
if ($mesures_prises!="") {$mesures_prises .= "\n";}
if ($nb_eleves>1) {$mesures_prises .=$donnee_tab_protagonistes[$r_tab_protagonistes[$lig_mesure_prise->login_ele]]['nom']." : ";}
$mesures_prises .= $lig_mesure_prise->mesure;
}
}
//recherche des mesures demandées dans la table s_traitement_incident
$travail_demande="";
$sql_mesures_demandees="SELECT s_mesures.mesure,s_travail_mesure.login_ele,s_travail_mesure.travail FROM s_traitement_incident,s_mesures,s_travail_mesure WHERE s_traitement_incident.id_incident='$id_incident' AND s_traitement_incident.login_ele=s_travail_mesure.login_ele AND s_traitement_incident.id_mesure=s_mesures.id AND s_mesures.type='demandee' AND s_travail_mesure.id_incident='$id_incident' ORDER BY s_traitement_incident.login_ele";
//echo "$sql_lieu
\n";
$res_mesures_demandees=mysqli_query($GLOBALS["mysqli"], $sql_mesures_demandees);
if(mysqli_num_rows($res_mesures_demandees)>0) {
while ($lig_mesure_demandee=mysqli_fetch_object($res_mesures_demandees)) {
if ($nb_eleves>1) {$mesures_demandees .=$donnee_tab_protagonistes[$r_tab_protagonistes[$lig_mesure_demandee->login_ele]]['nom']." : ";}
$mesures_demandees .= $lig_mesure_demandee->mesure."\n";
// quelque soit le nombre de mesures demandées il ne peut y avoir qu'un seul travail et/ou document
$travail_demande = " ° Travail : ".$lig_mesure_demandee->travail;
}
if ($travail_demande!="") {$mesures_demandees .= $travail_demande."\n";}
}
// recherche des suites données à l'incident
$sql_autres_mesures_prises="SELECT nature,id_sanction,login FROM s_sanctions WHERE s_sanctions.id_incident = '".$id_incident."' ORDER BY login";
$res_autres_mesures_prises=mysqli_query($GLOBALS["mysqli"], $sql_autres_mesures_prises);
if(mysqli_num_rows($res_autres_mesures_prises)>0) {
while ($lig_autre_sanction=mysqli_fetch_object($res_autres_mesures_prises)) {
switch($lig_autre_sanction->nature)
{
case "travail" :
if ($nb_eleves>1) {$autres_mesures_prises .=$donnee_tab_protagonistes[$r_tab_protagonistes[$lig_autre_sanction->login]]['nom']." : ";}
$autres_mesures_prises .= "Travail\n";
$r_sql="SELECT travail FROM s_travail WHERE id_sanction='".$lig_autre_sanction->id_sanction."'";
$R=mysqli_query($GLOBALS["mysqli"], $r_sql);
if ($R) {$autres_mesures_prises .= " ° ".old_mysql_result($R,0)."\n";}
break;
case "retenue" :
if ($nb_eleves>1) {$autres_mesures_prises .=$donnee_tab_protagonistes[$r_tab_protagonistes[$lig_autre_sanction->login]]['nom']." : ";}
$autres_mesures_prises .= "Retenue\n";
$r_sql="SELECT travail FROM s_retenues WHERE id_sanction='".$lig_autre_sanction->id_sanction."'";
$R=mysqli_query($GLOBALS["mysqli"], $r_sql);
if ($R) {$autres_mesures_prises .= " ° Travail : ".old_mysql_result($R,0)."\n";}
break;
case "exclusion" :
if ($nb_eleves>1) {$autres_mesures_prises .=$donnee_tab_protagonistes[$r_tab_protagonistes[$lig_autre_sanction->login]]['nom']." : ";}
$autres_mesures_prises .= "Exclusion\n";
$r_sql="SELECT travail,type_exclusion,qualification_faits FROM s_exclusions WHERE id_sanction='".$lig_autre_sanction->id_sanction."'";
$R=mysqli_query($GLOBALS["mysqli"], $r_sql);
if ($R) {$autres_mesures_prises .= " ° Type : ".old_mysql_result($R,0,1)."\n ° Travail : ".old_mysql_result($R,0,0)."\n ° Qualifications des faits : ".old_mysql_result($R,0,2)."\n";}
break;
}
}
}
//$sql_autres_mesures_prises="SELECT s_autres_sanctions.description,s_types_sanctions.nature,s_sanctions.login FROM s_sanctions ,s_autres_sanctions,s_types_sanctions WHERE s_sanctions.id_incident = '".$id_incident."'AND s_sanctions.id_sanction = s_autres_sanctions.id_sanction AND s_autres_sanctions.id_nature=s_types_sanctions.id_nature ORDER BY s_sanctions.login";
$sql_autres_mesures_prises="SELECT s_autres_sanctions.description,sts.nature,s_sanctions.login FROM s_sanctions ,s_autres_sanctions,s_types_sanctions2 sts WHERE s_sanctions.id_incident = '".$id_incident."'AND s_sanctions.id_sanction = s_autres_sanctions.id_sanction AND s_autres_sanctions.id_nature=sts.id_nature ORDER BY s_sanctions.login";
$res_autres_mesures_prises=mysqli_query($GLOBALS["mysqli"], $sql_autres_mesures_prises);
if(mysqli_num_rows($res_autres_mesures_prises)>0) {
while ($lig_autre_sanction=mysqli_fetch_object($res_autres_mesures_prises)) {
if ($nb_eleves>1) {$autres_mesures_prises .=$donnee_tab_protagonistes[$r_tab_protagonistes[$lig_autre_sanction->login]]['nom']." : ";}
$autres_mesures_prises .= $lig_autre_sanction->nature."\n";
if ($lig_autre_sanction->description!="") {$autres_mesures_prises .= " ° ".$lig_autre_sanction->description."\n";}
}
}
//recherche du lieu dans la table s_lieux_incidents
$sql_lieu="SELECT * FROM s_lieux_incidents WHERE id='$lig_incident->id_lieu';";
//echo "$sql_lieu
\n";
$res_lieu=mysqli_query($GLOBALS["mysqli"], $sql_lieu);
if(mysqli_num_rows($res_lieu)>0) {
$lig_lieu=mysqli_fetch_object($res_lieu);
$lieu_incident = $lig_lieu->lieu;
}
//le déclarant On récupère le nom et le prénom (et la qualité)
$sql="SELECT nom,prenom,civilite,statut FROM utilisateurs WHERE login='$lig_incident->declarant';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
//var modèle
$nom_resp = $lig->civilite." ".strtoupper($lig->nom)." ".ucfirst(mb_substr($lig->prenom,0,1)).".";
}
else {
echo "ERREUR: Login $lig_incident->declarant";
}
if($lig->statut=='autre') {
$sql = "SELECT ds.id, ds.nom_statut FROM droits_statut ds, droits_utilisateurs du
WHERE du.login_user = '".$lig_incident->declarant."'
AND du.id_statut = ds.id;";
$query = mysqli_query($GLOBALS["mysqli"], $sql);
$result = mysqli_fetch_array($query);
//var modèle
$fct_resp = $result['nom_statut'] ;
}
else {
$fct_resp = $lig->statut ;
}
$fct_resp = ucfirst($fct_resp);
} else {
return "INCIDENT INCONNU";
}
//var modèle
$num_incident = $id_incident;
} //if mode = module discipline
//
// Fin zone de traitement Les données qui seront fusionnées au modèle
//
$TBS = new clsTinyButStrong; // new instance of TBS
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); // load OpenTBS plugin
// Load the template
$nom_fichier_modele_ooo ='rapport_incident.odt';
//Procédure du traitement à effectuer
//les chemins contenant les données
include_once ("./lib/chemin.inc.php");
$nom_fichier = $nom_dossier_modele_a_utiliser.$nom_fichier_modele_ooo;
$TBS->LoadTemplate($nom_fichier, OPENTBS_ALREADY_UTF8);
//Génération du nom du fichier
$now = gmdate('d_M_Y_H:i:s');
$nom_fichier_modele = explode('.',$nom_fichier_modele_ooo);
$nom_fic = remplace_accents($nom_fichier_modele[0]."_N°_".$num_incident."_généré_le_".$now.".".$nom_fichier_modele[1]);
$TBS->MergeBlock('blk1',$donnee_tab_protagonistes) ;
$TBS->Show(OPENTBS_DOWNLOAD+TBS_EXIT, $nom_fic);
?>