/gespac/gestion_dossiers/post_dossiers.php
PHP | 272 lines | 159 code | 70 blank | 43 comment | 22 complexity | 40a499c7c43705a8862a578d79d71466 MD5 | raw file
- <?PHP
- session_start();
-
- /* fichier de creation / modification d'un dossier */
-
- // lib
- include_once ('../config/databases.php');
- include_once ('../../class/Sql.class.php');
- include_once ('../../class/Log.class.php');
-
-
- // on rיcupטre les paramטtres de l'url
- $action = $_GET['action'];
-
- // Cnx א la base
- $con_gespac = new Sql($host, $user, $pass, $gespac);
- $log = new Log ("../dump/log_sql.sql");
-
- /**************** INSERTION ********************/
- if ( $action == 'add' ) {
-
- $type = addslashes($_POST ['type']);
- $commentaire = addslashes($_POST ['commentaire']);
- $liste_mat = preg_replace("[^;]", "", $_POST ['liste_mat']); // On vire le premier ; dans la liste du matיriel
- $add_inter = $_POST ['add_inter'];
- $active_mailing = $_POST ['active_mailing'];
- $mailing = $active_mailing == "on" ? 1 : 0;
- $mat_hs = $_POST ['mat_hs'];
- $current_user = $con_gespac->QueryOne("SELECT user_id FROM users WHERE user_logon = '" . $_SESSION['login'] . "'");
-
- // On crיי le dossier
- $rq = "INSERT INTO dossiers (dossier_type, dossier_mat, dossier_mailing) VALUES ('$type', '$liste_mat', $mailing);";
- $con_gespac->Execute($rq);
- $log->Insert($rq);
-
-
- // On rיcupטre l'id du dernier dossier crיי
- $dossier = $con_gespac->GetLastID();
-
- // Si la case crיer l'intervention est cochיe
- $etat = $add_inter == "on" ? "intervention" : "ouverture";
-
- // On crיי une page dans le dossier
- $rq = "INSERT INTO dossiers_textes (dossier_id, txt_user, txt_texte, txt_etat) VALUES ($dossier, '$current_user', '$commentaire', '$etat');";
- $con_gespac->Execute($rq);
- $log->Insert($rq);
-
- echo "le dossier $dossier a יtי crיי.";
-
-
- // Si on veut changer l'יtat du matיriel
- if ( $mat_hs == "on" ) {
- $tab_liste_mat = explode(";", $liste_mat);
-
- $etat = addslashes($_POST ['CB_etats']);
-
- if ($etat <> "") {
-
- $gign = $_POST ['gign'];
-
- foreach ($tab_liste_mat as $mat) {
-
- if ($gign <> "") $espace = " ";
-
- $rq = "UPDATE materiels SET mat_etat='$etat $espace $gign' WHERE mat_id=$mat";
- $con_gespac->Execute($rq);
- $log->Insert($rq);
-
- }
- }
- }
-
-
- // Si on active le mailing
- if ( $mailing == 1) {
-
- echo $_SESSION['login'];
- //Rיcupיration du mail du compte ati (root)
- $mail_root = $con_gespac->QueryOne("SELECT clg_ati_mail FROM college");
- //Rיcupיration des comptes qui ont le grade ATI
- $req_comptes_ati = $con_gespac->QueryAll("SELECT user_nom, user_mail FROM users, grades WHERE grade_nom='ati' AND users.grade_id = grades.grade_id AND user_mailing=1");
-
-
- //on rיcupטre le mail et le nom du crיateur de l'intervention (si le mailing est activי)
- $req_mail_demandeur = $con_gespac->QueryRow("SELECT user_mail, user_nom FROM users WHERE user_id=$current_user AND user_mailing=1");
- $mail_demandeur = $req_mail_demandeur[0];
- $nom_demandeur = $req_mail_demandeur[1];
-
- echo '<br>'.$nom_demandeur.'<br>'.$mail_demandeur.'<br><br>';
-
- // CORPS DU MAIL
- $corps_mail = "Le dossier <b>$dossier</b> a יtי crיי. Vous pouvez le suivre en consultant la liste de vos dossiers sur votre interface GESPAC.<br><br>";
- $corps_mail .= "Le type du dossier est : <b>'$type'<br><br></b>";
- $corps_mail .= "L'יtat du dossier est actuellement : <b>'$etat'<br><br></b>";
- $corps_mail .= "Commentaire de l'utilisateur : <i>'$commentaire'</i><br><br>";
- $corps_mail .= "<i>Ce mail est envoyי automatiquement. Inutile d'y rיpondre, vous ne recevrez aucun mail en retour. Pour tout suivi du dossier, merci de vous connecter א <a href='http://gespac/gespac'>votre interface GESPAC.</a></i><br><br>";
- $corps_mail .= "L'יquipe GESPAC";
-
- $sujet_mail = '[GESPAC]Crיation du dossier n°'.$dossier.' par l\'utilisateur '.$nom_demandeur;
-
- $message = '<html><head><title>'.$sujet_mail.'</title></head><body>'.$corps_mail.'</body></html>';
- //Boucle pour rיcupיrer la liste des mails des ATIs
- foreach ( $req_comptes_ati as $record ) {
-
- $mail_nom = $record["user_nom"];
- $mail_ati = $record["user_mail"];
-
- if (empty($mail_ati)) { //le champ $mail_ati est vide
- $liste_mail_ati .= ''; //on ne concatטne rien dans la variable $liste_mail_ati
- } else { // si ce champ n'est pas vide
- $liste_mail_ati .= $mail_ati.','; //on colle א la variable la valeur de $mail_ati suivi d'une virgule
- }
- }
-
- // on concatטne les mails des ati avec le mail du destinataire. L'envoi en Cc nous met une erreur.
- $mail_destinataire = $liste_mail_ati.$mail_demandeur;
- //on cherche si il y a une virgule aprטs le sיparateur ','. Si c'est le cas, on remplace cette virgule par une seule virgule.
- $mail_destinataire = str_replace (",,", ",", $mail_destinataire);
- // Vיrification des doublons
-
- // on transforme la chaine $mail_prof en un tableau
- $verif_doublon_mail_destinataire = explode(',', $mail_destinataire);
- // Cette fonction va nous retourner un tableau complטtement dיdoublonnי !! Magique !
- $verif_doublon_mail_destinataire = array_unique($verif_doublon_mail_destinataire);
- // On reconstruit notre string א partir du tableau dיdoublonnי
- $mail_destinataire = implode(",", $verif_doublon_mail_destinataire);
-
- echo $mail_destinataire;
-
- $headers ='From: '.$mail_root."\n"; //c'est toujours le compte root qui envoie le mail
- $headers .='Reply-To: '.$mail_root."\n";
- $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
- $headers .='Content-Transfer-Encoding: 8bit';
-
- if (mail($mail_destinataire, $sujet_mail, $message, $headers))
- echo 'Le(s) mail(s) a (ont) bien יtי envoyי(s) !<br>';
- else
- echo 'Le(s) mail(s) n\'a (ont) pas יtי envoyי(s) !<br>';
-
- }
- }
-
- /**************** MODIFICATION ********************/
- if ( $action == 'modif' ) {
-
- $dossierid = $_POST['dossierid'];
- $etat = addslashes($_POST ['etat']);
- $commentaire = addslashes($_POST ['commentaire']);
- $mailing = $con_gespac->QueryOne("SELECT dossier_mailing FROM dossiers WHERE dossier_id = $dossierid");
- $current_user = $con_gespac->QueryOne("SELECT user_id FROM users WHERE user_logon = '" . $_SESSION['login'] . "'");
-
- // On crיי une page dans le dossier
- $rq = "INSERT INTO dossiers_textes (dossier_id, txt_user, txt_texte, txt_etat) VALUES ($dossierid, '$current_user', '$commentaire', '$etat');";
- $con_gespac->Execute($rq);
- $log->Insert($rq);
-
-
- // Si on active le mailing
- if ( $mailing == 1) {
-
- //Rיcupיration du mail du compte ati (root)
- $mail_root = $con_gespac->QueryOne("SELECT clg_ati_mail FROM college");
-
- //Rיcupיration des comptes qui ont le grade ATI et dont le mailing est actif au niveau utilisateur
- $req_comptes_ati = $con_gespac->QueryAll("SELECT user_nom, user_mail FROM users, grades WHERE grade_nom='ati' AND users.grade_id = grades.grade_id AND user_mailing=1");
-
- //Rיcupיration des noms et des mails des personnes qui ont participי au dossier et dont le mailing est actif au niveau utilisateur
- $req_comptes_participants = $con_gespac->QueryAll("SELECT user_nom, user_mail FROM users, dossiers_textes WHERE user_id = txt_user AND dossier_id=$dossierid AND user_mailing=1");
-
- //on rיcupטre le mail et le nom du crיateur de l'intervention (si le mailing est activי)
- /*$req_mail_demandeur = $con_gespac->QueryRow("SELECT user_mail, user_nom FROM users WHERE user_id=$current_user AND user_mailing=1");
- $mail_demandeur = $req_mail_demandeur["user_mail"];
- $nom_demandeur = $req_mail_demandeur["user_nom"];*/
-
- // CORPS DU MAIL
- $corps_mail = "Le dossier <b>$dossierid</b> a יtי modifiי. Vous pouvez le suivre en consultant la liste de vos dossiers sur votre interface GESPAC.<br><br>";
- $corps_mail .= "L'יtat du dossier est actuellement : <b>'$etat'<br><br></b>";
- $corps_mail .= "Commentaire de l'utilisateur : <i>'$commentaire'</i><br><br>";
- $corps_mail .= "<i>Ce mail est envoyי automatiquement. Inutile d'y rיpondre, vous ne recevrez aucun mail en retour. Pour tout suivi du dossier, merci de vous connecter א <a href='http://gespac/gespac'>votre interface GESPAC.</a></i><br><br>";
- $corps_mail .= "L'יquipe GESPAC";
-
- $sujet_mail = '[GESPAC]Modification du dossier n°'.$dossierid.' par l\'utilisateur '.$_SESSION['login'];
-
- $message = '<html><head><title>'.$sujet_mail.'</title></head><body>'.$corps_mail.'</body></html>';
- //Boucle pour rיcupיrer la liste des mails des ATIs
- foreach ( $req_comptes_ati as $record ) {
-
- $mail_nom = $record["user_nom"];
- $mail_ati = $record["user_mail"];
-
- if (empty($mail_ati)) { //le champ $mail_ati est vide
- $liste_mail_ati .= ''; //on ne concatטne rien dans la variable $liste_mail_ati
- } else { // si ce champ n'est pas vide
- $liste_mail_ati .= $mail_ati.','; //on colle א la variable la valeur de $mail_ati suivi d'une virgule
- }
- }
-
- //Boucle pour rיcupיrer la liste des mails des participants au dossier
- foreach ( $req_comptes_participants as $record ) {
-
- $nom_participant = $record["user_nom"];
- $mail_participant = $record["user_mail"];
-
- if (empty($mail_participant)) { //le champ $mail_ati est vide
- $liste_mail_participants .= ''; //on ne concatטne rien dans la variable $liste_mail_ati
- } else { // si ce champ n'est pas vide
- $liste_mail_participants .= $mail_participant.','; //on colle א la variable la valeur de $mail_ati suivi d'une virgule
- }
- }
-
- // on concatטne les mails des ati avec le mail du destinataire. L'envoi en Cc nous met une erreur.
- $mail_destinataire = $liste_mail_ati.$liste_mail_participants;
- //on cherche si il y a une virgule aprטs le sיparateur ','. Si c'est le cas, on remplace cette virgule par une seule virgule.
- $mail_destinataire = str_replace (",,", ",", $mail_destinataire);
-
- // Vיrification des doublons
-
- // on transforme la chaine $mail_prof en un tableau
- $verif_doublon_mail_destinataire = explode(',', $mail_destinataire);
- // Cette fonction va nous retourner un tableau complטtement dיdoublonnי !! Magique !
- $verif_doublon_mail_destinataire = array_unique($verif_doublon_mail_destinataire);
- // On reconstruit notre string א partir du tableau dיdoublonnי
- $mail_destinataire = implode(",", $verif_doublon_mail_destinataire);
-
- $headers ='From: '.$mail_root."\n"; //c'est toujours le compte root qui envoie le mail
- $headers .='Reply-To: '.$mail_root."\n";
- $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
- $headers .='Content-Transfer-Encoding: 8bit';
-
- if (mail($mail_destinataire, $sujet_mail, $message, $headers))
- echo 'Le(s) mail(s) a (ont) bien יtי envoyי(s) !';
- else
- echo 'Le(s) mail(s) n\'a (ont) pas יtי envoyי(s) !';
-
- }
-
- echo "Le dossier $dossierid a יtי modifiי.";
-
- }
-
-
- /**************** SUPPRESSION ********************/
- if ( $action == 'suppr' ) {
-
- $id = $_GET['id'];
-
- // Suppression des pages du dossier
- $req_suppr_pages = "DELETE FROM dossiers_textes WHERE dossier_id=$id";
- $con_gespac->Execute ( $req_suppr_pages );
- $log->Insert ( $req_suppr_pages );
-
- // Suppression du dossier
- $req_suppr_dossier = "DELETE FROM dossiers WHERE dossier_id=$id";
- $con_gespac->Execute ( $req_suppr_dossier );
- $log->Insert ( $req_suppr_dossier );
-
- //Insertion d'un log
- echo $log_texte = "Le dossier $id a יtי supprimי";
- $req_log_suppr_dossier = "INSERT INTO logs ( log_type, log_texte ) VALUES ( 'Suppression dossier', '$log_texte' );";
- $con_gespac->Execute ( $req_log_suppr_dossier );
-
- }
- ?>