switch ($action) {
    /*
     S'il n'y a pas d'actions défini
    */
    case 'valider':
        if ($idFtaWorkflowOLD != $idFtaWorkflowNEW) {
            $modelFta = new FtaModel($paramIdFta);
            $idDossierFta = $modelFta->getDossierFta();
            /**
             * Liste des IdFta changeant d'espace de travail
             */
            $arrayIdFtaChange = FtaModel::getArrayIdFtaByIdDossierFta($idDossierFta);
            foreach ($arrayIdFtaChange as $rowsIdFtaChange) {
                $idFta = $rowsIdFtaChange[FtaModel::KEYNAME];
                $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);
            }
Exemplo n.º 2
0
 protected static function buildIsCorrectable()
 {
     $ftaEtatModel = new FtaEtatModel(self::$id_fta_etat);
     $return = false;
     //Recherche du droit d'accès correspondant
     $req = 'SELECT `fta_workflow_structure`.`id_fta_chapitre`, `fta_processus_cycle`.`id_etat_fta_processus_cycle` ' . 'FROM `fta_processus`, `fta_workflow_structure`, `fta_processus_cycle` ' . 'WHERE ( `fta_processus`.`id_fta_processus` = `fta_workflow_structure`.`id_fta_processus` ' . 'AND `fta_processus_cycle`.`id_init_fta_processus` = `fta_processus`.`id_fta_processus` ) ' . 'AND ( ( `fta_workflow_structure`.`id_fta_chapitre` =\'' . self::$id_fta_chapitre . '\' ' . 'AND `fta_processus_cycle`.`id_etat_fta_processus_cycle` = \'' . $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue() . '\' ) ) ';
     $cycle_en_cours = DatabaseOperation::convertSqlStatementWithoutKeyToArray($req);
     if (self::$is_owner == true and self::$is_editable == false and $cycle_en_cours) {
         $return = true;
     }
     return $return;
 }
     $message = UserInterfaceMessage::FR_WARNING_ARTICLE_SECONDAIRE;
     $titre = UserInterfaceMessage::FR_WARNING_ARTICLE_SECONDAIRE_TITLE;
     Lib::showMessage($titre, $message);
 }
 $designation_commerciale_fta = $rowsDossierFta[FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE];
 $id_dossier_fta = $rowsDossierFta[FtaModel::FIELDNAME_DOSSIER_FTA];
 $id_version_dossier_fta = $rowsDossierFta[FtaModel::FIELDNAME_VERSION_DOSSIER_FTA];
 $code_article_ldc = $rowsDossierFta[FtaModel::FIELDNAME_CODE_ARTICLE_LDC];
 $LIBELLE = $rowsDossierFta[FtaModel::FIELDNAME_LIBELLE];
 $NB_UNIT_ELEM = $rowsDossierFta[FtaModel::FIELDNAME_NOMBRE_UVC_PAR_CARTON];
 $Poids_ELEM = $rowsDossierFta[FtaModel::FIELDNAME_POIDS_ELEMENTAIRE];
 $abreviation_fta_etat = FtaEtatModel::getAbreviationEtatByIdEtat($rowsDossierFta[FtaModel::FIELDNAME_ID_FTA_ETAT]);
 //Désignation commerciale
 $din = TableauFicheView::getStringDINCompacted($designation_commerciale_fta, $LIBELLE, $NB_UNIT_ELEM, $Poids_ELEM);
 //Etat de la Fta
 $nomEtat = FtaEtatModel::getNameEtatByIdEtat($rowsDossierFta[FtaModel::FIELDNAME_ID_FTA_ETAT]);
 if (!$use) {
     $conseille = "(conseillé)";
     $use = "1";
 } else {
     $conseille = "";
 }
 /*
  * Attribution des couleurs de fonds suivant l'état de la FTA
  */
 $bgcolor = TableauFicheView::getHtmlCellBgColor($abreviation_fta_etat);
 $selection = '<input type=\'radio\' name=selection_fta value=\'' . $idFta . '\'  />' . $conseille;
 $tableau_fiches .= "<tr class=contenu>\r\n                              <td {$bgcolor_header} " . $selection_width . " > {$icon_header} {$selection}</td>\r\n                              ";
 $tableau_fiches .= "<td align=center {$bgcolor} {$largeur_html_C1}>" . $din . " (" . $nomEtat . ") " . "</a></td>" . "<td {$bgcolor} width=3%>" . $id_dossier_fta . "v" . $id_version_dossier_fta . "</td>";
 $tableau_fiches .= "<td {$bgcolor} width=\"1%\"> <b><font size=\"2\" color=\"#0000FF\">" . $code_article_ldc . "</font></b></td>";
 $tableau_fiches .= "</tr>";
