Example #1
0
 /**
  * Tableau des emballages par Palette
  * @param int $paramIdFta
  * @param int $paramChapitre
  * @param string $paramSyntheseAction
  * @param int $paramIdFtaEtat
  * @param string $paramAbreviationEtat
  * @param int $paramIdFtaRole
  * @return string
  */
 public function getHtmlEmballagePalette($paramIdFta, $paramChapitre, $paramSyntheseAction, $paramIdFtaEtat, $paramAbreviationEtat, $paramIdFtaRole)
 {
     $annexeEmballageGroupeTypeModel = new AnnexeEmballageGroupeTypeModel();
     /*
      * Récuperation des élements clé de la table fta_conditionnement
      */
     $FtaConditionnement = $annexeEmballageGroupeTypeModel->getIdAnnexeEmballageGroupeTypePaletteFromFtaConditionnement();
     if ($FtaConditionnement) {
         $arrayFtaConditionnementtmp = array();
         $tablesNameAndIdForeignKeyOfFtaConditionnementtmp = array();
         foreach ($FtaConditionnement as $rowsFtaConditionnement) {
             $idFtaCondtionnement = $rowsFtaConditionnement[FtaConditionnementModel::KEYNAME];
             $idAnnexeEmballage = $rowsFtaConditionnement[FtaConditionnementModel::FIELDNAME_ID_ANNEXE_EMBALLAGE];
             $idAnnexeEmballageGroupeType = $rowsFtaConditionnement[FtaConditionnementModel::FIELDNAME_ID_ANNEXE_EMBALLAGE_GROUPE_TYPE];
             $arrayIdFtaCondtionnement[] = $idFtaCondtionnement;
             /*
              * Initialisation des modèles 
              */
             $annexeEmballageGroupeTypeModel2 = new AnnexeEmballageGroupeTypeModel(AnnexeEmballageGroupeTypeModel::EMBALLAGE_PALETTE);
             $ftaConditionnmentModel = new FtaConditionnementModel($idFtaCondtionnement);
             /*
              * Tableau de données
              */
             $arrayFtaConditionnementTmp = $ftaConditionnmentModel->getArrayFtaConditonnement();
             $arrayFtaConditionnement = array_replace_recursive($arrayFtaConditionnementtmp, $arrayFtaConditionnementTmp);
             $arrayFtaConditionnementtmp = $arrayFtaConditionnement;
             /*
              * Cette array doit être utilisé de cette manière 
              * Array (
              * nom de table,
              * clé étrangère de la table présenté
              * valeur de la clé étrangère);
              */
             $tablesNameAndIdForeignKeyOfFtaConditionnementTmp = FtaConditionnementModel::getTablesNameAndIdForeignKeyOfFtaConditionnement($paramIdFta, $idAnnexeEmballage, $idAnnexeEmballageGroupeType, $idFtaCondtionnement);
             $tablesNameAndIdForeignKeyOfFtaConditionnement = $tablesNameAndIdForeignKeyOfFtaConditionnementtmp + $tablesNameAndIdForeignKeyOfFtaConditionnementTmp;
             $tablesNameAndIdForeignKeyOfFtaConditionnementtmp = $tablesNameAndIdForeignKeyOfFtaConditionnement;
             /*
              * Vérifie si pour la Fta en cours les données Fta conditionement sont renseigné
              */
             if ($arrayFtaConditionnement) {
                 $rightToAdd = FALSE;
             } else {
                 $rightToAdd = TRUE;
             }
         }
         $className = $ftaConditionnmentModel->getClassName();
         $label = $annexeEmballageGroupeTypeModel2->getDataField(AnnexeEmballageGroupeTypeModel::FIELDNAME_NOM_ANNEXE_EMBALLAGE_GROUPE_TYPE)->getFieldValue();
         $ftaConditionnmentModel->setIsEditable($this->getIsEditable());
         $htmlEmballagePalette = new HtmlSubForm_RNN($arrayFtaConditionnement, $className, $label, $tablesNameAndIdForeignKeyOfFtaConditionnement, FtaConditionnementModel::FONCTIONNAME_VERSIONNING);
         $htmlEmballagePalette->setIsEditable($this->getIsEditable());
         $htmlEmballagePalette->setRightToAdd($rightToAdd);
         $htmlEmballagePalette->setLienAjouter(FtaConditionnementModel::getAddLinkAfterConditionnement($paramIdFta, $paramChapitre, AnnexeEmballageGroupeTypeModel::EMBALLAGE_PALETTE, $paramSyntheseAction, $paramIdFtaEtat, $paramAbreviationEtat, $paramIdFtaRole));
         $htmlEmballagePalette->setLien(FtaConditionnementModel::getAddLinkBeforeConditionnement($paramIdFta, $paramChapitre, AnnexeEmballageGroupeTypeModel::EMBALLAGE_PALETTE, $paramSyntheseAction, $paramIdFtaEtat, $paramAbreviationEtat, $paramIdFtaRole));
         $htmlEmballagePalette->setLienSuppression(FtaConditionnementModel::getDeleteLinkConditionnement($paramIdFta, $paramChapitre, $arrayIdFtaCondtionnement, $paramSyntheseAction, $paramIdFtaEtat, $paramAbreviationEtat, $paramIdFtaRole));
         $htmlEmballagePalette->setTableLabel($ftaConditionnmentModel->getTableConditionnementLabel(AnnexeEmballageGroupeTypeModel::EMBALLAGE_PALETTE));
         $return .= $htmlEmballagePalette->getHtmlResult();
         if (count($FtaConditionnement) > "1") {
             $return .= "<tr class=contenu><td bgcolor=#FFAA55 align=\"center\" valign=\"middle\">";
             $return .= UserInterfaceMessage::FR_WARNING_NOT_HANDLE_TITLE;
             $return .= "</td><td bgcolor=#FFAA55 align=\"center\" valign=\"middle\">" . "<h4>" . UserInterfaceMessage::FR_WARNING_EMBALLAGE_PALETTE . "</h4></td></tr>";
         }
     } else {
         /*
          * Initialisation des modèles 
          */
         $annexeEmballageGroupeTypeModel2 = new AnnexeEmballageGroupeTypeModel(AnnexeEmballageGroupeTypeModel::EMBALLAGE_PALETTE);
         $label = $annexeEmballageGroupeTypeModel2->getDataField(AnnexeEmballageGroupeTypeModel::FIELDNAME_NOM_ANNEXE_EMBALLAGE_GROUPE_TYPE)->getFieldValue();
         $htmlEmballagePalette = new HtmlSubForm_RNN($arrayFtaConditionnement, $className, $label, $tablesNameAndIdForeignKeyOfFtaConditionnement, FtaConditionnementModel::FONCTIONNAME_VERSIONNING);
         $htmlEmballagePalette->setIsEditable($this->getIsEditable());
         $htmlEmballagePalette->setRightToAdd(TRUE);
         $htmlEmballagePalette->setLien(FtaConditionnementModel::getAddLinkBeforeConditionnement($paramIdFta, $paramChapitre, AnnexeEmballageGroupeTypeModel::EMBALLAGE_PALETTE, $paramSyntheseAction, $paramIdFtaEtat, $paramAbreviationEtat, $paramIdFtaRole));
         $return .= $htmlEmballagePalette->getHtmlResult();
     }
     /**
      * Initialisation du reésultat des règles de validation
      */
     $this->setDataValidationSuccessful($htmlEmballagePalette->isDataValidationSuccessful());
     return $return;
 }
             if ($arrayFtaSuiviProjet) {
                 //Mise à jour de l'existant
                 foreach ($arrayFtaSuiviProjet as $rowsFtaSuiviProjet) {
                     $idFtaSuiviProjet = $rowsFtaSuiviProjet[FtaSuiviProjetModel::KEYNAME];
                     $req = 'UPDATE ' . FtaSuiviProjetModel::KEYNAME . ' SET ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '=' . -1 . ' WHERE ' . FtaSuiviProjetModel::KEYNAME . '=\'' . $idFtaSuiviProjet . '\' ';
                     DatabaseOperation::execute($req);
                 }
             } else {
                 //Création des suivi
                 $req = 'INSERT ' . FtaSuiviProjetModel::TABLENAME . ' SET ' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=\'' . $rowsChapitreVerrou[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . '\', ' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=\'' . $idFta . '\', ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '=' . -1;
                 DatabaseOperation::execute($req);
             }
         }
     }
     //Création d'une palette
     FtaConditionnementModel::createPalette($idFta);
     //Redirection
     header('Location: modification_fiche.php?id_fta=' . $idFta . '&synthese_action=encours&id_fta_etat=' . $idFtaEtat . '&abreviation_fta_etat=' . $abreviationFtaEtat . '&id_fta_role=' . $idFtaRole);
     /**
      * Version avec le module rewrite
      * suppresion du comeback dans les URL
      */
     //        header('Location: modification_fiche-' . $idFta
     //                . '-encours-1-' . $idFtaEtat
     //                . '-' . $abreviationFtaEtat
     //                . '-' . $idFtaRole . '.html');
     break;
 case 2:
     //Duplication d'une Fiche Technique Article
     if ($id_fta) {
         $arrayFta = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ' WHERE ( ' . FtaModel::KEYNAME . ' = ' . $id_fta . ' ) ');
 public static function initEmballage($paramIdFta)
 {
     /*
      * On obtient les id groupes d'emballages de type UVC
      */
     self::$idAnnexeEmballageGroupeUVC = AnnexeEmballageGroupeModel::getArrayIdAnnexeEmballageGroupe(self::EMBALLAGE_UVC);
     /*
      * On obtient les id groupes d'emballages par Colis 
      */
     self::$idAnnexeEmballageGroupeParColis = AnnexeEmballageGroupeModel::getArrayIdAnnexeEmballageGroupe(self::EMBALLAGE_PAR_COLIS);
     /*
      * On obtient les id groupes d'emballages du Colis
      */
     self::$idAnnexeEmballageGroupeDuColis = AnnexeEmballageGroupeModel::getArrayIdAnnexeEmballageGroupe(self::EMBALLAGE_DU_COLIS);
     /*
      * On obtient les id groupes d'emballages de type Palette
      */
     self::$idAnnexeEmballageGroupePalette = AnnexeEmballageGroupeModel::getArrayIdAnnexeEmballageGroupe(self::EMBALLAGE_PALETTE);
     /*
      * On obtient les id emballages de type UVC
      * 
      */
     self::$idAnnexeEmballageUVC = AnnexeEmballageModel::getArrayIdAnnexeEmballage(self::$idAnnexeEmballageGroupeUVC);
     self::$arrayAnnexeEmballageUVC = AnnexeEmballageModel::getArrayAnnexeEmballage(self::$idAnnexeEmballageGroupeUVC);
     /*
      * On obtient les id emballages par Colis
      * 
      */
     self::$idAnnexeEmballageParColis = AnnexeEmballageModel::getArrayIdAnnexeEmballage(self::$idAnnexeEmballageGroupeParColis);
     self::$arrayAnnexeEmballageParColis = AnnexeEmballageModel::getArrayAnnexeEmballage(self::$idAnnexeEmballageGroupeParColis);
     /*
      * On obtient les id emballages du Colis
      * 
      */
     self::$idAnnexeEmballageDuColis = AnnexeEmballageModel::getArrayIdAnnexeEmballage(self::$idAnnexeEmballageGroupeDuColis);
     self::$arrayAnnexeEmballageDuColis = AnnexeEmballageModel::getArrayAnnexeEmballage(self::$idAnnexeEmballageGroupeDuColis);
     /*
      * On obtient les id emballages de type Palette
      * 
      */
     self::$idAnnexeEmballagePalette = AnnexeEmballageModel::getArrayIdAnnexeEmballage(self::$idAnnexeEmballageGroupePalette);
     self::$arrayAnnexeEmballagePalette = AnnexeEmballageModel::getArrayAnnexeEmballage(self::$idAnnexeEmballageGroupePalette);
     /*
      * On obtient les id Fta Conditionnement de type UVC
      * On obtient l' id Annexe Emballage de type UVC selon l'id fta et id fta conditionnement
      * On obtient l' id Annexe Emballage groupe type de type UVC selon l'id fta et id fta conditionnement
      */
     self::$idFtaConditionnemntUVC = FtaConditionnementModel::getIdFtaConditionnementByArrayIdAnnexeEmballageAndIdFtaAndIdEmballageGroupeType(self::$idAnnexeEmballageUVC, $paramIdFta, self::EMBALLAGE_UVC);
     self::$idAnnexeEmballageGroupeTypeUVCByIdFtaConditionnement = FtaConditionnementModel::getIdAnnexeEmballageAndGroupeTypeAndGroupeAndIdFtaConditionnementFromFtaConditionnement(self::$idFtaConditionnemntUVC, $paramIdFta);
     /*
      * On obtient les id Fta Conditionnement par Colis
      * On obtient l' id Annexe Emballagepar Colis selon l'id fta et id fta conditionnement
      * On obtient l' id Annexe Emballage groupe type par Colis selon l'id fta et id fta conditionnement
      */
     self::$idFtaConditionnemntParColis = FtaConditionnementModel::getIdFtaConditionnementByArrayIdAnnexeEmballageAndIdFtaAndIdEmballageGroupeType(self::$idAnnexeEmballageParColis, $paramIdFta, self::EMBALLAGE_PAR_COLIS);
     self::$idAnnexeEmballageGroupeTypeParColisByIdFtaConditionnement = FtaConditionnementModel::getIdAnnexeEmballageAndGroupeTypeAndGroupeAndIdFtaConditionnementFromFtaConditionnement(self::$idFtaConditionnemntParColis, $paramIdFta);
     /*
      * On obtient les id Fta Conditionnement du Colis
      * On obtient l' id Annexe Emballage du Colisselon l'id fta et id fta conditionnement
      * On obtient l' id Annexe Emballage groupe type du Colis selon l'id fta et id fta conditionnement
      */
     self::$idFtaConditionnemntDuColis = FtaConditionnementModel::getIdFtaConditionnementByArrayIdAnnexeEmballageAndIdFtaAndIdEmballageGroupeType(self::$idAnnexeEmballageDuColis, $paramIdFta, self::EMBALLAGE_DU_COLIS);
     self::$idAnnexeEmballageGroupeTypeDuColisByIdFtaConditionnement = FtaConditionnementModel::getIdAnnexeEmballageAndGroupeTypeAndGroupeAndIdFtaConditionnementFromFtaConditionnement(self::$idFtaConditionnemntDuColis, $paramIdFta);
     /*
      * On obtient les id Fta Conditionnement de type Palette
      * On obtient l' id Annexe Emballage de type Palette selon l'id fta et id fta conditionnement
      * On obtient l' id Annexe Emballage groupe type de type Palette selon l'id fta et id fta conditionnement
      */
     self::$idFtaConditionnemntPalette = FtaConditionnementModel::getIdFtaConditionnementByArrayIdAnnexeEmballageAndIdFtaAndIdEmballageGroupeType(self::$idAnnexeEmballagePalette, $paramIdFta, self::EMBALLAGE_PALETTE);
     self::$idAnnexeEmballageGroupeTypePaletteByIdFtaConditionnement = FtaConditionnementModel::getIdAnnexeEmballageAndGroupeTypeAndGroupeAndIdFtaConditionnementFromFtaConditionnement(self::$idFtaConditionnemntPalette, $paramIdFta);
 }
