function getFtaSuiviProjetModel()
 {
     $idFtaChapitre = $this->getFtaChapitreModel()->getKeyValue();
     $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($this->getModel()->getKeyValue(), $idFtaChapitre);
     $ftaSuiviProjetModel = new FtaSuiviProjetModel($idFtaSuiviProjet);
     $ftaSuiviProjetModel->setIsEditable($this->getIsEditable());
     return $ftaSuiviProjetModel;
 }
示例#2
0
 protected static function buildIsEditable()
 {
     //Recherche du droit d'accès correspondant
     if (self::$id_fta_etat == "1" and self::$is_owner == true and (self::$ftaSuiviProjetModel->getDataField(FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET)->getFieldValue() == 0 or self::$ftaSuiviProjetModel->getDataField(FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET)->getFieldValue() == null)) {
         $is_editable = true;
         //            $data_readonly = '';
         //            $data_disabled = '';
         //            $edit_allow = 1;    //Permet de modifier
     } else {
         $is_editable = false;
         //            $data_readonly = 'readonly';
         //            $data_disabled = 'disabled';
     }
     return $is_editable;
 }
 case 1:
     //Création d'une FTA Vierge
     //        $idFta = null;
     $arrayIdEtat = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaEtatModel::KEYNAME . ' FROM ' . FtaEtatModel::TABLENAME . ' WHERE ' . FtaEtatModel::FIELDNAME_ABREVIATION . '=\'' . $abreviationFtaEtat . '\' ');
     foreach ($arrayIdEtat as $rowsIdEtat) {
         $idFtaEtat = $rowsIdEtat[FtaEtatModel::KEYNAME];
     }
     /*
      * Initialisation de l'enregistrement de la Table FTA
      */
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $idFta = FtaModel::createFta($idUser, $idFtaEtat, $idFtaWorkflow, $designationCommercialeFta, date('Y-m-d'), $siteDeProduction);
     DatabaseOperation::execute('UPDATE ' . FtaModel::TABLENAME . ' SET ' . FtaModel::FIELDNAME_DOSSIER_FTA . '=' . $idFta . ' WHERE ' . FtaModel::KEYNAME . '=' . $idFta);
     FtaSuiviProjetModel::initFtaSuiviProjet($idFta);
     //Cas d'une fiche Présentation
     /**
      * Ce cas n'est plus utiliser puisque l'espasce de travail Présentation,
      * regroupe tous les chapitres nécéssaire
      */
     if ($abreviationFtaEtat == 'P') {
         //Condition where
         $where = '';
         //Récupération des chapitres concernés par ce cycle de vie
         $arrayChapitreCycle = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . ', ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ', ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . ' FROM ' . FtaProcessusCycleModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . ' = \'' . $abreviationFtaEtat . '\' AND ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . ' IS NOT NULL');
         foreach ($arrayChapitreCycle as $rowsChapitreCycle) {
             $where .= ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' <> ' . $rowsChapitreCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT];
         }
         //Récupération des chapitres à vérrouiller
         $arrayChapitreVerrou = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' FROM ' . FtaProcessusModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ( ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' = ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' ) ' . ' AND ( ( ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' <>1 ' . $where . ' ) )');
示例#4
0
 /**
  * Liste des Rôles auxquelles l'utilisateur à accès pour un workflow donnée
  * @param int $paramIdUser
  * @param int $paramWorkflow
  * @param FtaModel $ftaModel
  * @param string $paramSytheseAction
  * @param int $paramIdftaChapitreEncours
  * @return string
  */
 public static function getRolesNavigationBar($paramIdUser, $paramWorkflow, FtaModel $ftaModel, $paramSytheseAction, $paramIdftaChapitreEncours, $paramIdFtaRoleEncours)
 {
     //Variable
     $listeRole = array();
     $arrayRoleWorkflow = FtaRoleModel::getArrayIdFtaRoleByIdUserAndWorkflow($paramIdUser, $paramWorkflow);
     //Calcul du taux
     $taux_temp = FtaSuiviProjetModel::getArrayFtaTauxValidation($ftaModel, TRUE);
     if ($taux_temp["1"]) {
         foreach ($taux_temp["1"] as $id_fta_processus => $taux) {
             /**
              * On obtient le rôle pour lequel le processus correspond
              */
             $arrayCheckRole = FtaWorkflowStructureModel::getArrayRoleByProcessusAndWorkflow($id_fta_processus, $paramWorkflow);
             $checkRole1 = array_intersect($arrayCheckRole, $arrayRoleWorkflow);
             if ($checkRole1) {
                 $checkRole2 = array_intersect($arrayCheckRole, $listeRole);
                 if (!$checkRole2) {
                     /**
                      * 0 en attente 
                      * entre 0 et 1 cours
                      * 1 validé
                      */
                     $listeRole[] = $arrayCheckRole["0"];
                     /**
                      * Mise en forme du rôle en cours
                      */
                     if ($arrayCheckRole["0"] == $paramIdFtaRoleEncours) {
                         $font_size = "size=" . Navigation::FONT_SIZE_ROLE_ENCOURS;
                         $font_flash = "<font " . $font_size . ">";
                         $image_flash1 = $font_flash . '[  ' . "</font>";
                         $image_flash2 = $font_flash . '  ]' . "</font>";
                     } else {
                         $font_size = "";
                         $image_flash1 = '-  ';
                         $image_flash2 = '  -';
                     }
                     if ($taux == "0") {
                         /**
                          * Vérification que tous les processus précédent soit validé si oui le processus est encours
                          */
                         $taux_validation_processus = FtaProcessusModel::getFtaProcessusNonValidePrecedent($ftaModel->getKeyValue(), $id_fta_processus, $paramWorkflow);
                         if ($taux_validation_processus == "1" or $taux_validation_processus === NULL) {
                             $ftaRoleModel = new FtaRoleModel($arrayCheckRole["0"]);
                             $roles .= $image_flash1 . ' <a href=' . 'modification_fiche' . '.php?' . 'id_fta=' . $ftaModel->getKeyValue() . '&id_fta_chapitre_encours=' . $paramIdftaChapitreEncours . '&synthese_action=' . $paramSytheseAction . '&id_fta_etat=' . $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue() . '&abreviation_fta_etat=' . $ftaModel->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue() . '&id_fta_role=' . $arrayCheckRole["0"] . '>' . $ftaRoleModel->getDataField(FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE)->getFieldValue() . '</a> ' . $image_flash2 . ' ';
                         } else {
                             $ftaRoleModel = new FtaRoleModel($arrayCheckRole["0"]);
                             /**
                              * Liien vers l'historique sans la navigation
                              */
                             $roles .= $image_flash1 . $ftaRoleModel->getDataField(FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE)->getFieldValue() . $image_flash2 . ' ';
                         }
                     } elseif ($taux == "1" or $taux != "0" and $taux != "1") {
                         $ftaRoleModel = new FtaRoleModel($arrayCheckRole["0"]);
                         $roles .= $image_flash1 . ' <a href=' . 'modification_fiche' . '.php?' . 'id_fta=' . $ftaModel->getKeyValue() . '&id_fta_chapitre_encours=' . $paramIdftaChapitreEncours . '&synthese_action=' . $paramSytheseAction . '&id_fta_etat=' . $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue() . '&abreviation_fta_etat=' . $ftaModel->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue() . '&id_fta_role=' . $arrayCheckRole["0"] . '>' . $ftaRoleModel->getDataField(FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE)->getFieldValue() . '</a> ' . $image_flash2 . ' ';
                     }
                 }
             }
         }
         $RoleNavigation = '  Rôles  ' . $roles;
     }
     return $RoleNavigation;
 }
 public static function getHtmlTable($paramIdFta, $paramChoix, $paramResultLimitByPage = self::DEFAULT_RESULT_LIMIT_BY_PAGE, $paramOrderCommon = NULL)
 {
     /*
      * Déclaration des variables locales
      */
     $largeur_html_C1 = self::HTML_CELL_WIDTH_C1;
     // largeur cellule type
     $largeur_html_C3 = self::HTML_CELL_WIDTH_C3;
     // largeur cellule type
     $compteur_ligne = 1;
     $selection_width = self::HTML_CELL_WIDTH_SELECTION;
     $lien = "";
     $tableau_fiches = "<table class=titre width=100% border=0>" . "<tr class=titre_principal><td></td><td>";
     $synthese_action = "all";
     /*
      * Initilisation
      */
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $idFtaRole = FtaRoleModel::getKeyNameOfFirstRoleByIdUser($idUser);
     $ftaModel = new FtaModel($paramIdFta);
     //Chargement manuel des données pour optimiser les performances
     $abreviation_fta_etat = $ftaModel->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue();
     $LIBELLE = $ftaModel->getDataField(FtaModel::FIELDNAME_LIBELLE)->getFieldValue();
     $NB_UNIT_ELEM = $ftaModel->getDataField(FtaModel::FIELDNAME_NOMBRE_UVC_PAR_CARTON)->getFieldValue();
     $Poids_ELEM = $ftaModel->getDataField(FtaModel::FIELDNAME_POIDS_ELEMENTAIRE)->getFieldValue();
     $suffixe_agrologic_fta = $ftaModel->getModelClassificationRacourcis()->getNameRaccourcisClassif();
     $designation_commerciale_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE)->getFieldValue();
     $id_dossier_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_DOSSIER_FTA)->getFieldValue();
     $id_version_dossier_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue();
     $code_article_ldc = $ftaModel->getDataField(FtaModel::FIELDNAME_CODE_ARTICLE_LDC)->getFieldValue();
     $dateEcheanceFtatmp = $ftaModel->getDataField(FtaModel::FIELDNAME_DATE_ECHEANCE_FTA)->getFieldValue();
     $createur_nom = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_NOM)->getFieldValue();
     $createur_prenom = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_PRENOM)->getFieldValue();
     $workflowName = $ftaModel->getModelFtaWorkflow()->getDataField(FtaWorkflowModel::FIELDNAME_DESCRIPTION_FTA_WORKFLOW)->getFieldValue();
     $idWorkflowFtaEncours = $ftaModel->getModelFtaWorkflow()->getKeyValue();
     $nomSiteProduction = $ftaModel->getModelSiteProduction()->getDataField(GeoModel::FIELDNAME_GEO)->getFieldValue();
     $idclassification = $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_CLASSIFICATION2)->getFieldValue();
     $listeIdFtaRole = $ftaModel->getDataField(FtaModel::FIELDNAME_LISTE_ID_FTA_ROLE)->getFieldValue();
     $idSiteDeProduction = $ftaModel->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue();
     $idFtaEtat = $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue();
     /**
      * Changment du format de date en Fr
      */
     $dateEcheanceFta = FtaController::changementDuFormatDeDateFR($dateEcheanceFtatmp);
     /**
      * On obtient IdintranetAction du site de production
      */
     $idIntranetActionsSiteDeProduction = FtaActionSiteModel::getArrayIdIntranetActionByWorkflowAndSiteDeProduction($idWorkflowFtaEncours, $idSiteDeProduction);
     /**
      * On verifie si selon le workflow  et site de production en cours l'utilisateur connecté à les droits d'accès.
      * Puisqu'un utilisateur ne doit pas avoir accès aux boutons :
      * historique, transition, retirer, duplication et pourcentage d'avancement
      * si il n'a pas les accès aux site de production.
      */
     $checkAccesButtonBySiteProd = IntranetActionsModel::isAccessFtaActionByIdUserFtaWorkflowAndSiteDeProduction($idUser, $idWorkflowFtaEncours, $idIntranetActionsSiteDeProduction);
     /**
      * Donne accès aux bouton de transition 
      * pour les utilisateur se trouvant en fin de parcours de l'espace de travail
      */
     $accesTransitionButton = FtaTransitionModel::isAccesTransitionButton($idFtaRole, $idWorkflowFtaEncours);
     /*
      * Attribution des couleurs de fonds suivant l'état de la FTA
      */
     $bgcolor = self::getHtmlCellBgColor($abreviation_fta_etat);
     $bgcolorArcadia = self::getHtmlCellBgColorArcadia($paramIdFta, $bgcolor);
     $tauxRound = FtaSuiviProjetModel::getPourcentageFtaTauxValidation($ftaModel);
     /**
      * Lien vers l'historique de la Fta
      */
     $lienHistorique = self::getHtmlLinkHistorique($abreviation_fta_etat, $paramIdFta, FtaRoleModel::ID_FTA_ROLE_COMMUN, $synthese_action, $tauxRound, $checkAccesButtonBySiteProd, $idFtaEtat);
     /**
      * Gestion des icones en fonction des délais
      */
     $bgcolor_header = self::getHtmlBgColorIconHeader($abreviation_fta_etat, $paramIdFta);
     $icon_header = self::getHtmlIconEcheanceByEtatAndFta($abreviation_fta_etat, $paramIdFta);
     /**
      * Bouton d'accès au détail de la FTA
      */
     $lien .= self::getHtmlLinkModify($abreviation_fta_etat, $paramIdFta, $synthese_action, $idFtaEtat, $checkAccesButtonBySiteProd);
     /**
      * Historique de modification
      */
     $lien .= self::getHtmlLinkHistoriqueModfify($abreviation_fta_etat, $paramIdFta, $synthese_action, $idFtaEtat);
     /**
      * Bouton d'accès au rendu PDF de la FTA
      */
     $lien .= self::getHtmlLinkPDF($abreviation_fta_etat, $paramIdFta, $idWorkflowFtaEncours);
     /**
      * Bouton d'accès à la transition
      */
     $lien .= self::getHmlLinkTransiter($paramIdFta, $idFtaRole, $abreviation_fta_etat, $checkAccesButtonBySiteProd, $accesTransitionButton, $synthese_action, $tauxRound);
     /**
      * Bouton d'accès pour retirer une FTA
      */
     if (FtaRoleModel::isGestionnaire($idFtaRole) and $checkAccesButtonBySiteProd and $abreviation_fta_etat != FtaEtatModel::ETAT_ABREVIATION_VALUE_RETIRE) {
         $lien .= self::getHtmlLinkRemoveFta($paramIdFta);
         $javascript .= self::getJavascriptLinkRemoveFta($paramIdFta, $idFtaRole, $synthese_action);
     }
     /**
      * Bouton d'accès pour dupliquer  une FTA
      */
     if (FtaRoleModel::isGestionnaire($idFtaRole) and $checkAccesButtonBySiteProd) {
         $lien .= self::getHtmlLinkDuplicateFta($paramIdFta, $idFtaRole);
     }
     //Désignation commerciale
     $din = self::getStringDINCompacted($designation_commerciale_fta, $LIBELLE, $NB_UNIT_ELEM, $Poids_ELEM);
     /*
      * Noms des services dans lequel la Fta se trouve
      */
     $service = FtaRoleModel::getNameServiceEncours($listeIdFtaRole);
     //        switch (TRUE) {
     //            /**
     //             * Si la FTA est en modification et que l'utilisateur n'est pas autorisé à accéder aux boutons.
     //             */
     //            case (
     //            $abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION AND $checkAccesButton != FALSE
     //            ):
     //                $service = "";
     //                break;
     //
     //            /**
     //             * Si la FTA est en modification et que l'utilisateur est autorisé à accéder aux boutons.
     //             */
     //            case (
     //            $abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION AND $checkAccesButton != TRUE
     //            ):
     //                $service = FtaRoleModel::getNameServiceEncours($listeIdFtaRole);
     //                break;
     //            /**
     //             * Sinon:
     //             */
     //            default:
     //                $service = FtaRoleModel::getNameServiceEncours($listeIdFtaRole);
     //        }
     /**
      * Calssification
      */
     if ($idclassification) {
         $classification = ClassificationArborescenceArticleCategorieContenuModel::getElementClassificationFta($idclassification, ClassificationFta2Model::FIELDNAME_ID_PROPRIETAIRE_GROUPE);
     }
     //Nom de l'assistante de projet responsable:
     $createur_link = "\"Géré par {$createur_prenom} {$createur_nom}\"";
     $tableau_fiches .= "<tr class=contenu>\r\n                              <td {$bgcolor_header} " . $selection_width . " > {$icon_header} {$selection}</td>\r\n                              ";
     $tableau_fiches .= '<td ' . $bgcolor . ' width=8%>' . $nomSiteProduction . '<br>(' . $workflowName . ')</td>' . '<td ' . $bgcolor . ' width=3%>' . $classification . '</td>' . '<td ' . $bgcolor . ' width=3%>' . $suffixe_agrologic_fta . '</td>';
     // Raccourcie Class.
     $tableau_fiches .= "<td {$bgcolor} {$largeur_html_C1}><a title={$createur_link} />" . $din . "</a></td>" . "<td {$bgcolor} width=3%>" . $id_dossier_fta . "v" . $id_version_dossier_fta . "</td>";
     $tableau_fiches .= "<td {$bgcolorArcadia} width=\"1%\"> <b><font size=\"2\" color=\"#0000FF\">" . $code_article_ldc . "</font></b></td>";
     if ($abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION) {
         $tableau_fiches .= '<td ' . $bgcolor . $largeur_html_C3 . ' align=center>' . $dateEcheanceFta . '</td>';
         //échance de validation
     } else {
         $tableau_fiches .= '<td ' . $bgcolor . $largeur_html_C3 . ' align=center>' . $dateEcheanceFta . '</td>';
         //échance de validation
     }
     $tableau_fiches .= '<td ' . $bgcolor . ' width=5% align=center >' . $lienHistorique . '</td>' . '<td ' . $bgcolor . $largeur_html_C3 . ' align=center >' . $service . '</td>' . '<td ' . $bgcolor . ' width=8%' . ' align=center >' . $lien . '</td>';
     // Actions
     $tableau_fiches .= "</tr>";
     $compteur_ligne++;
     //        }//fin tant que tableau_origine
     $tableau_fiches = $javascript . $tableau_fiches . "</table>";
     //Ajoute de la fonction de traitement de masse
     if ($traitementDeMasse) {
         $liste_action_groupe = FtaTransitionModel::getListeFtaGrouper($abreviation_fta_etat);
         $tableau_fiches .= '&nbsp;
         <img src = ../lib/images/fleche_gauche_et_haut.png width = 38 height = 22 border = 0 />
         <i>Transitions groupées</i>:
         ' . $liste_action_groupe . '
         <input type = \'text\' name=\'subject\' size=\'20\' />
         <input type=image src=images/transiter.png width=20 height=20 />
         <input type=hidden name=action value=transition_groupe>
                      ';
     }
     return $tableau_fiches;
 }