Exemplo n.º 4
0
     $messageConsultation = '<table width=100% border=1 valign=top cellspacing=0>
     <tr>
         <td class=titre_principal valign=\'middle\'> ' . UserInterfaceMessage::FR_LAST_50_FTA . '</td>
     </tr>
 </table>';
 }
 $idFtaRoleEncours = Lib::getParameterFromRequest(FtaRoleModel::KEYNAME, $idFtaRoleEncoursDefault);
 //echo 'id_fta_etat=$id_fta_etat / nom_fta_etat=$nom_fta_etat / synthese_action=$synthese_action <br>';
 /*
  Création des objets HTML (listes déroulante, cases à cocher ...etc.)
 */
 /*         * *********
           Fin Code PHP
          * ********* */
 $id_fta_etat_encours = $id_fta_etat;
 $ftaEtatModel = new FtaEtatModel($id_fta_etat);
 $nom_fta_etat_encours = $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_NOM_FTA_ETAT)->getFieldValue();
 /*         * *****************************************************************************
           TABLEAU DE SYNTHESE
          * ***************************************************************************** */
 /**
  * Calcul des enregistrements à afficher
  */
 $debut = ($numeroDePageCourante - '1') * $nbMaxParPage;
 /*
  * Initialisation des valeurs
  */
 /**
  * traitement long
  */
 AccueilFta::initAccueil($id_user, $id_fta_etat, $nomFtaEtat, $synthese_action, $idFtaRoleEncours, $order_common, $debut, $numeroDePageCourante, $lieuGeo);
 /**
  * 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;
 }
 /**
  * Fonction transitant une fiche vers un etat donné
  * @param type $paramIdFta
  * @param type $paramAbreviationFtaTransition
  * @param type $paramCommentaireMajFta
  * @param type $paramIdWorkflow
  * @param type $paramListeChapitres
  * @return array
  */
 public static function buildTransitionFta($paramIdFta, $paramAbreviationFtaTransition, $paramCommentaireMajFta, $paramIdWorkflow, $paramListeChapitres, $dateEcheanceFta)
 {
     /*
      * Codes de retour de la fonction:
      */
     /*
      0: FTA correctement transitée
      1: FTA non transité car risque de doublon
      3: Erreur autre
     */
     $return["0"] = "0";
     /*
      * Chargement de l'enregistrement
      */
     $ftaModel = new FtaModel($paramIdFta);
     $idFtaEtatByIdFta = $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue();
     $idDossierFta = $ftaModel->getDossierFta();
     $codeArticleLdc = $ftaModel->getDataField(FtaModel::FIELDNAME_CODE_ARTICLE_LDC)->getFieldValue();
     $siteDeProduction = $ftaModel->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue();
     $versionDossierFta = $ftaModel->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue();
     $old_nouveau_maj_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->getFieldValue();
     $ftaEtatModel = new FtaEtatModel($idFtaEtatByIdFta);
     $initial_abreviation_fta_etat = $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue();
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $nomPrenom = $globalConfig->getAuthenticatedUser()->getPrenomNom();
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     /*         * *****************************************************************************
               Pré-traitement spécifique
              * ***************************************************************************** */
     switch (TRUE) {
         case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_VALIDE:
             //Passer en Validée
             //Retirer les versions obsolètes
             $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ID_FTA_ETAT . "='6'" . " WHERE " . FtaModel::FIELDNAME_DOSSIER_FTA . "='" . $idDossierFta . "' ";
             $result = DatabaseOperation::execute($req);
             //Mise à jour de la date de validation
             //                $ftaModel->getDataField(FtaModel::FIELDNAME_DATE_DERNIERE_MAJ_FTA)->setFieldValue(date('d-m-Y'));
             //                $ftaModel->saveToDatabase();
             /*
              * Préparation des données
              */
             $nouveau_maj_fta = FtaController::getComment("Validation d'une Fta", $nomPrenom, NULL);
             /**
              * Gestion des Code Article Arcadia Primaire/Secondaires
              */
             $ftaModel->manageFtaPrimaireSecondaire(FtaEtatModel::ID_VALUE_VALIDE, FtaVerrouillageChampsModel::CHANGE_STATE_TRUE_VALIDATION_CHAPITRE);
             break;
             //            case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_WORKFLOW:
             //                //Dans le cas d'une mise à jour, récupération des Chapitres à corriger.
             //
             //                $liste_chapitre_maj_fta = ";";
             //                //Mise à  jour de la table Fta_suivie_projet
             //                FtaSuiviProjetModel::initFtaSuiviProjet($paramIdFta);
             //                foreach ($paramListeChapitres as $rowsChapitre) {
             //                    //Parcours des chapitres
             //                    //Si le chapitre a été sélectionné, on l'enregistre dans le tableau de résultat
             //                    $liste_chapitre_maj_fta.=$rowsChapitre . ";";
             //                    //Correction des chapitres
             //                    $paramOption["no_message_ecran"] = "1";
             //                    $paramOption["correction_fta_suivi_projet"] = $nouveau_maj_fta;
             //                    FtaChapitreModel::BuildCorrectionChapitre($paramIdFta, $rowsChapitre, $paramOption);
             //                }
             //                $paramAbreviationFtaTransition = FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION;
             //                break;
         //            case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_WORKFLOW:
         //                //Dans le cas d'une mise à jour, récupération des Chapitres à corriger.
         //
         //                $liste_chapitre_maj_fta = ";";
         //                //Mise à  jour de la table Fta_suivie_projet
         //                FtaSuiviProjetModel::initFtaSuiviProjet($paramIdFta);
         //                foreach ($paramListeChapitres as $rowsChapitre) {
         //                    //Parcours des chapitres
         //                    //Si le chapitre a été sélectionné, on l'enregistre dans le tableau de résultat
         //                    $liste_chapitre_maj_fta.=$rowsChapitre . ";";
         //                    //Correction des chapitres
         //                    $paramOption["no_message_ecran"] = "1";
         //                    $paramOption["correction_fta_suivi_projet"] = $nouveau_maj_fta;
         //                    FtaChapitreModel::BuildCorrectionChapitre($paramIdFta, $rowsChapitre, $paramOption);
         //                }
         //                $paramAbreviationFtaTransition = FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION;
         //                break;
         case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION:
             //Passer en Initialisation
             //Vérification que le dossier n'a pas une fiche déjà en Mise à jour
             $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaModel::KEYNAME . " FROM " . FtaModel::TABLENAME . "," . FtaEtatModel::TABLENAME . " WHERE " . FtaModel::FIELDNAME_DOSSIER_FTA . "=" . $idDossierFta . " " . " AND " . FtaModel::TABLENAME . "." . FtaModel::FIELDNAME_ID_FTA_ETAT . "=" . FtaEtatModel::TABLENAME . "." . FtaEtatModel::KEYNAME . " AND (" . FtaEtatModel::FIELDNAME_ABREVIATION . "<>'" . FtaEtatModel::ETAT_ABREVIATION_VALUE_VALIDE . "' AND " . FtaEtatModel::FIELDNAME_ABREVIATION . "<>'" . FtaEtatModel::ETAT_ABREVIATION_VALUE_RETIRE . "' AND " . FtaEtatModel::FIELDNAME_ABREVIATION . "<>'" . FtaEtatModel::ETAT_ABREVIATION_VALUE_ARCHIVE . "') ");
             $verrou = count($array);
             if ($verrou and !$_SESSION["mode_debug"]) {
                 $titre = "Action vérrouillée";
                 $message = "Cette fiche est déjà en cours de modification.";
                 $redirection = "";
                 Lib::showMessage($titre, $message, $redirection);
                 $return["0"] = "1";
                 return $return;
                 exit;
             }
             /**
              * Transition d'une Fta Archivévers Modifier doit être la dernier version du dossier
              * afin d'éviter les doublons
              */
             if ($initial_abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_ARCHIVE or $initial_abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_VALIDE) {
                 /**
                  * On récupère la dernière version du dossier
                  */
                 $arrayIdDossierVersion = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT MAX(" . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . ")  FROM " . FtaModel::TABLENAME . " WHERE " . FtaModel::FIELDNAME_DOSSIER_FTA . "=" . $idDossierFta);
                 foreach ($arrayIdDossierVersion as $rowsIdDossierVersion) {
                     $IdDossierVersion = $rowsIdDossierVersion['MAX(' . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . ')'];
                 }
             } else {
                 $IdDossierVersion = "";
             }
             //Dans le cas d'une mise à jour, récupération des Chapitres à corriger.
             $liste_chapitre_maj_fta = ";";
             foreach ($paramListeChapitres as $rowsChapitre) {
                 //Parcours des chapitres
                 //Si le chapitre a été sélectionné, on l'enregistre dans le tableau de résultat
                 $liste_chapitre_maj_fta .= $rowsChapitre . ";";
             }
             /**
              * Commentaire de transition
              */
             $nouveau_maj_fta = FtaController::getComment("Correction d'une Fta", $nomPrenom, $paramCommentaireMajFta);
             // Retirer la FTA de présentation avant de créer la nouvelle version en modification.
             if ($initial_abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_PRESENTATION) {
                 //Retirer la version de présentation
                 $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ID_FTA_ETAT . "='6'" . "WHERE id_fta='" . $paramIdFta . "' ";
                 $result = DatabaseOperation::execute($req);
             }
             //Duplication de la fiche
             $id_fta_original = $paramIdFta;
             $action_duplication = "version";
             $option_duplication["abreviation_etat_destination"] = $paramAbreviationFtaTransition;
             $option_duplication["selection_chapitre"] = $paramListeChapitres;
             $option_duplication["site_de_production"] = $siteDeProduction;
             $option_duplication["id_version_dossier_fta"] = $IdDossierVersion;
             $option_duplication["date_echeance_fta"] = $dateEcheanceFta;
             $option_duplication["nouveau_maj_fta"] = $nouveau_maj_fta;
             $idFtaNew = FtaModel::buildDuplicationFta($id_fta_original, $action_duplication, $option_duplication, $paramIdWorkflow);
             $ftaModel = new FtaModel($idFtaNew);
             $codeArticleLdc = $ftaModel->getDataField(FtaModel::FIELDNAME_CODE_ARTICLE_LDC)->getFieldValue();
             $paramIdFta = $idFtaNew;
             break;
         case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_RETIRE:
             //Passer en Retirer
             /*
              * Préparation des données
              */
             $nouveau_maj_fta = FtaController::getComment("Retirer une Fta", $nomPrenom, NULL);
             break;
         case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_ARCHIVE:
             //Passer en Archivé
             /*
              * Préparation des données
              */
             $nouveau_maj_fta = FtaController::getComment("Archivage d'une Fta", $nomPrenom, NULL);
             break;
         default:
             break;
     }
     //Fin Pré-traitement spécifique
     /*         * ************************************************************* 1****************
               Traitement Commun
              * ***************************************************************************** */
     /**
      * Mise à jour de la date derniere modification de l'état de la Fta
      */
     $ftaModel->getDataField(FtaModel::FIELDNAME_DATE_DERNIERE_MAJ_FTA)->setFieldValue(date('Y-m-d'));
     $ftaModel->saveToDatabase();
     //Récupération du nouvel état de la fiche
     $arrayIdFtaEtat = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaEtatModel::KEYNAME . " FROM " . FtaEtatModel::TABLENAME . " WHERE " . FtaEtatModel::FIELDNAME_ABREVIATION . "=\"" . $paramAbreviationFtaTransition . "\"");
     foreach ($arrayIdFtaEtat as $value) {
         $idFtaEtat = $value[FtaEtatModel::KEYNAME];
     }
     if ($old_nouveau_maj_fta) {
         $nouveau_maj_fta = str_replace('"', '', $nouveau_maj_fta . $old_nouveau_maj_fta);
     }
     $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ID_FTA_ETAT . "=" . $idFtaEtat . ", " . FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA . "=\"" . $nouveau_maj_fta . "\" WHERE " . FtaModel::KEYNAME . "=\"" . $paramIdFta . "\" ";
     DatabaseOperation::execute($req);
     /**
      * Historisation du changement d'état de la Fta
      */
     FtaEtatHistoriqueModel::setFtaEtatHistorique($paramIdFta, $idDossierFta, $versionDossierFta, $idFtaEtatByIdFta, $idFtaEtat, $idUser, $initial_abreviation_fta_etat);
     //Fin Traitement Commun
     /*         * *****************************************************************************
               Post-traitement
              * ***************************************************************************** */
     switch ($paramAbreviationFtaTransition) {
         case 'I':
             //Enregistrement des chapitres concernés par la mise à jour
             $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_LISTE_CHAPITRE_MAJ_FTA . "='" . $liste_chapitre_maj_fta . "' " . " WHERE " . FtaModel::KEYNAME . "='" . $paramIdFta . "' ";
             DatabaseOperation::execute($req);
         case 'V':
             //Désactivation de l'ancien Code Article Agrologic
             $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_CODE_ARTICLE . "=NULL " . "," . FtaModel::FIELDNAME_ACTIF . "='0'" . "," . FtaModel::FIELDNAME_DATE_DE_VALIDATION_FTA . "='" . date("Y-m-d") . "' WHERE " . FtaModel::FIELDNAME_CODE_ARTICLE_LDC . "='" . $codeArticleLdc . "' " . " AND " . FtaModel::KEYNAME . "='" . $paramIdFta . "' ";
             DatabaseOperation::execute($req);
             //Activation du nouvel Article
             $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_CODE_ARTICLE . "='" . "1" . "', actif='-1' " . " WHERE " . FtaModel::KEYNAME . "='" . $paramIdFta . "' ";
             DatabaseOperation::execute($req);
             break;
         case 'A':
         case 'R':
             $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ACTIF . "=0" . "," . FtaModel::FIELDNAME_CODE_ARTICLE . "=NULL" . " WHERE " . FtaModel::KEYNAME . "='" . $paramIdFta . "' ";
             DatabaseOperation::execute($req);
             break;
     }
     $return["id_fta_new"] = $paramIdFta;
     $return[FtaEtatModel::KEYNAME] = $idFtaEtat;
     $return[FtaEtatModel::FIELDNAME_ABREVIATION] = $paramAbreviationFtaTransition;
     return $return;
 }