//voir session.php //Paramétrage de la page $lang = 'fr'; $serverName = 1; $db = $_SESSION["globalConfig"]->mysql_database_name; //$goto='tbl_properties.php'; $goto = 'sql.php'; $sql_query = "SELECT * FROM {$nom_table}"; $pos = 0; //Test si la table est vide, message d'erreur $result1 = DatabaseOperation::query($sql_query); $nb1 = mysql_num_rows($result1); if ($nb1) { //Création de la page echo "\n <frameset cols=166,* rows=* frameborder=no>\n <frame src='../lib/frame_gauche.php?module={$module}&menu={$menu}' noresize />\n <frame src='../phpMyAdmin/sql.php" . "?lang={$lang}" . "&server={$serverName}" . "&db={$db}" . "&goto={$goto}" . "&sql_query={$sql_query}" . "&pos={$pos}" . "&application_courante={$application_courante}" . "&consultation={$consultation}" . "&mysql_user={$mysql_user}" . "&bdpass={$bdpass}" . "&mysql_database={$mysql_database}" . "' />\n\n <noframes>\n <body bgcolor=#FFFFFF>\n <p>L'utilisation de phpMyAdmin est plus aisée avec un navigateur <b>supportant les frames</b>.</p>\n </body>\n </noframes>\n </frameset>\n "; } else { //Informer l'utiliasteur $titre = "Aucune données dans la table {$nom_table}"; $message = "\n Intervention du service informatique requise.<br>\n Enregistrez au moins une donnée dans la table {$nom_table} de la base données MySQL {$mysql_database}<br>\n <br>\n Une copie de ce message à été envoyé\n "; afficher_message($titre, $message, $redirection); //Informer la maintenance $sujetmail = "Intranet - {$module}"; $text = "Intervention du service informatique requise.\nEnregistrer au moins une donnée dans la table '{$nom_table}' de la base données MySQL {$mysql_database}."; $destinataire = "*****@*****.**"; $expediteur = "*****@*****.**"; envoismail($sujetmail, $text, $destinataire, $expediteur); } include "../lib/fin_page.inc"; ?>
/* envois du mail d'information à l'utilisateur concerné */ $corpsmail = 'Votre compte ' . $login . ' de l\'intranet Agis a été bloqué à ' . date("H:m:s") . ' le ' . date("d/m/Y") . ' suite à trois tentatives de connexion avec un mot de passe invalide. Contactez un Administrateur pour réactiver votre compte.'; $arrayMailAdmin = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . UserModel::FIELDNAME_MAIL . ' FROM ' . UserModel::TABLENAME . ' WHERE ' . UserModel::FIELDNAME_ID_TYPE . ' =4' . ' AND ' . UserModel::FIELDNAME_ACTIF . ' =\'' . UserModel::USER_ACTIF . '\''); foreach ($arrayMailAdmin as $rowsmail) { $corpsmail .= ' - ' . $rowsmail[UserModel::FIELDNAME_MAIL]; } $adrfrom = '*****@*****.**'; $recupmail = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . UserModel::FIELDNAME_MAIL . ' FROM ' . UserModel::TABLENAME . ' WHERE ' . UserModel::FIELDNAME_LOGIN . '=\'' . $identite . '\''); foreach ($recupmail as $colonnemail) { $adrTo = $colonnemail[UserModel::FIELDNAME_MAIL]; } $sujet = 'connexion intranet Agis'; $typeDeMail = 'CompteBloquer'; /* Constition du corps du mail */ $rep = envoismail($sujet, $corpsmail, $adrTo, $adrfrom, $typeDeMail); $titou = DatabaseOperation::execute('UPDATE ' . UserModel::TABLENAME . ' SET ' . UserModel::FIELDNAME_BLOCAGE . '=\'oui\'' . ' , ' . UserModel::FIELDNAME_DATE_BLOCAGE . '=\'' . date("Y-m-d H:i:s") . '\'' . ' WHERE ' . UserModel::FIELDNAME_LOGIN . '=\'' . $identite . '\''); //Averissement $titre = "Accès aux modules de l'Intranet"; $message = UserInterfaceMessage::FR_LOGIN_PROCESS_ACCOUNT_LOCKED; Lib::showMessage($titre, $message, $redirection); } } else { $_SESSION['tentative'] = "0"; $titre = "Erreur d'identification "; $message = "L'identifiant {$login} n'existe pas dans la base de données.<br><br>"; Lib::showMessage($titre, $message, $redirection); } } else { $_SESSION['identite'] = $login; $_SESSION['tentative'] = $tentative;
function notification_suivi_projet($id_fta, $paramIdChapitre) { /* Cette fonction notifie les processus en fonction de l'état d'avancement du suivi du projet. Cet état d'avancement est géré par la table fta_suivi_projet Elle ne fait que de l'information, et ne modifie pas l'état de la fiche mais uniquement son suivi */ //Récupération des informations de la FTA $_SESSION["id_fta"] = $id_fta; mysql_table_load("fta"); // mysql_table_load("access_arti2"); mysql_table_load("fta_etat"); //Récupération des Processus $req = "SELECT * FROM fta_processus "; $result = DatabaseOperation::query($req); while ($rows_processus = mysql_fetch_array($result)) { //Si l'utilisateur appartient au processus, il n'est pas necessaire d'informer tous son service par mail $req = "SELECT nom_intranet_actions " . "FROM intranet_actions " . "WHERE id_intranet_actions='" . $rows_processus["id_intranet_actions"] . "' "; $result_action = DatabaseOperation::query($req); $nom_intranet_actions = mysql_result($result_action, 0, "nom_intranet_actions"); //echo "fta_".$nom_intranet_actions.": ".$GLOBALS{"fta_".$nom_intranet_actions}."<br>"; if ($GLOBALS["fta_" . $nom_intranet_actions]) { $no_mail = 1; //Désactivation du mail pour ce processus } else { $no_mail = 0; //Activation du mail } //Ce processus est-il un processus en cours ? if (fta_processus_etat($id_fta, $rows_processus["id_fta_processus"]) == 2) { //Activation du mail //$no_mail=0; //Recherche des Notifications des chapitres $req = "SELECT notification_fta_suivi_projet " . "FROM fta_suivi_projet, fta_chapitre, fta_processus " . "WHERE (fta_suivi_projet.id_fta_chapitre=fta_chapitre.id_fta_chapitre " . "AND `fta_processus`.`id_fta_processus` = `fta_chapitre`.`id_fta_processus` ) " . "AND fta_chapitre.id_fta_processus=" . $rows_processus["id_fta_processus"] . " " . "AND fta_suivi_projet.id_fta=" . $id_fta . " "; $result_2 = mysql_query($req); //L'ensemble des chapitres a-t-il été entièrement notifié ? // -1 = le suivi doit etre créé et le processus doit être informé // 0 = ce processus doit être informé // 1 = ce processus a déjà était informé if (mysql_num_rows($result_2)) { $notification = 1; while ($rows_notification = mysql_fetch_array($result_2)) { $notification = $notification * $rows_notification["notification_fta_suivi_projet"]; } } else { $notification = -1; } //Si au moins un des chapitres n'a pas été notifié ou qu'il n' y a pas encore de suivi if ($notification <= 0 and $rows_processus["id_fta_processus"] != 1) { //Initialisation du tableau des destinataires (mail + identifiant) $liste_mail = ""; $liste_user = ""; //Si le mail reste actif, on construit la listes des utilisateurs à informer if (!$no_mail) { //Recherche de la liste des utilisateurs à informer switch ($rows_processus["multisite_fta_processus"]) { case 0: //1. Cas de processus mono-site //----------------------------- //Est-ce que seul le service du chef de projet doit être informé ? if ($rows_processus["information_service_chef_projet_fta_processus"]) { //Rechercher du service du chef de projet $req = "SELECT `salaries`.`id_service` " . "FROM `fta_suivi_projet`, `salaries` " . "WHERE ( `fta_suivi_projet`.`signature_validation_suivi_projet` = `salaries`.`id_user` ) " . "AND ( ( `fta_suivi_projet`.`id_fta` = " . $id_fta . " AND `fta_suivi_projet`.`id_fta_chapitre` = 1 ) ) "; $result = DatabaseOperation::query($req); $id_service = mysql_result($result, 0, "id_service"); $where = "AND salaries.id_service=" . $id_service . " "; //Désactivation de l'envoi du mail dans ce cas de figure. $no_mail = 1; } $req = "SELECT DISTINCT `salaries`.`id_user`, `salaries`.`mail`, `salaries`.`login`,`salaries`.`nom`,`salaries`.`prenom`, `fta_processus`.`id_fta_processus` " . "FROM `salaries`, `intranet_droits_acces`, `intranet_modules`, `intranet_actions`, `fta_processus` " . "WHERE ( `salaries`.`id_user` = `intranet_droits_acces`.`id_user` " . "AND `salaries`.`actif` = 'oui' " . "AND `intranet_actions`.`id_intranet_actions` = `intranet_droits_acces`.`id_intranet_actions` " . "AND `intranet_actions`.`id_intranet_actions` = `fta_processus`.`id_intranet_actions` ) " . "AND ( ( `intranet_droits_acces`.`niveau_intranet_droits_acces` <> 0 " . "AND `fta_processus`.`id_fta_processus` = " . $rows_processus["id_fta_processus"] . " " . "AND fta_processus.multisite_fta_processus = 0 " . "AND `intranet_modules`.`nom_intranet_modules` = 'fta' ) )" . "AND salaries.id_user<>'" . $_SESSION["id_user"] . "' " . $where; $result_mail = DatabaseOperation::query($req); if (mysql_num_rows($result_mail)) { while ($rows_mail = mysql_fetch_array($result_mail)) { //Remplissage du tableau des destinataires (mail + identifiant) $liste_mail[] = $rows_mail["mail"]; $liste_user[] = "- " . $rows_mail["prenom"] . " " . $rows_mail["nom"]; } } break; case 1: //2. Cas de processus multi-site //------------------------------ //Existe-t-il un processus d'un autre site qui gère ce site d'assemblage ? $req = "SELECT * FROM fta_processus_multisite " . "WHERE id_site_assemblage_fta_processus_multisite = " . $_SESSION["Site_de_production"] . " " . "AND id_processus_fta_processus_multisite = " . $rows_processus["id_fta_processus"] . " "; $result_autre_site = DatabaseOperation::query($req); if (mysql_num_rows($result_autre_site)) { $site_gestionnaire = mysql_result($result_autre_site, 0, "id_site_processus_fta_processus_multisite"); } else { $site_gestionnaire = $_SESSION["Site_de_production"]; } $req = "SELECT DISTINCT `salaries`.`id_user`, `salaries`.`mail`, `salaries`.`login`,`salaries`.`nom`,`salaries`.`prenom`, `fta_processus`.`id_fta_processus` " . "FROM `salaries`, `intranet_droits_acces`, `intranet_modules`, `intranet_actions`, `fta_processus`, geo " . "WHERE ( `salaries`.`id_user` = `intranet_droits_acces`.`id_user` " . "AND `salaries`.`actif` = 'oui' " . "AND `intranet_actions`.`id_intranet_actions` = `intranet_droits_acces`.`id_intranet_actions` " . "AND `intranet_actions`.`id_intranet_actions` = `fta_processus`.`id_intranet_actions` " . "AND `geo`.`id_geo` = `salaries`.`lieu_geo`) " . "AND ( ( `intranet_droits_acces`.`niveau_intranet_droits_acces` <> 0 " . "AND `fta_processus`.`id_fta_processus` = " . $rows_processus["id_fta_processus"] . " " . "AND fta_processus.multisite_fta_processus = 1 " . "AND `geo`.`id_site` ='" . $site_gestionnaire . "' " . "AND `intranet_modules`.`nom_intranet_modules` = 'fta' ) )" . "AND salaries.id_user<>'" . $_SESSION["id_user"] . "' "; //echo $rows_processus["multisite_fta_processus"]."<br>".$req."<br><br>"; $result_mail = DatabaseOperation::query($req); while ($rows_mail = mysql_fetch_array($result_mail)) { //Remplissage du tableau des destinataires (mail + identifiant) $liste_mail[] = $rows_mail["mail"]; $liste_user[] = "- " . $rows_mail["prenom"] . " " . $rows_mail["nom"]; } break; } //Fin de la recherche des utilisateurs à informer } //Fin du controle de désactivation de mail //Envoi du mail de notification $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($id_fta, $paramIdChapitre); $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet); $modelFta = new FtaModel($id_fta); if ($liste_mail and !$no_mail) { foreach ($liste_mail as $adresse_email) { $sujetmail = "FTA/" . $modelFta->getDataField(FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE)->getFieldValue(); $text = "Démarrage du processus: " . $rows_processus["nom_fta_processus"] . "\n" . "Etat de la FTA: " . $modelFta->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_NOM_FTA_ETAT)->getFieldValue() . "\n\n" . "Vous pouvez consulter l'Etat d'avancenement du dossier directement sur le site http://intranet.agis.fr .\n" . "\n" . "Bonne journée.\n" . "Intranet - Fiche Technique Article."; $destinataire = $adresse_email; $expediteur = $_SESSION["prenom"] . " " . $_SESSION["nom_famille_ses"] . " <" . $_SESSION["mail_user"] . ">"; //if ($_SESSION["notification_fta_suivi_projet"]) { if ($modelFtaSuiviProjet->getDataField(FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET)->getFieldValue()) { envoismail($sujetmail, $text, $destinataire, $expediteur); } } } //Fin des envois de mail //Enregistrement de la réalisation de la notification du processus switch ($notification) { case 0: //Mise à jour du suivi $req = "UPDATE fta_chapitre, fta_suivi_projet " . "SET fta_suivi_projet.notification_fta_suivi_projet=1 " . "WHERE fta_suivi_projet.id_fta_chapitre=fta_chapitre.id_fta_chapitre " . "AND fta_chapitre.id_fta_processus=" . $rows_processus["id_fta_processus"] . " " . "AND fta_suivi_projet.id_fta=" . $id_fta . " "; DatabaseOperation::query($req); break; case -1: //Création du suivi //Récupération des chapitres du processus $req = "SELECT id_fta_chapitre FROM fta_chapitre " . "WHERE id_fta_processus = '" . $rows_processus["id_fta_processus"] . "' "; $result_chapitre = DatabaseOperation::query($req); while ($rows_chapitre = mysql_fetch_array($result_chapitre)) { $req = "INSERT fta_suivi_projet " . "SET notification_fta_suivi_projet=1 " . ", id_fta='" . $id_fta . "' " . ", id_fta_chapitre='" . $rows_chapitre["id_fta_chapitre"] . "' "; DatabaseOperation::query($req); } break; } //echo $req; //echo "<br>"; } //Fin de la vérification par chapitre et du traitement de la notification } //Fin de la vérification des processus validés } //Fin du parcours des processsu //Message d'Information if ($liste_user) { $liste_user_html = implode("<br>", $liste_user); $titre = "Information communiquée par Mail"; $message = "Les personnes suivantes viennent d'être informées par mail de la validation de tous vos chapitres." . "<br><br>" . $liste_user_html; afficher_message($titre, $message, $redirection); } //Retour de la fonction return $liste_user; }
$FILE = basename($PATH["basename"], $EXTENSION); $ENABLE_COPY = 1; $ENABLE_ARCHIVE = $rows1["copie_sauvegarde"]; //Non implémenté sur Samba //Pour les fichiers Access, il est necessaire de vérifier si les bases ne sont pas ouvertes if (strtoupper($EXTENSION) == "MDB") { //Test de l'existance d'un vérrou $FILE_LOCK = ${$MAP_DESTINATION} . $DIR . "/" . $FILE . "ldb"; if (file_exists($FILE_LOCK)) { $ENABLE_COPY = 0; $mail_to = $MAIL_TO; $mail_from = "<*****@*****.**>"; $mail_subject = "Intranet Datasync"; $mail_message = "Impossible de mettre à jour le fichier:{$RC}" . ${$MAP_DESTINATION} . $COMPLETE_FILE . "{$RC}" . "Un verrou de type '.ldb' était présent lors de la tentative de copie à la date suivante:{$RC}" . date("F j, Y, g:i a") . "."; //Envoi du mail envoismail($mail_subject, $mail_message, $mail_to, $mail_from); //Enregistrement dans le Log $CMD .= "echo [ERREUR]: Copie Annulée car le Fichier " . ${$MAP_DESTINATION} . $COMPLETE_FILE . " est Ouvert\n"; } } if ($ENABLE_COPY) { //Suppression du fichier si ce n'est pas un répertoire if (!$EXTENSION) { $TMP = ".tmp"; $REP_CONTENT = "/*"; } else { $TMP = "tmp"; $REP_CONTENT = ""; } //$CMD.=$RM." ".$$MAP_DESTINATION.$COMPLETE_FILE.$REP_CONTENT."\n"; //$CMD.= $CP." ".$$MAP_ORIGINE.$COMPLETE_FILE." ".$$MAP_DESTINATION.$DIR.$DIR_BACKUP."/".$FILE.$TMP.$RC;
public static function getListeUsersAndNotificationSuiviProjet($paramIdFta, $paramIdChapitre) { $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre); $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet, $paramIdChapitre); $modelFta = new FtaModel($paramIdFta, $paramIdChapitre); $id_fta_workflow = $modelFta->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue(); $ftaWorkflowModel = new FtaWorkflowModel($id_fta_workflow); $id_parent_intranet_actions = $ftaWorkflowModel->getDataField(FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS)->getFieldValue(); //Récupération des Processus $arrayProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ', ' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . ', ' . FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS . ', ' . FtaProcessusModel::FIELDNAME_INFO_CHEF_PROJET . ', ' . FtaProcessusModel::FIELDNAME_NOM . ' FROM ' . FtaProcessusModel::TABLENAME . ',' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaWorkflowModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $id_fta_workflow); foreach ($arrayProcessus as $rowsProcessus) { //Si l'utilisateur appartient au processus, il n'est pas necessaire d'informer tous son service par mail $arrayIntranetActionProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . IntranetActionsModel::FIELDNAME_NOM_INTRANET_ACTIONS . ' FROM ' . IntranetActionsModel::TABLENAME . ' WHERE ' . IntranetActionsModel::KEYNAME . '=\'' . $rowsProcessus[FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS] . '\' '); if ($arrayIntranetActionProcessus) { foreach ($arrayIntranetActionProcessus as $rowsIntranetActionProcessus) { $nom_intranet_actions = $rowsIntranetActionProcessus[IntranetActionsModel::FIELDNAME_NOM_INTRANET_ACTIONS]; } } //echo 'fta_'.$nom_intranet_actions.': '.$GLOBALS{'fta_'.$nom_intranet_actions}.'<br>'; if (Acl::getValueAccesRights('fta_' . $nom_intranet_actions)) { $no_mail = 1; //Désactivation du mail pour ce processus } else { $no_mail = 0; //Activation du mail } //Ce processus est-il un processus en cours ? if (FtaProcessusModel::getValideProcessusEncours($paramIdFta, $rowsProcessus[FtaProcessusModel::KEYNAME], $id_fta_workflow) != 0 and FtaProcessusModel::getValideProcessusEncours($paramIdFta, $rowsProcessus[FtaProcessusModel::KEYNAME], $id_fta_workflow) != 1) { //Activation du mail //$no_mail=0; //Recherche des Notifications des chapitres $arraySuiviProjetChapitreProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . ' FROM ' . FtaSuiviProjetModel::TABLENAME . ', ' . FtaChapitreModel::TABLENAME . ', ' . FtaProcessusModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE (' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaChapitreModel::TABLENAME . '.' . FtaChapitreModel::KEYNAME . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' = ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' AND ' . FtaChapitreModel::TABLENAME . '.' . FtaChapitreModel::KEYNAME . ' = ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ') AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . $rowsProcessus[FtaProcessusModel::KEYNAME] . ' ' . 'AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=' . $paramIdFta . ' '); //L'ensemble des chapitres a-t-il été entièrement notifié ? // -1 = le suivi doit etre créé et le processus doit être informé // 0 = ce processus doit être informé // 1 = ce processus a déjà était informé if ($arraySuiviProjetChapitreProcessus) { foreach ($arraySuiviProjetChapitreProcessus as $rowsSuiviProjetChapitreProcessus) { $notification = 1 * $rowsSuiviProjetChapitreProcessus[FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET]; } } else { $notification = -1; } //Si au moins un des chapitres n'a pas été notifié ou qu'il n' y a pas encore de suivi if ($notification <= 0 and $rowsProcessus[FtaProcessusModel::KEYNAME] != 1) { //Initialisation du tableau des destinataires (mail + identifiant) $liste_mail = ''; $liste_user = ''; //Si le mail reste actif, on construit la listes des utilisateurs à informer if (!$no_mail) { //Recherche de la liste des utilisateurs à informer switch ($rowsProcessus[FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS]) { case 0: //1. Cas de processus mono-site //----------------------------- //Est-ce que seul le service du chef de projet doit être informé ? if ($rowsProcessus[FtaProcessusModel::FIELDNAME_INFO_CHEF_PROJET]) { //Rechercher du service du chef de projet /** * Pour cette requête le chapitre clé est test identité le 1 */ $arraySuiviProjetSalaries = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . UserModel::FIELDNAME_ID_SERVICE . ' FROM ' . FtaSuiviProjetModel::TABLENAME . ', ' . UserModel::TABLENAME . ' WHERE (' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '=' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_ID_SERVICE . ') AND ( (' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '= ' . $paramIdFta . 'AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '= 1 ) ) '); foreach ($arraySuiviProjetSalaries as $rowsSuiviProjetSalaries) { $where = ' AND ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_ID_SERVICE . '=' . $rowsSuiviProjetSalaries[UserModel::FIELDNAME_ID_SERVICE]; } //Désactivation de l'envoi du mail dans ce cas de figure. $no_mail = 1; } //tableau des utilisateurs selon leur accès aux processus $arraySalarieProcessusMono = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_MAIL . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_LOGIN . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_NOM . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_PRENOM . ', ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' FROM ' . UserModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ', ' . IntranetModulesModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ', ' . FtaProcessusModel::TABLENAME . ', ' . FtaActionRoleModel::TABLENAME . ' WHERE ( ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . ' AND ' . UserModel::FIELDNAME_ACTIF . '= \'oui\' ' . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . ') ' . ' AND ( ( ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . ' <> ' . IntranetNiveauAccesModel::NIVEAU_GENERIC_FALSE . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' = ' . $rowsProcessus[FtaProcessusModel::KEYNAME] . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS . ' = 0 ' . ' AND ' . IntranetModulesModel::TABLENAME . '.' . IntranetModulesModel::FIELDNAME_NOM_INTRANET_MODULES . ' = \'fta\' ) )' . ' AND ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . '<>\'' . $modelFta->getModelCreateur()->getDataField(UserModel::KEYNAME)->getFieldValue() . '\'' . $where); if ($arraySalarieProcessusMono) { foreach ($arraySalarieProcessusMono as $rowsSalarieProcessusMono) { //Remplissage du tableau des destinataires (mail + identifiant) $liste_mail[] = $rowsSalarieProcessusMono[UserModel::FIELDNAME_MAIL]; $liste_user[] = '- ' . $rowsSalarieProcessusMono[UserModel::FIELDNAME_PRENOM] . ' ' . $rowsSalarieProcessusMono[UserModel::FIELDNAME_NOM]; } } break; case 1: //2. Cas de processus multi-site //------------------------------ //Existe-t-il un processus d'un autre site qui gère ce site d'assemblage ? $arrayMultisiteProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaProcessusMultisiteModel::FIELDNAME_ID_SITE_PROCESSUS_FTA_PROCESSUS_MULTISITE . ' FROM ' . FtaProcessusMultisiteModel::TABLENAME . ' WHERE ' . FtaProcessusMultisiteModel::FIELDNAME_ID_SITE_ASSEMBLAGE_FTA_PROCESSUS_MULTISITE . '=' . $modelFta->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue() . ' AND ' . FtaProcessusMultisiteModel::FIELDNAME_ID_PROCESSUS_FTA_PROCESSUS_MULTISITE . '=' . $rowsProcessus[FtaProcessusModel::KEYNAME]); if ($arrayMultisiteProcessus) { foreach ($arrayMultisiteProcessus as $rowsMultisiteProcessus) { $site_gestionnaire = $rowsMultisiteProcessus[FtaProcessusMultisiteModel::FIELDNAME_ID_SITE_PROCESSUS_FTA_PROCESSUS_MULTISITE]; } } else { $site_gestionnaire = $modelFta->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue(); } $arraySalarieProcessusMulti = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_MAIL . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_LOGIN . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_NOM . ', ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_PRENOM . ', ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' FROM ' . UserModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ', ' . IntranetModulesModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ', ' . FtaProcessusModel::TABLENAME . ', ' . GeoModel::TABLENAME . ' WHERE ( ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . ' AND ' . UserModel::FIELDNAME_ACTIF . '= \'oui\' ' . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetActionsModel::getIdIntranetActionsRoleFromIdParentActionNavigation($id_parent_intranet_actions) . ' AND ' . GeoModel::TABLENAME . '.' . GeoModel::KEYNAME . '=' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_LIEU_GEO . ') ' . ' AND ( ( ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . ' <> ' . IntranetNiveauAccesModel::NIVEAU_GENERIC_FALSE . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' = ' . $rowsProcessus[FtaProcessusModel::KEYNAME] . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS . ' = 1 ' . ' AND ' . GeoModel::TABLENAME . '.' . GeoModel::KEYNAME . '= \'' . $site_gestionnaire . '\' ' . ' AND ' . IntranetModulesModel::TABLENAME . '.' . IntranetModulesModel::FIELDNAME_NOM_INTRANET_MODULES . ' = \'fta\' ) )' . ' AND ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . '<>\'' . $modelFta->getModelCreateur()->getDataField(UserModel::KEYNAME)->getFieldValue() . '\''); //echo $rows_processus['multisite_fta_processus'].'<br>'.$req.'<br><br>'; if ($arraySalarieProcessusMulti) { foreach ($arraySalarieProcessusMulti as $rowsSalarieProcessusMulti) { //Remplissage du tableau des destinataires (mail + identifiant) $liste_mail[] = $rowsSalarieProcessusMulti[UserModel::FIELDNAME_MAIL]; $liste_user[] = '- ' . $rowsSalarieProcessusMulti[UserModel::FIELDNAME_PRENOM] . ' ' . $rowsSalarieProcessusMulti[UserModel::FIELDNAME_NOM]; } } break; } //Fin de la recherche des utilisateurs à informer } //Fin du controle de désactivation de mail //Envoi du mail de notification if ($liste_mail and !$no_mail) { foreach ($liste_mail as $adresse_email) { $sujetmail = 'FTA/' . $modelFta->getDataField(FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE)->getFieldValue(); $text = 'Démarrage du processus: ' . $rowsProcessus[FtaProcessusModel::FIELDNAME_NOM] . '\\n' . 'Etat de la FTA: ' . $modelFta->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_NOM_FTA_ETAT)->getFieldValue() . '\\n\\n' . 'Vous pouvez consulter l\'Etat d\'avancenement du dossier directement sur le site http://intranet.agis.fr .\\n' . '\\n' . 'Bonne journée.\\n' . 'Intranet - Fiche Technique Article.'; $destinataire = $adresse_email; //$expediteur = $_SESSION['prenom'] . ' ' . $_SESSION['nom_famille_ses'] . ' <' . $_SESSION['mail_user'] . '>'; $expediteur = $modelFta->getModelCreateur()->getDataField(UserModel::FIELDNAME_PRENOM)->getFieldValue() . ' ' . $modelFta->getModelCreateur()->getDataField(UserModel::FIELDNAME_NOM)->getFieldValue() . ' <' . $modelFta->getModelCreateur()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue() . '>'; $typeMail = 'mail-transactions'; //if ($_SESSION['notification_fta_suivi_projet']) { if ($modelFtaSuiviProjet->getDataField(FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET)->getFieldValue()) { envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail); } } } //Fin des envois de mail //Enregistrement de la réalisation de la notification du processus switch ($notification) { case 0: //Mise à jour du suivi $update = 'UPDATE ' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaSuiviProjetModel::TABLENAME . ' SET ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . '=1' . ' WHERE ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . $rowsProcessus[FtaProcessusModel::KEYNAME] . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=' . $paramIdFta; DatabaseOperation::execute($update); break; case -1: //Création du suivi //Récupération des chapitres du processus $arrayChapitre = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '= \'' . $rowsProcessus[FtaProcessusModel::KEYNAME] . '\' '); foreach ($arrayChapitre as $rowsChapitre) { $insert = 'INSERT ' . FtaSuiviProjetModel::TABLENAME . ' SET ' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . '=1' . ', ' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=\'' . $paramIdFta . '\'' . ', ' . FtaChapitreModel::KEYNAME . '=' . $rowsChapitre[FtaChapitreModel::KEYNAME]; DatabaseOperation::execute($insert); } break; } } //Fin de la vérification par chapitre et du traitement de la notification } //Fin de la vérification des processus validés } //Fin du parcours des processsu //Retour de la fonction return $liste_user; }
// /* Pour chaque service on insere dans la table*/ // $service=mysql_result($result, $i, id_service); // $req2='insert into modes (id_user, id_service, serv_conf) // values ('$sal_user', '$service', '$nivo_glo')'; // $result2=DatabaseOperation::query($req2); // $i++; // } // } } /* * Quand un salarie est cree, envoi d'un mail pour lui donner son profil */ $sujet = 'Inscription Intranet Agis'; $corpsmail = UserInterfaceMessage::FR_MAIIL_INSCRIPTION; $typeMail = 'Inscription'; envoismail($sujet, $corpsmail, $paramUserMail, $mail, $typeMail); ?> <html> <head> <title>Gestion des salariés</title> <meta http-equiv='Content-Type' content='text / html; charset = iso-8859-1'> <link rel='stylesheet' href='../lib/css/intra01.css' type='text/css'> <script language='JavaScript'> <!-- function MM_openBrWindow(theURL, winName, features) { //v2.0 window.open(theURL, winName, features); } //--> </script> <SCRIPT LANGUAGE='JavaScript'>
function envoi_mail($corpsmail, $adrFrom, $adrTo, $sujet) { // Constition du corps du mail // $entetemail = "X-Mailer: $adrfrom\r\nMIME-Version: 1.0\r\nContent-Type: text/html; charset=ISO-8859-1\r\nContent-Transfer-Encoding: 8bit\n"; // $entetemail .= "From: $adrfrom \n"; // $entetemail .= "Reply-To: $adrfrom\n"; // $rep= @mail($adrTo, $sujet, $corpsmail, $entetemail); $rep = envoismail($sujet, $corpsmail, $adrTo, $adrFrom); }
/** * Correction d'une FTA * Pour une FTA données, correction d'un chapitre et dévalidation des processus suivants * @param type $paramIdFta * @param type $paramIdChapitre * @param type $option * @return int */ public static function buildCorrectionChapitre($paramIdFta, $paramIdChapitre, $option) { $option['no_message_ecran']; //0=affichage à l'ecran, 1=rien $option['correction_fta_suivi_projet']; //Commentaire justifiant la correction du chapitre $option['mail_gestionnaire']; //Informe le gestionnaire de la Fta de la mise en correction de sa Fta $HtmlResult = new HtmlResult2(); $globalConfig = new GlobalConfig(); UserModel::checkUserSessionExpired($globalConfig); //Récupération des informations préalables //Nom de l'assistante de projet responsable: $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue(); $mailExpediteur = $globalConfig->getAuthenticatedUser()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue(); $nomPrenom = $globalConfig->getAuthenticatedUser()->getPrenomNom(); $idFtaWorkflowStructure = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre); $ftaWorkflowStructureModel = new FtaWorkflowStructureModel($idFtaWorkflowStructure, $paramIdChapitre); $idFtaProcessus = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue(); $idFtaWorkflow = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW)->getFieldValue(); $arrayFtaSuiviCorrection = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . ',' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . ' FROM ' . FtaSuiviProjetModel::TABLENAME . ' WHERE ' . FtaModel::KEYNAME . '=' . $paramIdFta . ' AND ' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . $paramIdChapitre . ' '); if ($arrayFtaSuiviCorrection) { foreach ($arrayFtaSuiviCorrection as $rowsFtaSuiviCorrection) { $current_correction_fta_suivi_projet = $rowsFtaSuiviCorrection[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]; $notificationFtaSuiviProjet = $rowsFtaSuiviCorrection[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]; } } //Intégration du commentaire de la correction if ($current_correction_fta_suivi_projet and $option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]) { $fullComment = $option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET] . '\\n\\n' . $current_correction_fta_suivi_projet; $newCorrectionFtaSuiviProjet = FtaController::getComment("Correction d'une Fta", $nomPrenom, $fullComment); } // $newCorrectionFtaSuiviProjet = mysql_real_escape_string($newCorrectionFtaSuiviProjet); $newCorrectionFtaSuiviProjet = str_replace("<br/>", "\n", $newCorrectionFtaSuiviProjet); //Dévalidation du chapitre en cours $reqDevelidationChapitre = " UPDATE " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "=0, " . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . "=\"" . $newCorrectionFtaSuiviProjet . "\" " . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFta . " AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "=" . $paramIdChapitre; DatabaseOperation::execute($reqDevelidationChapitre); /* * Mise à jour de la validation de l'échéance du processus * fonction non utilisé */ // FtaProcessusDelaiModel::BuildFtaProcessusValidationDelai($paramIdFta, $idFtaProcessus, $idFtaWorkflow); //Dévalidation des processus suivants $return = FtaChapitreModel::buildDevalidationChapitre($paramIdFta, $idFtaProcessus, $HtmlResult); /** * Actualisation du pourcentage de validation de la Fta */ $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre); $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet); $modelFtaSuiviProjet->unsetSigned(); $modelFtaSuiviProjet->saveToDatabase(); //print_r($return['mail']); //Tableau contenant les adresses emails des personnes concernées par la dévalidation if (count($return) > 1) { $return['processus'] = array_unique($return['processus']); //Tableau contenant les identifiants des processus dévalidés unique } if (is_string($return['processus'])) { $return['processus'] = array('processus' => $return['processus']); } //Informations if ($return['processus']) { foreach ($return['processus'] as $id_Fta_Processus) { $idFtaProcessus = $id_Fta_Processus; $arrayFtaProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusModel::FIELDNAME_NOM . ' FROM ' . FtaProcessusModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . $idFtaProcessus . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $idFtaWorkflow); if ($arrayFtaProcessus) { foreach ($arrayFtaProcessus as $rowsFtaProcessus) { $message .= $rowsFtaProcessus[FtaProcessusModel::FIELDNAME_NOM] . '<br>'; } } } if (!$message) { $message = 'Aucun processus n\'a été dévalidé.'; } $titre = 'Liste des Processus dévalidés'; if (!$option['no_message_ecran']) { Lib::showMessage($titre, $message, $redirection); } //Envoi des mails $show_din = FtaModel::showDin($paramIdFta); $sujetElements = $show_din; if ($return['mail']) { $return['mail'] = array_unique($return['mail']); foreach ($return['mail'] as $mail) { $sujetmail = 'FTA/Correction: ' . $sujetElements; $destinataire = $mail; $expediteur = $nomPrenom . ' <' . $mailExpediteur . '>'; $text = 'Vos chapitres viennent d\'être dévalidés suite à une correction apportée par ' . $nomPrenom . '.\\n\\n' . 'OBJET DE LA CORRECTION:\\n' . '\\t' . stripslashes($option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]); $typeMail = 'Correction'; if ($notificationFtaSuiviProjet) { envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail); } } } /** * Génération d'un mail informant le gestionnaire de la Fta */ if ($option['mail_gestionnaire']) { $ftaModel = new FtaModel($paramIdFta); $idGestionnaire = $ftaModel->getModelCreateur()->getKeyValue(); //Tableau des id intranet actions Fta $arrayAction = IntranetDroitsAccesModel::getArrayIdIntranetActionWithAccesRightsToFtaByUser($idGestionnaire); $checkDiffusion = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_DIFFUSION, $arrayAction); if ($idGestionnaire != $idUser and $checkDiffusion) { $mailGestionnaire = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue(); $sujetmail = 'FTA/Mise en Correction: ' . $sujetElements . ' par ' . $nomPrenom; $destinataire = $mailGestionnaire; $expediteur = $nomPrenom . ' <' . $mailExpediteur . '>'; $text = 'Une nouvelle version vient d\'être crée, la correction apportée par ' . $nomPrenom . ' est au sujet de :\\n' . '\\t' . stripslashes($option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]); $typeMail = 'CorrectionValidation2Modification'; envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail); } } } //Fin du traitement des processus suivants return 1; }
/** * Envoi un mail d'information global (pour une liste de FTA) * @param array $paramSelectionFta * @param array $paramListeDiffusion * @param string $paramSubject * @param string $paramLogTransition */ public static function buildEnvoiMailGlobal($paramSelectionFta, $paramListeDiffusion, $paramSubject, $paramLogTransition) { /** * Utilisateur connecté */ $globalConfig = new GlobalConfig(); $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue(); $url = $globalConfig->getConf()->getUrlFullRoot(); $userModel = new UserModel($idUser); $nom = $userModel->getDataField(UserModel::FIELDNAME_NOM)->getFieldValue(); $prenom = $userModel->getDataField(UserModel::FIELDNAME_PRENOM)->getFieldValue(); $mailUser = $userModel->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue(); $text = "Bonjour,\n" . "\tNous vous informons de la validation des Fiches Techniques Articles suivantes:\n"; $req = " SELECT " . GeoModel::FIELDNAME_LIBELLE_SITE_AGIS . "," . FtaModel::KEYNAME . "," . FtaModel::FIELDNAME_CODE_ARTICLE_LDC . "," . FtaModel::FIELDNAME_LIBELLE . " FROM " . FtaModel::TABLENAME . ", " . GeoModel::TABLENAME . " WHERE ( 0 " . FtaModel::addIdFta($paramSelectionFta) . " ) " . " AND " . GeoModel::TABLENAME . "." . GeoModel::KEYNAME . "=" . FtaModel::TABLENAME . "." . FtaModel::FIELDNAME_SITE_PRODUCTION . " ORDER BY " . GeoModel::FIELDNAME_LIBELLE_SITE_AGIS; $paramLogTransition .= "\n\n" . $req; $arrayFta = DatabaseOperation::convertSqlStatementWithoutKeyToArray($req); $typeMail = "Validation"; //Parcours des FTA classé par site foreach ($arrayFta as $rowsFta) { //Classement par site d'assemblage if ($last_site != $rowsFta[GeoModel::FIELDNAME_LIBELLE_SITE_AGIS]) { $text .= "\n\nSite d'assemblage: " . $rowsFta[GeoModel::FIELDNAME_LIBELLE_SITE_AGIS] . "\n"; } //Insertion de la ligne d'article $text .= "<a href='" . $url . "/fta/modification_fiche.php?" . FtaModel::KEYNAME . "=" . $rowsFta[FtaModel::KEYNAME] . "&synthese_action=all&comeback=0&" . FtaEtatModel::KEYNAME . "=3&" . FtaEtatModel::FIELDNAME_ABREVIATION . "=V&" . FtaRoleModel::KEYNAME . "=0' >" . $rowsFta[FtaModel::FIELDNAME_CODE_ARTICLE_LDC] . " " . $rowsFta[FtaModel::FIELDNAME_LIBELLE] . " </a>" . "\n"; //Enregistrement du site $last_site = $rowsFta[GeoModel::FIELDNAME_LIBELLE_SITE_AGIS]; } $sujetmail = "FTA/Validation: " . $paramSubject; $text .= "\n" . "Ces Articles sont maintenant disponibles et à jour dans l'ensemble de notre système informatique\n" . "\n" . "Bonne journée.\n" . "Intranet - FTA\n" . "\n" . "\n" . "NB : une ligne d'article est composée du code Article Arcadia et la DIN"; /** * Envoi du mail d'information */ foreach ($paramListeDiffusion as $mail_validation) { if (!is_string($mail_validation)) { $destinataire = $mail_validation[UserModel::FIELDNAME_MAIL]; $liste_destinataire .= $mail_validation["prenom_nom"] . ": " . $destinataire . "\n"; $expediteur = $prenom . " " . $nom . " <" . $mailUser . ">"; envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail); } } /** * Envoi du mail de contrôle */ $sujetmail = "FTA/Information \"" . $paramSubject; $corp = "DESTINATAIRES:\n" . $liste_destinataire . "\n" . "\n" . "Message envoyé:\n" . "\n" . $text . "\n\n" . $paramLogTransition; $expediteur = $prenom . " " . $nom . " <" . $mailUser . ">"; envoismail($sujetmail, $corp, $mailUser, $expediteur, $typeMail); }