示例#6
0
 /**
  * Barre de naviagtion de la Fta
  * @param type $paramActivationComplete
  * @return string
  */
 protected static function buildNavigationBar($paramActivationComplete)
 {
     //Variables
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $html_table = 'table ' . 'border=1 ' . 'width=100% ' . 'class=contenu ';
     if (self::$id_fta) {
         $checkIdFta = self::$ftaModel->getDataField(FtaModel::KEYNAME)->getFieldValue();
         if (!$checkIdFta) {
             $titre = UserInterfaceMessage::FR_WARNING_PARAM_ID_FTA_TITLE;
             $message = UserInterfaceMessage::FR_WARNING_PARAM_ID_FTA_NOT_EXISTANT;
             $redirection = "index.php";
             Lib::showMessage($titre, $message, $redirection);
         }
     } else {
         $titre = UserInterfaceMessage::FR_WARNING_PARAM_ID_FTA_TITLE;
         $message = UserInterfaceMessage::FR_WARNING_PARAM_ID_FTA;
         $redirection = "index.php";
         Lib::showMessage($titre, $message, $redirection);
     }
     //Récupère la page en cours
     $arrayFtaEtatAndFta = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaModel::KEYNAME . ', ' . FtaModel::FIELDNAME_CREATEUR . ', ' . FtaModel::FIELDNAME_ARTICLE_AGROLOGIC . ', ' . FtaModel::FIELDNAME_DOSSIER_FTA . ', ' . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . ', ' . FtaModel::FIELDNAME_LIBELLE . ', ' . FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE . ', ' . FtaModel::FIELDNAME_CODE_ARTICLE_LDC . ', ' . FtaWorkflowModel::FIELDNAME_DESCRIPTION_FTA_WORKFLOW . ', ' . FtaModel::FIELDNAME_COMMENTAIRE . ' FROM ' . FtaModel::TABLENAME . ',' . FtaEtatModel::TABLENAME . ',' . FtaWorkflowModel::TABLENAME . ' WHERE ' . FtaModel::KEYNAME . '=' . self::$id_fta . ' AND ' . FtaEtatModel::TABLENAME . '.' . FtaEtatModel::KEYNAME . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_ID_FTA_ETAT . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW);
     /**
      * Liste des Rôles auxquelles l'utilisateur à accès pour un workflow donnée
      */
     $arrayRoleWorkflow = FtaRoleModel::getArrayIdFtaRoleByIdUserAndWorkflow($idUser, self::$id_fta_workflow);
     if (count($arrayRoleWorkflow) > "1") {
         $RoleNavigation = FtaRoleModel::getRolesNavigationBar($idUser, self::$id_fta_workflow, self::$ftaModel, self::$synthese_action, self::$id_fta_chapitre_encours, self::$id_fta_role);
     } else {
         $ftaRoleModel = new FtaRoleModel(self::$id_fta_role);
     }
     $siteDeProduction = self::$ftaModel->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue();
     $geoModel = new GeoModel($siteDeProduction);
     foreach ($arrayFtaEtatAndFta as $rowsFtaEtatAndFta) {
         //Récupération des informations préalables
         //Nom de l'assistante de projet responsable:
         $userModel = new UserModel($rowsFtaEtatAndFta[FtaModel::FIELDNAME_CREATEUR]);
         $createur = $userModel->getPrenomNom();
         //Construction du Menu
         $menu_navigation = self::buildMenu($arrayRoleWorkflow, $rowsFtaEtatAndFta, $html_table, $RoleNavigation, $geoModel, $createur, $ftaRoleModel);
     }
     if ($paramActivationComplete) {
         //Si une action est donnée, alors construction du menu des chapitres
         $menu_navigation .= self::CheckSyntheseAction();
     }
     //Lien de retour rapide
     /**
      * Version avec le rewrite
      */
     //        self::$comeback_url = 'index-' . self::$id_fta_etat . '-' . self::$abreviation_etat . '-' . self::$id_fta_role . '-' . self::$synthese_action . '.html';
     if (self::$comeback == "1") {
         //                   self::$comeback_url = 'index.php?id_fta_etat=' . self::$id_fta_etat . '&nom_fta_etat=' . self::$abreviation_etat . '&id_fta_role=' . self::$id_fta_role . '&synthese_action=' . self::$synthese_action;
         $_SESSION["comeback_url"] = $_SERVER["HTTP_REFERER"];
     } elseif ($_SESSION["comeback_url"] == "") {
         $_SESSION["comeback_url"] = 'index.php?id_fta_etat=' . self::$id_fta_etat . '&nom_fta_etat=' . self::$abreviation_etat . '&id_fta_role=' . self::$id_fta_role . '&synthese_action=' . self::$synthese_action;
     }
     $menu_navigation .= '</tr><tr><td colspan=6 >
 <a href=' . $_SESSION["comeback_url"] . '><img src=../lib/images/bouton_retour.png alt=\'\' title=\'Retour\' width=\'18\' height=\'15\' border=\'0\' /> Retour</a> |
 ';
     if ($paramActivationComplete) {
         //Corps du menu
         $accesTransitionButton = FtaTransitionModel::isAccesTransitionButton(self::$id_fta_role, self::$id_fta_workflow);
         $idIntranetActionsSiteDeProduction = FtaActionSiteModel::getArrayIdIntranetActionByWorkflowAndSiteDeProduction(self::$id_fta_workflow, $siteDeProduction);
         $checkAccesButtonBySiteProd = IntranetActionsModel::isAccessFtaActionByIdUserFtaWorkflowAndSiteDeProduction($idUser, self::$id_fta_workflow, $idIntranetActionsSiteDeProduction);
         $tauxRound = FtaSuiviProjetModel::getPourcentageFtaTauxValidation(self::$ftaModel);
         /**
          * Bouton de trasition
          */
         $transition = TableauFicheView::getHmlLinkTransiter(self::$id_fta, self::$id_fta_role, self::$abreviation_etat, $checkAccesButtonBySiteProd, $accesTransitionButton, self::$synthese_action, $tauxRound, "18", " Transiter");
         /**
          * Bouton d'accès au rendu PDF de la FTA
          */
         $pdf = TableauFicheView::getHtmlLinkPDF(self::$abreviation_etat, self::$id_fta, self::$id_fta_workflow, "18", "Export PDF");
         if ($transition) {
             $transition = " | " . $transition;
         }
         if ($pdf) {
             $pdf = " | " . $pdf;
         }
         $historique = " | " . TableauFicheView::getHtmlLinkHistoriqueModfify(self::$abreviation_etat, self::$id_fta, self::$synthese_action, self::$id_fta_etat, self::$id_fta_role, "18", "Historique de modification");
         $menu_navigation .= '
                 <a href=historique-' . self::$id_fta . '-' . self::$id_fta_chapitre_encours . '-' . self::$id_fta_etat . '-' . self::$abreviation_etat . '-' . self::$id_fta_role . '-' . self::$synthese_action . '.html ><img src=./images/graphique.png alt=\'\' title=\'Etat d\'avancement\' width=\'18\' height=\'15\' border=\'0\' /> Etat d\'avancement</a>' . $historique . ' | <a href=fta2arcadia_summary.php?' . FtaModel::KEYNAME . '=' . self::$id_fta . '&id_fta_chapitre_encours=' . self::$id_fta_chapitre_encours . '&' . FtaEtatModel::KEYNAME . '=' . self::$id_fta_etat . '&' . FtaEtatModel::FIELDNAME_ABREVIATION . '=' . self::$abreviation_etat . '&' . FtaRoleModel::KEYNAME . '=' . self::$id_fta_role . '&synthese_action=' . self::$synthese_action . ' ><img src=./images/icone_information.png alt=\'\' title=\'Fta2Arcadia width=\'18\' height=\'15\' border=\'0\' /> Fta2Arcadia</a>' . $transition . $pdf . ' 
                    </td></tr>                       
                    </table>
                    ';
     }
     return $menu_navigation;
     //return $return raplacera menu_navigation;
 }