Example #4
0
 /**
 * Cette fonction permet de dupliquer une Fiche Technique Article pour faire les actions suivantes:
 
  $action
  -------
  "totale":       Créer un nouveau dossier en recopiant l'intégralité de la fiche d'origine
  "selective":(pas géré)    Créer un nouveau dossier en ne recopiant que certains processus
  "version":      Créer une nouvelle fiche au sein du même dossier
 
  $option:
  --------
  - Dans le cas d'une duplication "selective", cette variable contient le tableau des id_processus des processus sélectionnés
  - Dans le cas d'une duplication "version", cette variable contient le nouvel état de la FTA (I, A, ...).
  Si vide, alors l'état par défaut sera de type I, initialisation
 
  Retour de la fonction:
  ----------------------
  La fonction renvoi l'id_fta nouvellement créé.
 * @param int $paramIdFta
 * @param string $paramAction
 * @param array $paramOption
 * @param int $paramIdFtaWorkflow
 * @return int
 */
 public static function buildDuplicationFta($paramIdFta, $paramAction, $paramOption, $paramIdFtaWorkflow)
 {
     /*         * ****************************************
               Déclaration et initialisation des variables
              * **************************************** */
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $ftaModelOrig = new FtaModel($paramIdFta);
     //Identifiant de la fiche technique article à dupliquer
     if ($paramOption["id_version_dossier_fta"]) {
         $idFtaVersion = $paramOption["id_version_dossier_fta"];
     } else {
         $idFtaVersion = $ftaModelOrig->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue();
     }
     $idFtaOriginal = $paramIdFta;
     //Sauvegarde de la clef initiale.
     $paramOption["abreviation_etat_destination"];
     //Etat vers lequel doit aller la FTA
     $paramOption["selection_chapitre"];
     //Tableau contenant les id_fta_chapitre des chapitres à corriger
     $paramOption["designation_commerciale_fta"];
     //Nouveau nom commerciale de la FTA
     $paramOption["site_de_production"];
     //Nouveau site de production de la FTA
     $paramOption["nouveau_maj_fta"];
     //Nouveau commentaire de la nouvelle FTA
     $paramOption["id_version_dossier_fta"];
     //Id dossier version maximun
     switch ($paramAction) {
         case "version":
             //récupération de l'identifiant de l'état
             if ($paramOption["abreviation_etat_destination"] == "") {
                 //Si aucun Etat n'a été donné, l'état   Intialisation est choisi par défaut
                 $paramOption["abreviation_etat_destination"] = "I";
             }
             $arrayIdFtaEtat = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaEtatModel::KEYNAME . " FROM " . FtaEtatModel::TABLENAME . " WHERE " . FtaEtatModel::FIELDNAME_ABREVIATION . "='" . $paramOption["abreviation_etat_destination"] . "'");
             foreach ($arrayIdFtaEtat as $value) {
                 $idFtaEtatNew = $value[FtaEtatModel::KEYNAME];
             }
     }
     /*         * *****************************************************************************
               Traitement Principal
              * ****************************************************************************** */
     /*         * *************************
               Traitement de la table "fta"
              * ************************* */
     $idFtaNew = FtaModel::duplicationIdFta($paramIdFta);
     //Récupération de la nouvelle clef
     /*
      * Enregsitrement des mises à jour
      */
     if (!$paramOption["site_de_production"]) {
         $paramOption["site_de_production"] = "NULL";
     }
     DatabaseOperation::execute("UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_DATE_CREATION . "='" . date("Y-m-d") . "', " . FtaModel::FIELDNAME_ACTIF . "=" . 0 . ", " . FtaModel::FIELDNAME_CODE_ARTICLE . "=" . 'NULL' . ", " . FtaModel::FIELDNAME_WORKFLOW . "=" . $paramIdFtaWorkflow . ", " . FtaModel::FIELDNAME_SITE_PRODUCTION . "=" . $paramOption["site_de_production"] . " WHERE " . FtaModel::KEYNAME . "=" . $idFtaNew);
     switch ($paramAction) {
         //Suivant l'action, certaines données sont à mettre à jour
         /*
          * //Création d'un nouveau dossier
          */
         case "totale":
             DatabaseOperation::execute("UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_DOSSIER_FTA . "=" . $idFtaNew . ", " . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . "=" . 0 . ", " . FtaModel::FIELDNAME_ID_FTA_ETAT . "=" . 1 . ", " . FtaModel::FIELDNAME_ARTICLE_AGROLOGIC . "=" . 0 . ", " . FtaModel::FIELDNAME_DATE_ECHEANCE_FTA . "=" . "0000-00-00" . ", " . FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE . "=\"" . $paramOption["designation_commerciale_fta"] . "\", " . FtaModel::FIELDNAME_NOM_ABREGE . "=" . "NULL" . ", " . FtaModel::FIELDNAME_LIBELLE . "=" . "NULL" . ", " . FtaModel::FIELDNAME_CODE_ARTICLE_LDC . "=" . "0" . ", " . FtaModel::FIELDNAME_EAN_COLIS . "=" . "0" . ", " . FtaModel::FIELDNAME_EAN_UVC . "=" . "0" . ", " . FtaModel::FIELDNAME_EAN_PALETTE . "=" . "0" . ", " . FtaModel::FIELDNAME_POURCENTAGE_AVANCEMENT . "=" . "\"0%\"" . ", " . FtaModel::FIELDNAME_CREATEUR . "=" . $idUser . ", " . FtaModel::FIELDNAME_LISTE_ID_FTA_ROLE . "=" . "NULL" . " WHERE " . FtaModel::KEYNAME . "=" . $idFtaNew);
             break;
             /*
              *  //Création d'une nouvelle version de la FTA
              */
         /*
          *  //Création d'une nouvelle version de la FTA
          */
         case "version":
             $idFtaVersion = $idFtaVersion + 1;
             DatabaseOperation::execute("UPDATE " . self::TABLENAME . " SET " . self::FIELDNAME_VERSION_DOSSIER_FTA . "=\"" . $idFtaVersion . "\", " . self::FIELDNAME_ID_FTA_ETAT . "=\"" . $idFtaEtatNew . "\", " . self::FIELDNAME_DATE_ECHEANCE_FTA . "=\"" . $paramOption["date_echeance_fta"] . "\" WHERE " . self::KEYNAME . "=" . $idFtaNew);
             break;
     }
     /*         * ***************************
               Traitement des tables esclaves
              * *************************** */
     /*         * ******************************************************************************************
               Les tables esclaves sont des tables contenant le champ "id_fta" dans la liste de leurs champs
              * ****************************************************************************************** */
     FtaComposantModel::duplicateFtaComposantByIdFta($idFtaOriginal, $idFtaNew);
     FtaConditionnementModel::duplicateFtaConditionnementByIdFta($idFtaOriginal, $idFtaNew);
     FtaSuiviProjetModel::duplicateFtaSuiviProjetByIdFta($idFtaOriginal, $idFtaNew);
     // ClassificationFtaModel::DuplicateFtaClassificationByIdFta($idFtaOriginal, $idFtaNew);
     /*
      - Récupérér les composants de la nouvelle FTA
      - Pour chaque produit (id_fta_nomenclature)
      - Récupérer l'identifiant de la version précédente (noté: [last_id_fta_nomenclature])
      - Sur la FTA précédente, retrouver l'identifiant composant associé à cette ancienne version du produit (noté: [last_id_fta_composant])
      - Sur le nouvelle FTA, retrouver l'identifiant composant associé à ce [last_id_fta_composant]
      - Sur ce nouveau composant, remplacer l'association nomenclature par [id_fta_nomenclature]
     */
     /*         * *****************************************************************************
               Traitement POST
              * ****************************************************************************** */
     switch ($paramAction) {
         case "version":
             $newAbreviationFtaEtat = $paramOption["abreviation_etat_destination"];
             //Nouvel état
             //Récupération de la liste des chapitres a dévalider
             $selection_chapitre = $paramOption["selection_chapitre"];
             $paramOption["no_message_ecran"] = 1;
             $paramOption["mail_gestionnaire"] = 1;
             if ($selection_chapitre) {
                 foreach ($selection_chapitre as $id_fta_chapitre) {
                     //Correction des chapitres
                     $paramOption["correction_fta_suivi_projet"] = $paramOption["nouveau_maj_fta"];
                     FtaChapitreModel::buildCorrectionChapitre($idFtaNew, $id_fta_chapitre, $paramOption);
                 }
             }
             /*
              * Cette fonction est mise en pause car elle nécessite la création de processus cycle pour chaque workflow,
              * questionnement à boris.
              */
             if ($newAbreviationFtaEtat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION and !$selection_chapitre) {
                 //Suppression des validations
                 //Recherche des chapitres affectés au cycle de vie correspondant à l'état
                 $arrayCycle = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . "," . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " FROM " . FtaProcessusCycleModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . " WHERE " . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . "='" . $newAbreviationFtaEtat . "' AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . "=" . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . "=" . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . "=" . $paramIdFtaWorkflow);
                 if ($arrayCycle) {
                     //Si ce cycle de vie necessite l'intervention de processus, alors                            //On supprime la validation du suivi de projet des processus concernés
                     $req = "DELETE FROM " . FtaSuiviProjetModel::TABLENAME . " WHERE ";
                     $or = " ";
                     foreach ($arrayCycle as $rowsCycle) {
                         //Vérification qu'il ne s'agissent pas du processus initiateur du nouveau cycle de vie
                         $arrayFirst = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaSuiviProjetModel::KEYNAME . " FROM " . FtaProcessusCycleModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . ", " . FtaSuiviProjetModel::TABLENAME . " WHERE " . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . "='" . $newAbreviationFtaEtat . "' AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . "=" . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . " AND " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "=" . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " AND " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "' " . " AND " . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . "='" . $rowsCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT] . "' ");
                         if ($arrayFirst) {
                             //Si il ne s'agit pas du chapitre appartenant au processus initial, on supprime
                             $req .= $or . "(" . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsCycle[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "' AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "') ";
                             $or = " OR ";
                         } else {
                             //Sinon, Supprimer uniquement la validation et on notifie les chapitres
                             $req_update = "UPDATE " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "=''" . ", " . FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET . "=''" . ", " . FtaSuiviProjetModel::FIELDNAME_DATE_DEMARRAGE_CHAPITRE_FTA_SUIVI_PROJET . "=''" . ", " . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . "='1' " . " WHERE (" . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsCycle[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "' AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "') ";
                             DatabaseOperation::execute($req_update);
                         }
                     }
                     DatabaseOperation::execute($req);
                 }
                 //Fin de Recherche des notifications relatives aux processus trouvées
             }
             //Fin de la dévalidation suite à une initialisation
             //Vérrouillage des chapitre ne correspondant pas au cycle de vie.
             if ($newAbreviationFtaEtat == "P") {
                 //Condition where
                 $where = "";
                 //Récupération des chapitres concernés par ce cycle de vie
                 $arrayCycle2 = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . " FROM " . FtaProcessusCycleModel::TABLENAME . " WHERE " . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . " = '" . $newAbreviationFtaEtat . "' ");
                 foreach ($arrayCycle2 as $rowsCycle2) {
                     $where .= " AND " . FtaProcessusModel::TABLENAME . "." . FtaProcessusModel::KEYNAME . " <> " . $rowsCycle2[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT];
                 }
                 //Récupération des chapitres à vérrouiller
                 $arrayChapitreVerrouiller = 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_CHAPITRE . " ) " . " AND ( (  " . FtaProcessusModel::TABLENAME . "." . FtaProcessusModel::KEYNAME . " <>1 {$where} ) )" . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . " = " . $paramIdFtaWorkflow);
                 foreach ($arrayChapitreVerrouiller as $rowsChapitreVerrouiller) {
                     //Le suivi existe-il déjà ?
                     $arrayFtaSuiviProjet = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaSuiviProjetModel::KEYNAME . ", " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . " FROM " . FtaSuiviProjetModel::TABLENAME . " WHERE " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "' AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsChapitreVerrouiller[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "' ");
                     if ($arrayFtaSuiviProjet) {
                         //Mise à jour de l'existant si il n'y a pas de vérrou existant
                         foreach ($arrayFtaSuiviProjet as $rowsFtaSuiviProjet) {
                             if (!$rowsFtaSuiviProjet[FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET]) {
                                 $idFtaSuiviProjet = $rowsFtaSuiviProjet[FtaSuiviProjetModel::KEYNAME];
                                 $req = "UPDATE " . FtaSuiviProjetModel::TABLENAME . "SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "='-1' " . "WHERE " . FtaSuiviProjetModel::KEYNAME . "='" . $idFtaSuiviProjet . "' ";
                                 DatabaseOperation::execute($req);
                             }
                         }
                     } else {
                         //Création des suivi
                         $req = "INSERT " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsChapitreVerrouiller[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "', " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "', " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "='-1' ";
                         DatabaseOperation::execute($req);
                     }
                 }
             }
             break;
             //Fin du post-traitement dans le cas d'une duplication de type "version"
         //Fin du post-traitement dans le cas d'une duplication de type "version"
         case "totale":
             $newAbreviationFtaEtat = $paramOption["abreviation_etat_destination"];
             //Nouvel état
             //Suppression de tout le suivi de dossier
             $req = "DELETE FROM " . FtaSuiviProjetModel::TABLENAME . " WHERE " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "' ";
             DatabaseOperation::execute($req);
             break;
     }
     //Fin du post-traitement dans le cas d'une duplication de type "totale"
     return $idFtaNew;
 }
 /**
  * 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_tarif':
     //Variables passées en URL
     $id_fta_tarif;
     $paramIdFta;
     mysql_table_operation('fta_tarif', 'delete');
     //header ('Location: modification_fiche.php?id_fta=$id_fta&id_fta_chapitre_encours=$id_fta_chapitre_encours&synthese_action=$synthese_action');
     break;
 case 'suppression_conditionnement':
     //Variables passées en URL
     $id_fta_conditionnement = Lib::getParameterFromRequest(FtaConditionnementModel::KEYNAME);
     /*
      * Suppression du conditionnement
      */
     FtaConditionnementModel::deleteFtaConditionnement($id_fta_conditionnement);
     break;
 case 'suppression_palettisation':
     //Variables passées en URL
     //        $paramIdFta;
     //        $id_fta_conditionnement;
     //        mysql_table_operation('fta_conditionnement', 'delete');
     //header ('Location: modification_fiche.php?id_fta=$id_fta&id_fta_chapitre_encours=$id_fta_chapitre_encours&synthese_action=$synthese_action');
     break;
 case 'suppression_nomenclature':
     //Suppression de la nomenclature
     //$id_fta_nomenclature;
     //recette_nomenclature_suppression($id_fta_nomenclature);
     //        mysql_table_operation('fta_composant', 'delete');
     //header ('Location: modification_fiche.php?id_fta=$id_fta&id_fta_chapitre_encours=$id_fta_chapitre_encours&synthese_action=$synthese_action');
     break;
         */
        //Récuperation des données
        $nbCoucheFtaConditionnement = Lib::getParameterFromRequest(FtaConditionnementModel::FIELDNAME_NOMBRE_COUCHE_FTA_CONDITIONNEMENT);
        //Une seule couche par UVC
        $hauteurFtaConditionnement = $annexeEmballageModel->getDataField(AnnexeEmballageModel::FIELDNAME_HAUTEUR_ANNEXE_EMBALLAGE)->getFieldValue();
        $longeurFtaConditionnement = $annexeEmballageModel->getDataField(AnnexeEmballageModel::FIELDNAME_LONGUEUR_ANNEXE_EMBALLAGE)->getFieldValue();
        $largeurFtaConditionnement = $annexeEmballageModel->getDataField(AnnexeEmballageModel::FIELDNAME_LARGEUR_ANNEXE_EMBALLAGE)->getFieldValue();
        $poidsFtaConditionnement = $annexeEmballageModel->getDataField(AnnexeEmballageModel::FIELDNAME_POIDS_ANNEXE_EMBALLAGE)->getFieldValue();
        //Poids des emballages qui ont peuvent varier selon les articles (comme des films)
        $qteCoucheFtaConditionnement = Lib::getParameterFromRequest(FtaConditionnementModel::FIELDNAME_QUANTITE_PAR_COUCHE_FTA_CONDITIONNEMENT);
        //Quantité par UVC
        if ($idAnnexeEmballageGroupeType == 3) {
            $qteCoucheFtaConditionnement = $annexeEmballageModel->getDataField(AnnexeEmballageModel::FIELDNAME_QUANTITE_PAR_COUCHE_ANNEXE_EMBALLAGE)->getFieldValue();
            $nbCoucheFtaConditionnement = $annexeEmballageModel->getDataField(AnnexeEmballageModel::FIELDNAME_NOMBRE_COUCHE_ANNEXE_EMBALLAGE)->getFieldValue();
        }
        FtaConditionnementModel::addFtaConditionnement($idFta, $idAnnexeEmballage, $idAnnexeEmballageGroupe, $idAnnexeEmballageGroupeType, $hauteurFtaConditionnement, $longeurFtaConditionnement, $largeurFtaConditionnement, $poidsFtaConditionnement, $nbCoucheFtaConditionnement, $qteCoucheFtaConditionnement);
        header('Location: modification_fiche.php?id_fta=' . $idFta . '&id_fta_chapitre_encours=' . $idFtaChapitreEncours . '&synthese_action=encours' . '&id_fta_etat=' . $idFtaEtat . '&abreviation_fta_etat=' . $abreviationFtaEtat . '&id_fta_role=' . $idFtaRole);
        /**
         * Version avec le rewrite
         */
        //        header('Location: modification_fiche-' . $idFta . '-' . $idFtaChapitreEncours . '-encours'. '-' . $idFtaEtat . '-' . $abreviationFtaEtat.'-' . $comeback  . '-' . $idFtaRole .'.html');
        break;
        /*     * **********
              Fin de switch
             * ********** */
}
//include ('./action_bs.php');
//include ('./action_sm.php');
?>