示例#7
0
$page_action = 'modification_fiche.php';
$page_pdf = $page_default . '_pdf.php';
$action = 'valider';
//Action proposée à la page _post.php
$method = 'POST';
//Pour une url > 2000 caractères, ne pas utiliser utiliser GET
$html_table = 'table ' . 'width=100% ' . 'class=titre_principal ';
$detail_id_fta;
//Identifiant de la fiche sur laquelle on souhaite un détail
/*
 Récupération des données MySQL
*/
Navigation::initNavigation($id_fta, $id_fta_chapitre, $synthese_action, $comeback, $idFtaEtat, $abreviationFtaEtat, $idFtaRole, TRUE, TRUE);
$navigue = Navigation::getHtmlNavigationBar();
//Calcul du taux
$taux_temp = FtaSuiviProjetModel::getArrayFtaTauxValidation($ftaModel, TRUE);
$details[$id_fta] = $taux_temp[1];
//Détail d'un FTA
if ($id_fta) {
    $bloc .= '
       <' . $html_table . '>
       <tr class=titre>
           <td>
           ' . DatabaseDescription::getFieldDocLabel(FtaRoleModel::TABLENAME, FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE) . '
           </td>
           <td>
           ' . DatabaseDescription::getFieldDocLabel(FtaChapitreModel::TABLENAME, FtaChapitreModel::FIELDNAME_NOM_CHAPITRE) . '
           </td>
           <td>
           Taux
           </td>
                $idFtaEtatChange = $rowsIdFtaChange[FtaModel::FIELDNAME_ID_FTA_ETAT];
                $ftaEtatModel = new FtaEtatModel($idFtaEtatChange);
                $arbreviationFta = $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue();
                /**
                 * Changement de l'espace de travail
                 */
                $ftaModel = new FtaModel($idFta);
                $ftaModel->getDataField(FtaModel::FIELDNAME_WORKFLOW)->setFieldValue($idFtaWorkflowNEW);
                $oldComment = $ftaModel->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->getFieldValue();
                $ftaModel->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->setFieldValue($commentaire . $oldComment);
                $ftaModel->saveToDatabase();
                FtaSuiviProjetModel::createNewChapitresFromNewWorkflow($idFta, $idFtaWorkflowNEW, $arbreviationFta, $idUser);
                /**
                 * Suppression des chapitres de l'ancien espace de travail
                 */
                FtaSuiviProjetModel::deleteOldChapitreFromOldWorkflow($idFta, $idFtaWorkflowNEW);
            }
            //Redirection
            header('Location: modification_fiche.php?id_fta=' . $paramIdFta . '&id_fta_chapitre_encours=' . $paramIdFtaChapitreEncours . '&synthese_action=' . $paramSyntheseAction . '&id_fta_etat=' . $idFtaEtat . '&abreviation_fta_etat=' . $abreviationFtaEtat . '&id_fta_role=' . FtaRoleModel::ID_FTA_ROLE_COMMUN);
        } else {
            $titre = UserInterfaceMessage::FR_WARNING_DATA_ESPACE_DE_TRAVAIL_TITLE;
            $message = UserInterfaceMessage::FR_WARNING_DATA_ESPACE_DE_TRAVAIL_CHANGEMENT;
            Lib::showMessage($titre, $message, $redirection);
        }
        break;
        /*     * **********
              Fin de switch
             * ********** */
}
?>
示例#9
0
 /**
  * Mise à jour du pourcentage d'avancement d'un Fta
  */
 public function updateAvancementFta()
 {
     $idFta = $this->getKeyValue();
     $idFtaWorkflow = $this->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue();
     /**
      * Recalcul + stockage % Avancement
      */
     $taux_temp = FtaSuiviProjetModel::getArrayFtaTauxValidation($this, FALSE);
     $recap[$idFta] = round($taux_temp['0'] * '100', '0') . '%';
     $this->getDataField(FtaModel::FIELDNAME_POURCENTAGE_AVANCEMENT)->setFieldValue($recap[$idFta]);
     /**
      * Recalcul + stockage liste des services
      */
     $listeIdRole = FtaRoleModel::getListeIdFtaRoleEncoursByIdFta($idFta, $idFtaWorkflow);
     $this->getDataField(FtaModel::FIELDNAME_LISTE_ID_FTA_ROLE)->setFieldValue($listeIdRole);
     $this->saveToDatabase();
 }
示例#10
0
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;
}
 /**
  * Affiche l'historique de la Fta
  * @param int $paramIdFtaDossier
  * @param int $paramIdFtaWorkflow
  * @return string
  */
 public static function getHtmlHistoriqueFta($paramIdFtaDossier, $paramIdFtaWorkflow)
 {
     /**
      * Historisation des changement d'état initialisé en modification
      */
     $arrayHistoValidationFta = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_FTA . "," . FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_VERSION_FTA . "," . FtaEtatHistoriqueModel::FIELDNAME_ID_FTA_ETAT_DEST . "," . UserModel::FIELDNAME_NOM . "," . UserModel::FIELDNAME_PRENOM . "," . FtaEtatHistoriqueModel::FIELDNAME_STATE_CHANGE_DATE . " FROM " . FtaEtatHistoriqueModel::TABLENAME . "," . UserModel::TABLENAME . " WHERE " . FtaEtatHistoriqueModel::TABLENAME . "." . FtaEtatHistoriqueModel::FIELDNAME_ID_USER . "=" . UserModel::TABLENAME . "." . UserModel::KEYNAME . " AND " . FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_FTA . "=" . $paramIdFtaDossier . " ORDER BY " . FtaEtatHistoriqueModel::FIELDNAME_STATE_CHANGE_DATE . " DESC ");
     if ($arrayHistoValidationFta) {
         foreach ($arrayHistoValidationFta as $rowsHistoValidationFta) {
             $ftaEtatModel = new FtaEtatModel($rowsHistoValidationFta[FtaEtatHistoriqueModel::FIELDNAME_ID_FTA_ETAT_DEST]);
             $nomFtaEtat = $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_NOM_FTA_ETAT)->getFieldValue();
             $versionEncours = "V" . $rowsHistoValidationFta[FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_VERSION_FTA];
             $nomSignataire = $rowsHistoValidationFta[UserModel::FIELDNAME_PRENOM] . " " . $rowsHistoValidationFta[UserModel::FIELDNAME_NOM];
             $dateValidation = $rowsHistoValidationFta[FtaEtatHistoriqueModel::FIELDNAME_STATE_CHANGE_DATE];
             /**
              * Changment de format de date
              */
             $date = FtaController::changementDuFormatDeDateFR($dateValidation);
             $arrayHistoModif[] = array("date" => $date, "nom" => $nomSignataire, "version" => $versionEncours, "etat" => $nomFtaEtat, "oldValue" => $oldValue, "newValue" => $newValue);
         }
     }
     /**
      * Listes des tables Fta à vérifier
      */
     $arrayTableCheck = array(FtaModel::TABLENAME, FtaComposantModel::TABLENAME, FtaConditionnementModel::TABLENAME);
     /**
      * Historiques des changement de données par les utilisateurs
      */
     foreach ($arrayTableCheck as $rowsTableCheck) {
         /**
          * Tableau des Fta selon le dossier encours
          */
         $arrayIdFta = FtaModel::getArrayIdFtaByIdDossierFta($paramIdFtaDossier);
         foreach ($arrayIdFta as $rowsIdFta) {
             $idFtaEncours = $rowsIdFta[FtaModel::KEYNAME];
             $ftaModelEncours = new FtaModel($idFtaEncours);
             $versionFta = "V" . $ftaModelEncours->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue();
             /**
              * Listes des noms des champs avec le label de la table encours
              */
             if ($rowsTableCheck == FtaModel::TABLENAME) {
                 $model = new FtaModel($idFtaEncours);
                 $model->setDataFtaTableToCompare();
                 $arrayChamps = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE . " FROM " . IntranetColumnInfoModel::TABLENAME . " WHERE " . IntranetColumnInfoModel::FIELDNAME_TABLE_NAME_INTRANET_COLUMN_INFO . "='" . $rowsTableCheck . "'" . " AND " . IntranetColumnInfoModel::FIELDNAME_IS_ENABLED_INTRANET_HISTORIQUE . "=" . IntranetColumnInfoModel::IS_ENABLED_INTRANET_HISTORIQUE_TRUE);
                 foreach ($arrayChamps as $rowsChamps) {
                     $check = $model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO])->isFieldDiff();
                     if ($check) {
                         $htmlObjetOld = Html::getHtmlObjectFromDataField($model->getDataToCompare()->getDataFieldByFieldName($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                         $oldValue = $htmlObjetOld->getRawContent();
                         $htmlObjetNew = Html::getHtmlObjectFromDataField($model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                         $newValue = $htmlObjetNew->getRawContent();
                         $label = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO];
                         $idFtaChapitreTmp = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE];
                         $idFtaChapitreArray = explode(',', $idFtaChapitreTmp);
                         $idFtaChapitre = FtaWorkflowStructureModel::getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $idFtaChapitreArray);
                         if ($idFtaChapitre) {
                             $nomSignataire = FtaSuiviProjetModel::getUserNameByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                             $dateValidation = FtaSuiviProjetModel::getValidationDateByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                             $arrayHistoModif[] = array("date" => $dateValidation, "nom" => $nomSignataire, "version" => $versionFta, "etat" => $label, "oldValue" => $oldValue, "newValue" => $newValue);
                         }
                     }
                 }
             } elseif ($rowsTableCheck == FtaComposantModel::TABLENAME) {
                 /**
                  * On récupère la liste des composants
                  */
                 $arraIdFtaComposant = FtaComposantModel::getArrayIdFtaComposantTable($idFtaEncours);
                 if ($arraIdFtaComposant) {
                     foreach ($arraIdFtaComposant as $rowsIdFtaComposant) {
                         $idFtaComposant = $rowsIdFtaComposant[FtaComposantModel::KEYNAME];
                         $model = new FtaComposantModel($idFtaComposant);
                         $model->setDataFtaComposantTableToCompare();
                         $arrayChamps = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE . " FROM " . IntranetColumnInfoModel::TABLENAME . " WHERE " . IntranetColumnInfoModel::FIELDNAME_TABLE_NAME_INTRANET_COLUMN_INFO . "='" . $rowsTableCheck . "'" . " AND " . IntranetColumnInfoModel::FIELDNAME_IS_ENABLED_INTRANET_HISTORIQUE . "=" . IntranetColumnInfoModel::IS_ENABLED_INTRANET_HISTORIQUE_TRUE);
                         foreach ($arrayChamps as $rowsChamps) {
                             $check = $model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO])->isFieldDiff();
                             if ($check) {
                                 $htmlObjetOld = Html::getHtmlObjectFromDataField($model->getDataToCompare()->getDataFieldByFieldName($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $oldValue = $htmlObjetOld->getRawContent();
                                 $htmlObjetNew = Html::getHtmlObjectFromDataField($model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $newValue = $htmlObjetNew->getRawContent();
                                 $label = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO];
                                 $idFtaChapitreTmp = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE];
                                 $idFtaChapitreArray = explode(',', $idFtaChapitreTmp);
                                 $idFtaChapitre = FtaWorkflowStructureModel::getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $idFtaChapitreArray);
                                 if ($idFtaChapitre) {
                                     $nomSignataire = FtaSuiviProjetModel::getUserNameByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $dateValidation = FtaSuiviProjetModel::getValidationDateByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $arrayHistoModif[] = array("date" => $dateValidation, "nom" => $nomSignataire, "version" => $versionFta, "etat" => $label, "oldValue" => $oldValue, "newValue" => $newValue);
                                 }
                             }
                         }
                     }
                 }
             } elseif ($rowsTableCheck == FtaConditionnementModel::TABLENAME) {
                 $arraIdFtaConditionnment = FtaConditionnementModel::getArrayIdFtaConditionnement($idFtaEncours);
                 /**
                  * On récupère la liste des embalalges
                  */
                 if ($arraIdFtaConditionnment) {
                     foreach ($arraIdFtaConditionnment as $rowsIdFtaConditionnment) {
                         $idFtaConditionnement = $rowsIdFtaConditionnment[FtaConditionnementModel::KEYNAME];
                         $model = new FtaConditionnementModel($idFtaConditionnement);
                         /**
                          * On vérifie si l'un des champs de l'emballage encours est différents de la version précedentes
                          */
                         $model->setDataFtaConditionnementTableToCompare();
                         /**
                          * restraiendre la liste des champs
                          */
                         $arrayChamps = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO . " FROM " . IntranetColumnInfoModel::TABLENAME . " WHERE " . IntranetColumnInfoModel::FIELDNAME_TABLE_NAME_INTRANET_COLUMN_INFO . "='" . $rowsTableCheck . "'" . " AND " . IntranetColumnInfoModel::FIELDNAME_IS_ENABLED_INTRANET_HISTORIQUE . "=" . IntranetColumnInfoModel::IS_ENABLED_INTRANET_HISTORIQUE_TRUE);
                         foreach ($arrayChamps as $rowsChamps) {
                             $check = $model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO])->isFieldDiff();
                             if ($check) {
                                 $htmlObjetOld = Html::getHtmlObjectFromDataField($model->getDataToCompare()->getDataFieldByFieldName($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $oldValue = $htmlObjetOld->getRawContent();
                                 $htmlObjetNew = Html::getHtmlObjectFromDataField($model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $newValue = $htmlObjetNew->getRawContent();
                                 $label = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO];
                                 $idFtaChapitreTmp = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE];
                                 $idFtaChapitreArray = explode(',', $idFtaChapitreTmp);
                                 $idFtaChapitre = FtaWorkflowStructureModel::getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $idFtaChapitreArray);
                                 if ($idFtaChapitre) {
                                     $nomSignataire = FtaSuiviProjetModel::getUserNameByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $dateValidation = FtaSuiviProjetModel::getValidationDateByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $arrayHistoModif[] = array("date" => $dateValidation, "nom" => $nomSignataire, "version" => $versionFta, "etat" => $label, "oldValue" => $oldValue, "newValue" => $newValue);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     /**
      * Affichage du tableau
      */
     if (is_array($arrayHistoModif)) {
         FtaController::arraySortByColumn($arrayHistoModif, "date");
         $tableauFiche .= '<th>' . 'Date' . '</th><th>' . 'Ultilisateur' . '</th><th>' . 'Version du dossier FTA' . '</th><th>' . 'Colonne' . '</th><th>' . 'Ancienne valeur' . '</th><th>' . 'Nouvelle valeur' . '</th>';
         foreach ($arrayHistoModif as $rowsHistoModif) {
             $tableauFiche .= '<tr class=contenu >' . '<td width=8%> ' . $rowsHistoModif["date"] . '</td>' . '<td >' . $rowsHistoModif["nom"] . '</td>' . '<td >' . $rowsHistoModif["version"] . '</td>' . '<td >' . $rowsHistoModif["etat"] . '</td>' . '<td >' . $rowsHistoModif["oldValue"] . '</td>' . '<td >' . $rowsHistoModif["newValue"] . '</td>' . '</tr >';
         }
     }
     return $tableauFiche;
 }
     }
     break;
 case 'suppression_classification_chemin':
     //Suppresion du chemin
     //$id_classification_fta;             //From URL
     //$id_fta;                            //From URL
     //mysql_table_operation('classification_fta', 'delete');
     ObjectFta::deleteClassification();
     break;
 case 'valider':
     if ($is_data_validation_successful) {
         /**
          * Initialisation
          */
         $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($paramIdFta, $paramIdFtaChapitreEncours);
         $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet);
         $modeChapitre = new FtaChapitreModel($paramIdFtaChapitreEncours);
         $idFtaWorkflowStruture = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre($paramIdFta, $paramIdFtaChapitreEncours);
         $modelFtaWorkflowStruture = new FtaWorkflowStructureModel($idFtaWorkflowStruture);
         /**
          * Actualisation de la durée de vie garantie client
          */
         $nomFtaWorkflow = $modelFtaWorkflowStruture->getModelFtaWorkflow()->getDataField(FtaWorkflowModel::FIELDNAME_NOM_FTA_WORKFLOW)->getFieldValue();
         $nomFtaChapitre = $modelFtaWorkflowStruture->getModelFtaChapitre()->getDataField(FtaChapitreModel::FIELDNAME_NOM_CHAPITRE)->getFieldValue();
         FtaController::refreshDureeDeVieMDD($nomFtaWorkflow, $nomFtaChapitre, $modelFtaSuiviProjet->getModelFta());
         /*
          * Enregistrement de la signature
          */
         //            $isFtaDataValidationSuccess = $modelFtaSuiviProjet->getModelFta()->isFtaDataValidationSuccess($paramIdFtaChapitreEncours);
         $isFtaDataValidationSuccess = $modelFtaSuiviProjet->getModelFta()->isFtaDataValidationSuccess();
         if ($paramSignatureValidationSuiviProjet and $isFtaDataValidationSuccess == "0") {
 /**
  * 
  * @param type $paramFtaModel
  * @return type
  */
 public static function getPourcentageFtaTauxValidation($paramFtaModel)
 {
     $tauxTemp = FtaSuiviProjetModel::getArrayFtaTauxValidation($paramFtaModel, FALSE);
     return round($tauxTemp[0] * 100, 0) . "%";
 }
 /**
  * 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;
 }
            break;
            /*         * **********
                      Fin de switch
                     * ********** */
    }
    //Traitement de la duplication
    $option["abreviation_etat_destination"] = FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION;
    $option["designation_commerciale_fta"] = $new_designation_commerciale_fta;
    $option["site_de_production"] = $siteDeProduction;
    $action;
    $id_fta_old = $id_fta;
    /**
          echo "
          abreviation_etat_destination=$abreviation_etat_destination <br>
          option[abreviation_etat_destination]=".$option["abreviation_etat_destination"]."<br>
          option[designation_commerciale_fta]=".$option["designation_commerciale_fta"]."<br>
          action=$action <br>
          id_fta_old=$id_fta_old <br>
          ";
          /* */
    $id_fta_new = FtaModel::buildDuplicationFta($id_fta, $action, $option, $idFtaWorkflow);
    FtaSuiviProjetModel::initFtaSuiviProjet($id_fta_new);
    //echo $id_fta_new."<br>";
    //Redirection
    header("Location: duplicate.php?id_fta_original={$id_fta_old}&id_fta_new={$id_fta_new}&id_fta_role={$idFtaRole}");
}
//include ("./action_bs.php");
//include ("./action_sm.php");
?>