/**
  * On vérifie si la chaîne contient un caractère spécial 
  * @return boolean
  */
 function isValide()
 {
     $result = TRUE;
     $valueToTest = $this->getValueTotest();
     $checkCaractereNumber = FtaController::isStringHasSpecialCaracter($valueToTest, self::LISTE_DES_CARACTERE_SPECIAUX_LETTRE_SEUL);
     if ($checkCaractereNumber) {
         $result = FALSE;
     }
     return $result;
 }
 /**
  * On vérifie si la chaîne est en majuscules
  * Les majuscules avec accent ne sont pas des majuscules pour la fonction
  * @return boolean
  */
 function isValide()
 {
     $result = TRUE;
     $valueToTest = $this->getValueTotest();
     $checkCaractereNumber = FtaController::isStringIsUperCase($valueToTest);
     if (!$checkCaractereNumber) {
         $result = FALSE;
     }
     return $result;
 }
Пример #3
0
function correctionDateBDD($paramValeurDate)
{
    $checkValue = FtaController::isCheckDateFormat($paramValeurDate);
    if ($checkValue) {
        /**
         * Extraction de l'année
         * Format Français
         */
        $annee = substr($paramValeurDate, 6, 9);
        $mois = substr($paramValeurDate, 3, 2);
        $jours = substr($paramValeurDate, 0, 2);
    } else {
        /**
         * Extraction de l'année
         * Format Anglais
         */
        $annee = substr($paramValeurDate, 0, 4);
        $mois = substr($paramValeurDate, 5, 2);
        $jours = substr($paramValeurDate, 8, 2);
    }
    $return = $annee . "-" . $mois . "-" . $jours;
    return $return;
}
 /**
  * On vérifie si la  code douane de la Fta a été modifié
  * Et on récupère les 8 premiers caractères 
  */
 function transformCodeDouane()
 {
     $checkDiff = $this->getFtaModel()->getDataField(FtaModel::FIELDNAME_CODE_DOUANE_FTA)->isFieldDiff();
     if ($checkDiff or $this->getActionProposal() == self::CREATE) {
         $codeDouaneTmp = $this->getFtaModel()->getDataField(FtaModel::FIELDNAME_CODE_DOUANE_FTA)->getFieldValue();
         $codeDouaneValue = FtaController::getFirstStringNumber($codeDouaneTmp, self::LIMIT_NUMBER_COD_NDP);
         $this->setXMLArcadiaCodeDouane($codeDouaneValue);
     }
 }
Пример #5
0
 /**
  * Affiche la date d'échéance
  * @param boolean $paramUpdateFta
  * @return string
  */
 function getHtmlDateEcheance($paramUpdateFta)
 {
     $htmlInputCalendar = new HtmlInputCalendar();
     $dataFieldDateEcheance = $this->getDataField(self::FIELDNAME_DATE_ECHEANCE_FTA);
     /**
      * Contrôle de la date d'échéance
      */
     $dateEcheValue = $this->checkDateEcheance($paramUpdateFta);
     /**
      * Changement du format de date
      */
     if (!$this->getIsEditable()) {
         $dateEcheValue = FtaController::changementDuFormatDeDateFR($dateEcheValue);
     }
     /**
      * Mise en forme
      */
     $HtmlTableName = self::TABLENAME . '_' . self::FIELDNAME_DATE_ECHEANCE_FTA . '_' . $this->getKeyValue();
     $htmlInputCalendar->setIsEditable($this->getIsEditable());
     $htmlInputCalendar->initAbstractHtmlInput($HtmlTableName, $dataFieldDateEcheance->getFieldLabel(), $dateEcheValue, $dataFieldDateEcheance->isFieldDiff());
     $htmlInputCalendar->getEventsForm()->setOnChangeWithAjaxAutoSave($dataFieldDateEcheance->getTableName(), $dataFieldDateEcheance->getKeyName(), $dataFieldDateEcheance->getKeyValue(), $dataFieldDateEcheance->getFieldName());
     $htmlInputCalendar->setHtmlResultOnClick();
     return $htmlInputCalendar->getHtmlResult();
 }
 /**
  * On affiche la liste des gammes famille budget associé à une classification
  * @param object $paramFtaModel FtaModel
  * @param int $paramIdClassificationFta2
  * @param boolean $paramIsEditable
  * @return string
  */
 public static function getHtmlClassificationGammeFamilleBudget(FtaModel $paramFtaModel, $paramIdClassificationFta2, $paramIsEditable)
 {
     $htmlList = new HtmlListSelect();
     $paramFtaModel->setDataFtaTableToCompare();
     $idMarque = ClassificationFta2Model::getIdClassificationTypeByTypeNameAndIdClassificationFta2($paramIdClassificationFta2, ClassificationFta2Model::FIELDNAME_ID_MARQUE);
     $dataFieldIdArcadiaGammeFamilleBudgetTMP = $paramFtaModel->getDataField(FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET);
     $arrayGammeFamilleBudget = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . ArcadiaGammeFamilleBudgetModel::TABLENAME . '.' . ArcadiaGammeFamilleBudgetModel::KEYNAME . ', CONCAT_WS(  \' - \',' . ArcadiaGammeFamilleBudgetModel::TABLENAME . '.' . ArcadiaGammeFamilleBudgetModel::KEYNAME . ',' . ArcadiaGammeFamilleBudgetModel::FIELDNAME_NOM_ARCADIA_GAMME_FAMILLE_BUDGET . ') FROM ' . ArcadiaGammeFamilleBudgetModel::TABLENAME . ',' . self::TABLENAME . ' WHERE ' . ArcadiaGammeFamilleBudgetModel::TABLENAME . '.' . ArcadiaGammeFamilleBudgetModel::KEYNAME . ' = ' . self::TABLENAME . '.' . self::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET . ' AND ' . self::FIELDNAME_ID_MARQUE . '=' . $idMarque . ' ORDER BY ' . ArcadiaGammeFamilleBudgetModel::KEYNAME);
     /**
      * Si le chapitre est editable alors on vérifie si 
      * pour une classification nous avons plusieurs gamme famille budget associé
      * Si nous avons plusieur résultat alors on affiche la liste déroulante 
      * sinon on enregistre l'unique  résutat 
      */
     //        if ($paramIsEditable == Chapitre::EDITABLE) {
     //            if (count($arrayGammeFamilleBudget) > "1") {
     //                $paramIsEditable = Chapitre::EDITABLE;
     //            } else {
     //                /**
     //                 * Enregistrement de la donnée gamme famille budget
     //                 */
     //                if ($arrayGammeFamilleBudget) {
     //                    foreach ($arrayGammeFamilleBudget as $key => $value) {
     //                        $ftaModel->getDataField(FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET)->setFieldValue($key);
     //                        $ftaModel->saveToDatabase();
     //                    }
     //                }
     //                $paramIsEditable = Chapitre::NOT_EDITABLE;
     //            }
     //        }
     $htmlList->setArrayListContent($arrayGammeFamilleBudget);
     /**
      * On vérifie si la donnée en BDD se trouve dans le tableau
      * Sinon alors on vide la donnée de la BDD
      */
     $dataFieldIdArcadiaGammeFamilleBudget = FtaController::checkDataInArrayKeyList($dataFieldIdArcadiaGammeFamilleBudgetTMP, $arrayGammeFamilleBudget);
     $HtmlTableName = FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET . '_' . $paramFtaModel->getKeyValue();
     /**
      * Vérification des règle de validation
      */
     $dataFieldIdArcadiaGammeFamilleBudget->checkValidationRules();
     if ($dataFieldIdArcadiaGammeFamilleBudget->getDataValidationSuccessful() == TRUE) {
         $htmlList->setIsWarningMessage($dataFieldIdArcadiaGammeFamilleBudget->getDataValidationSuccessful());
         $paramFtaModel->setDataValidationSuccessfulToTrue();
     } else {
         $htmlList->setIsWarningMessage($dataFieldIdArcadiaGammeFamilleBudget->getDataValidationSuccessful());
         $htmlList->setWarningMessage($dataFieldIdArcadiaGammeFamilleBudget->getDataWarningMessage());
         $paramFtaModel->setDataValidationSuccessfulToFalse();
     }
     $htmlList->getAttributes()->getName()->setValue(FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET);
     $htmlList->setLabel(DatabaseDescription::getFieldDocLabel(FtaModel::TABLENAME, FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET));
     $htmlList->setIsEditable($paramIsEditable);
     $htmlList->initAbstractHtmlSelect($HtmlTableName, $htmlList->getLabel(), $dataFieldIdArcadiaGammeFamilleBudget->getFieldValue(), $dataFieldIdArcadiaGammeFamilleBudget->isFieldDiff(), $htmlList->getArrayListContent(), $htmlList->getIsWarningMessage(), $htmlList->getWarningMessage());
     $htmlList->getEventsForm()->setOnChangeWithAjaxAutoSave(FtaModel::TABLENAME, FtaModel::KEYNAME, $paramFtaModel->getKeyValue(), FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET);
     /**
      * Description d'un champ
      */
     $htmlList->setHelp(IntranetColumnInfoModel::getFieldDesc($dataFieldIdArcadiaGammeFamilleBudget->getTableName(), $dataFieldIdArcadiaGammeFamilleBudget->getFieldName(), $dataFieldIdArcadiaGammeFamilleBudget->getFieldLabel(), $htmlList));
     $listeGammeFamilleBudget = $htmlList->getHtmlResult();
     return $listeGammeFamilleBudget;
 }
 /**
  * On affiche la liste des raccourcis de classification associé à une classification
  * @param objet $paramFtaModel
  * @param int $paramIdClassificationFta2
  * @param boolean $paramIsEditable
  * @return string
  */
 public static function getHtmlClassificationRaccourcisAssociation(FtaModel $paramFtaModel, $paramIdClassificationFta2, $paramIsEditable)
 {
     $htmlList = new HtmlListSelect();
     $paramFtaModel->setDataFtaTableToCompare();
     $dataFieldIdClassificationRaccourcisTMP = $paramFtaModel->getDataField(FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS);
     $arrayClassificationRaccourcis = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . ClassificationRaccourcisModel::TABLENAME . '.' . ClassificationRaccourcisModel::KEYNAME . ',' . ClassificationRaccourcisModel::TABLENAME . '.' . ClassificationRaccourcisModel::FIELDNAME_NOM_CLASSIFICATION_RACCOURCIS . ' FROM ' . ClassificationRaccourcisModel::TABLENAME . ',' . self::TABLENAME . ' WHERE ' . ClassificationRaccourcisModel::TABLENAME . '.' . ClassificationRaccourcisModel::KEYNAME . ' = ' . self::TABLENAME . '.' . self::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS . ' AND ' . self::FIELDNAME_ID_FTA_CLASSIFICATION2 . '=' . $paramIdClassificationFta2 . ' ORDER BY ' . ClassificationRaccourcisModel::FIELDNAME_NOM_CLASSIFICATION_RACCOURCIS);
     /**
      * Si le chapitre est editable alors on vérifie si 
      * pour une classification nous avons plusieurs raccourcis de classification associé
      * Si nous avons plusieur résultat alors on affiche la liste déroulante 
      * sinon on enregistre l'unique  résutat 
      */
     //        if ($paramIsEditable == Chapitre::EDITABLE) {
     //            if (count($arrayClassificationRaccourcis) > "1") {
     //                $paramIsEditable = Chapitre::EDITABLE;
     //            } else {
     //                /**
     //                 * Enregistrement de la donnée raccourcis de classification
     //                 */
     //                if ($arrayClassificationRaccourcis) {
     //                    foreach ($arrayClassificationRaccourcis as $key => $value) {
     //                        $ftaModel->getDataField(FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS)->setFieldValue($key);
     //                        $ftaModel->saveToDatabase();
     //                    }
     //                }
     //                $paramIsEditable = Chapitre::NOT_EDITABLE;
     //            }
     //        }
     $htmlList->setArrayListContent($arrayClassificationRaccourcis);
     /**
      * On vérifie si la donnée en BDD se trouve dans le tableau
      * Sinon alors on vide la donnée de la BDD
      */
     $dataFieldIdClassificationRaccourcis = FtaController::checkDataInArrayKeyList($dataFieldIdClassificationRaccourcisTMP, $arrayClassificationRaccourcis);
     $HtmlTableName = FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS . '_' . $paramFtaModel->getKeyValue();
     /**
      * Vérification des règle de validation
      */
     $dataFieldIdClassificationRaccourcis->checkValidationRules();
     if ($dataFieldIdClassificationRaccourcis->getDataValidationSuccessful() == TRUE) {
         $htmlList->setIsWarningMessage($dataFieldIdClassificationRaccourcis->getDataValidationSuccessful());
         $paramFtaModel->setDataValidationSuccessfulToTrue();
     } else {
         $htmlList->setIsWarningMessage($dataFieldIdClassificationRaccourcis->getDataValidationSuccessful());
         $htmlList->setWarningMessage($dataFieldIdClassificationRaccourcis->getDataWarningMessage());
         $paramFtaModel->setDataValidationSuccessfulToFalse();
     }
     $htmlList->setSelectedValue($dataFieldIdClassificationRaccourcis->getFieldValue());
     $htmlList->getAttributes()->getName()->setValue(FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS);
     $htmlList->setLabel(DatabaseDescription::getFieldDocLabel(ClassificationRaccourcisAssociationModel::TABLENAME, ClassificationRaccourcisAssociationModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS));
     $htmlList->setIsEditable($paramIsEditable);
     $htmlList->initAbstractHtmlSelect($HtmlTableName, $htmlList->getLabel(), $dataFieldIdClassificationRaccourcis->getFieldValue(), $dataFieldIdClassificationRaccourcis->isFieldDiff(), $htmlList->getArrayListContent(), $htmlList->getIsWarningMessage(), $htmlList->getWarningMessage());
     $htmlList->getEventsForm()->setOnChangeWithAjaxAutoSave(FtaModel::TABLENAME, FtaModel::KEYNAME, $paramFtaModel->getKeyValue(), FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS);
     /**
      * Description d'un champ
      */
     $htmlList->setHelp(IntranetColumnInfoModel::getFieldDesc($dataFieldIdClassificationRaccourcis->getTableName(), $dataFieldIdClassificationRaccourcis->getFieldName(), $dataFieldIdClassificationRaccourcis->getFieldLabel(), $htmlList));
     $listeClassificationRaccourcis = $htmlList->getHtmlResult();
     return $listeClassificationRaccourcis;
 }
Пример #8
0
function changementDuFormatDeDate($valeur_date)
{
    /*
     Dictionnaire des variables:
    * **************************
     $valeur_date: contient la date au format AAAA-MM-JJ
    */
    $checkValue = FtaController::isCheckDateFormat($valeur_date);
    if ($checkValue) {
        /**
         * Extraction de l'année
         * Format Français
         */
        $annee = substr($valeur_date, 6, 9);
        $mois = substr($valeur_date, 3, 2);
        $jours = substr($valeur_date, 0, 2);
    } else {
        /**
         * Extraction de l'année
         * Format Anglais
         */
        $annee = substr($valeur_date, 0, 4);
        $mois = substr($valeur_date, 5, 2);
        $jours = substr($valeur_date, 8, 2);
    }
    $return = $jours . "/" . $mois . "/" . $annee;
    return $return;
}
Пример #9
0
 /**
  * Affiche une message de confirmation que les données ont bien été envoyé
  * @param Fta2ArcadiaTransactionModel $paramFta2ArcadiaTransactionModel
  * @return string
  */
 function getMessageSendDataToArcadia(Fta2ArcadiaTransactionModel $paramFta2ArcadiaTransactionModel)
 {
     /**
      * Utilisateur ayant envoyer la donnée
      */
     $idUser = $paramFta2ArcadiaTransactionModel->getDataField(Fta2ArcadiaTransactionModel::FIELDNAME_ID_USER)->getFieldValue();
     $userModel = new UserModel($idUser);
     $prenomNom = $userModel->getPrenomNom();
     /**
      * Date d'envoie du fichier
      */
     $dateEnvoitmp = $paramFta2ArcadiaTransactionModel->getDataField(Fta2ArcadiaTransactionModel::FIELDNAME_DATE_ENVOI)->getFieldValue();
     $dateEnvoi = FtaController::changementDuFormatDeDateFR($dateEnvoitmp);
     $message = '<td class="contenu"><center>' . UserInterfaceMessage::FR_ARCADIA_SEND_DATA_MESSAGE . ' par ' . $prenomNom . ' le ' . $dateEnvoi . ' </center></td>' . $this->getMessageSendDataToArcadiaAgainAndCancel();
     return $message;
 }
Пример #10
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;
 }
 public static function getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $paramArrayByColumn)
 {
     $arrayByWorkflow = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete("SELECT " . self::FIELDNAME_ID_FTA_CHAPITRE . " FROM " . self::TABLENAME . " WHERE " . self::FIELDNAME_ID_FTA_WORKFLOW . "=" . $paramIdFtaWorkflow);
     $value = FtaController::getFirstValueArrayInterset($paramArrayByColumn, $arrayByWorkflow);
     return $value;
 }
Пример #12
0
 /**
  * On vérifie si la donnée en BDD se trouve dans le tableau
  * Sinon alors on vide la donnée de la BDD
  * @param DatabaseDataField $paramDataField
  * @param array $paramArray
  * @return \DatabaseDataField
  */
 public static function checkDataInArrayKeyList(DatabaseDataField $paramDataField, $paramArray)
 {
     $checkDataResgister = FtaController::isValueIsInKeyArray($paramDataField->getFieldValue(), $paramArray);
     if (!$checkDataResgister) {
         $paramDataField->setFieldValue("");
     }
     return $paramDataField;
 }
Пример #13
0
 /**
  * Duplication d'un Composant
  * @param int $paramIdFtaComposant
  * @return int
  */
 public static function duplicationIdFtaComposant($paramIdFtaComposant)
 {
     $key = FtaController::duplicateId(self::TABLENAME, $paramIdFtaComposant);
     return $key;
 }
Пример #14
0
 $val_nut_acide_gras = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_ACIDE_GRAS)->getFieldValue();
 $NOM_val_nut_acide_gras = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_ACIDE_GRAS)->getFieldLabel();
 $val_nut_glucide = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_GLUCIDE)->getFieldValue();
 $NOM_val_nut_glucide = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_GLUCIDE)->getFieldLabel();
 $val_nut_sucre = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SUCRE)->getFieldValue();
 $NOM_val_nut_sucre = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SUCRE)->getFieldLabel();
 $val_nut_proteine = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_PROTEINE)->getFieldValue();
 $NOM_val_nut_proteine = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_PROTEINE)->getFieldLabel();
 $val_nut_sel = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SEL)->getFieldValue();
 $NOM_val_nut_sel = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SEL)->getFieldLabel();
 /**
  * Détermination de l'affichage des valeurs nutritionnelles
  */
 $arrayValNutri = array($val_nut_kcal, $val_nut_kj, $val_nut_mat_grasse, $val_nut_acide_gras, $val_nut_glucide, $val_nut_sucre, $val_nut_proteine, $val_nut_sel);
 foreach ($arrayValNutri as $value) {
     if (FtaController::checkValNutri($value)) {
         $checkNutri = TRUE;
     }
 }
 /**
  * Verification que l'on est toutes les données nécéssaire
  */
 if ($poids_fta_compositionTmp and $quantite_fta_composition) {
     //            $taux_poids_composant = ($poids_fta_compositionTmp * $quantite_fta_composition) / $poids_net_colis;
     //            $temp_taux = round($taux_poids_composant / 10, 2);
     $poids_fta_composition = round($poids_fta_compositionTmp, 0);
     //Création de la première colonne
     //Désignation Commerciale
     //      $champ="designation_commerciale_fta";
     //      $title = "";
     //      $data = $nom_fta_composition;
 if ($rowsString) {
     $stringCorrige = "";
     //Convertion du text en majuscule sans accents
     //                    $string = FtaController::stringToUperCaseNoAccent($rowsString);
     //Récupération des mots du DICO des listes d'allergènes
     $arrayValues = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . AnnexeListeAllergeneDicoModel::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO . " FROM " . AnnexeListeAllergeneDicoModel::TABLENAME);
     /**
      * Remplacement des valeurs
      */
     if ($arrayValues) {
         foreach ($arrayValues as $rowsValues) {
             $valueToTest = $rowsValues[AnnexeListeAllergeneDicoModel::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO];
             if ($stringCorrige) {
                 $rowsString = $stringCorrige;
             }
             $mot = FtaController::stringToLowerCase($valueToTest);
             //Remplace tous les caractères du text
             //                            $stringCorrige = str_replace($mot, $valueToTest, $rowsString);
             $stringCorrige = preg_replace('/\\b' . $mot . '\\b/i', $valueToTest, $rowsString, 1);
         }
     }
     /**
      * Enregistrement en BDD
      */
     switch ($key) {
         case "0":
             $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_INGREDIENT_FTA_COMPOSITION)->setFieldValue($stringCorrige);
             break;
         case "1":
             $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_INGREDIENT_FTA_COMPOSITION1)->setFieldValue($stringCorrige);
             break;
Пример #16
0
    $annee_date_echeance_fta = substr($date_echeance_fta, 0, 4);
    $mois_date_echeance_fta = substr($date_echeance_fta, 5, 2);
    $jour_date_echeance_fta = substr($date_echeance_fta, 8, 2);
}
//$jour_restant = mktime(0,0,0,$mois_date_echeance_processus - date('m'), $jour_date_echeance_processus - date('d'), $annee_date_echeance_processus - date ('Y'));
$echeance_timestamp = mktime(0, 0, 0, $mois_date_echeance_fta, $jour_date_echeance_fta, $annee_date_echeance_fta);
$today_timestamp = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$seconde_restante = $echeance_timestamp - $today_timestamp;
$jour_restant = round($seconde_restante / (3600 * 24), 2);
if ($jour_restant < 0) {
    $txt_echeance = 'échéance dépassée de';
    $jour_restant = abs($jour_restant);
} else {
    $txt_echeance = 'reste';
}
$dateEcheanceFtaFr = FtaController::changementDuFormatDeDateFR($date_echeance_fta);
$HTML_echeance_fta = 'A valider avant le: ' . $dateEcheanceFtaFr . ' <i>(' . $txt_echeance . ' ' . $jour_restant . 'jours)</i>';
/*
 Sélection du mode d'affichage
*/
switch ($output) {
    /*     * ***********
          Début Code PDF
         * *********** */
    case 'pdf':
        //Constructeur
        $pdf = new XFPDF();
        //Déclaration des variables de formatages
        $police_standard = 'Arial';
        $t1_police = $police_standard;
        $t1_style = 'B';
Пример #17
0
 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;
 }
 /**
  * On obtient les corrections de chaque chapitres
  * @param int $paramIdFta
  * @param int $paramIdFtaWorkflow
  * @return int
  */
 public static function getAllCorrectionsFromChapitres($paramIdFta, $paramIdFtaWorkflow)
 {
     $arrayCommentaireAllChapitre = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . "," . UserModel::FIELDNAME_PRENOM . "," . UserModel::FIELDNAME_NOM . "," . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "," . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET . " FROM " . FtaSuiviProjetModel::TABLENAME . ", " . UserModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . " WHERE ( " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . " = " . UserModel::TABLENAME . "." . UserModel::KEYNAME . " ) " . " AND " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA . " = " . $paramIdFta . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . " = " . $paramIdFtaWorkflow . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " = " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . " ORDER BY " . FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET . " DESC ");
     if ($arrayCommentaireAllChapitre) {
         foreach ($arrayCommentaireAllChapitre as $rowsCommentaireAllChapitre) {
             if ($rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]) {
                 $idFtaChapitre = $rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE];
                 $dateDeValidation = $rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET];
                 $ftaChapitreModel = new FtaChapitreModel($idFtaChapitre);
                 $nomChapitre = $ftaChapitreModel->getDataField(FtaChapitreModel::FIELDNAME_NOM_USUEL_CHAPITRE)->getFieldValue();
                 $action = "Chapitre " . $nomChapitre;
                 $nomPrenom = $rowsCommentaireAllChapitre[UserModel::FIELDNAME_PRENOM] . " " . $rowsCommentaireAllChapitre[UserModel::FIELDNAME_NOM];
                 $comment = $rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET];
                 $return .= FtaController::getComment($action, $nomPrenom, $comment, $dateDeValidation) . "\n";
             }
         }
         $return = "<tr class=contenu><td> Récapitulatif des corrections</td><td>" . $return . "</td></tr>";
     } else {
         $return = "<tr class=contenu><td> Récapitulatif des corrections</td><td></td></tr>";
     }
     return str_replace("  ", "&nbsp;&nbsp;", nl2br($return));
 }
$idFtaEtat = Lib::getParameterFromRequest(FtaEtatModel::KEYNAME);
$abreviationFtaEtat = Lib::getParameterFromRequest(FtaEtatModel::FIELDNAME_ABREVIATION);
$comeback = Lib::getParameterFromRequest(FtaEtatModel::KEYNAME);
$createurFtaOLD = Lib::getParameterFromRequest('createur_fta');
$createurFtaNEW = Lib::getParameterFromRequest(FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_CREATEUR);
/**
 * Initialisation
 */
$globalConfig = new GlobalConfig();
$idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
$nomPrenomConnect = $globalConfig->getAuthenticatedUser()->getPrenomNom();
$userModelOLD = new UserModel($createurFtaOLD);
$userModelNEW = new UserModel($createurFtaNEW);
$nomWorkflowOLD = $userModelOLD->getPrenomNom();
$nomWorkflowNEW = $userModelNEW->getPrenomNom();
$commentaire = FtaController::getCommentGestionnaireChange($nomWorkflowOLD, $nomWorkflowNEW, $nomPrenomConnect);
switch ($action) {
    /*
     S'il n'y a pas d'actions défini
    */
    case 'valider':
        if ($createurFtaOLD != $createurFtaNEW) {
            $modelFta = new FtaModel($paramIdFta);
            /**
             * Commentaire de modification du gestionnaire de la Fta
             */
            $commentaire_maj_fta = $modelFta->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->getFieldValue();
            $modelFta->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->setFieldValue($commentaire . $commentaire_maj_fta);
            $modelFta->getDataField(FtaModel::FIELDNAME_CREATEUR)->setFieldValue($createurFtaNEW);
            $modelFta->saveToDatabase();
            //Redirection
 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") {
             $modelFtaSuiviProjet->getDataField(FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET)->setFieldValue(date("Y-m-d H:i:s"));
             $modelFtaSuiviProjet->setSigned($paramSignatureValidationSuiviProjet);
             $modelFtaSuiviProjet->saveToDatabase();
             $modelFta->manageFtaPrimaireSecondaire(FtaEtatModel::ID_VALUE_MODIFICATION, FtaVerrouillageChampsModel::CHANGE_STATE_FALSE);
         }
     } else {
         $titre = 'Informations';
         $message = 'Vous ne pouvez pas valider le chapitre une information est manquante ou incorrecte,<br>' . 'mise en évidence en Rouge.';
         Lib::showMessage($titre, $message);
 /**
  * 
  * @param type $paramIdFta
  */
 public static function duplicateFtaConditionnementByIdFta($paramIdFtaOrig, $paramIdFtaNew)
 {
     FtaController::duplicateWithNewId(self::TABLENAME, $paramIdFtaOrig, $paramIdFtaNew);
 }
 /**
  * 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;
 }
 /**
  * Affiche le tableau de récapitulatif des droits d'accès sur le module Fta
  * @return string
  */
 public static function getHtmlArrayAccesRightUser()
 {
     /**
      * Entête du tableau
      */
     $bloc .= "<" . "table " . "border=1 " . "width=100% " . "class=contenu " . ">" . "<th>" . "Utilisateurs" . "</th><th>" . "Accès général" . "</th><th>" . "Diffusion" . "</th><th>" . "Impression" . "</th><th>" . "Espace de travail <br>(Mettre la souris sur un espace de travail pour voir le détail) " . "</th>";
     //lister les utilisateurs concernés
     $arrayUser = self::getArrayUserWithAccesRightsToFta();
     foreach ($arrayUser as $rowsUser) {
         $lienWorkflow = "";
         $listeRole = "";
         $virgule = "";
         $virgule2 = "";
         //Tableau des id intranet actions Fta
         $arrayAction = self::getArrayIdIntranetActionWithAccesRightsToFtaByUser($rowsUser[UserModel::KEYNAME]);
         $bloc .= "<tr class=contenu><td>" . $rowsUser[UserModel::FIELDNAME_PRENOM] . " " . $rowsUser[UserModel::FIELDNAME_NOM] . "</td>";
         /**
          * Vérification des droits d'accès généraux
          */
         $checkModification = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_MODIFICATION, $arrayAction);
         $checkConsultation = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_CONSULTATION, $arrayAction);
         $checkDiffusion = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_DIFFUSION, $arrayAction);
         $checkImpression = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_IMPRESSION, $arrayAction);
         /**
          * Si accès Fta Modif
          */
         if ($checkModification) {
             $accesGeneralValue = "Modification";
             $diffusion = "Voir espaces de Travail";
             /**
              * Identification des Id intranet action workflow
              */
             $arrayIdIntranetParents = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . IntranetActionsModel::KEYNAME . " FROM  " . IntranetActionsModel::TABLENAME . " WHERE " . IntranetActionsModel::FIELDNAME_TAG_INTRANET_ACTIONS . "='" . IntranetActionsModel::VALUE_WORKFLOW . "' ");
             $arrayIdActionWorkflow = array_intersect($arrayIdIntranetParents, $arrayAction);
             if ($arrayIdActionWorkflow) {
                 foreach ($arrayIdActionWorkflow as $rowsIdActionWorkflow) {
                     $listeRole = "";
                     $virgule2 = "";
                     /**
                      * Identification du workflow
                      */
                     $arrayIdIntranetParents = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . FtaWorkflowModel::FIELDNAME_DESCRIPTION_FTA_WORKFLOW . " FROM  " . FtaWorkflowModel::TABLENAME . " WHERE " . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . "=" . $rowsIdActionWorkflow);
                     /**
                      * Identification des Id intranet action  role du workflow
                      */
                     $arrayIdIntranetRole = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . IntranetActionsModel::KEYNAME . " FROM  " . IntranetActionsModel::TABLENAME . " WHERE " . IntranetActionsModel::FIELDNAME_TAG_INTRANET_ACTIONS . "='" . IntranetActionsModel::VALUE_ROLE . "' " . " AND " . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . "=" . $rowsIdActionWorkflow);
                     $arrayIdActionRole = array_intersect($arrayIdIntranetRole, $arrayAction);
                     if ($arrayIdActionRole) {
                         foreach ($arrayIdActionRole as $rowsIdActionRole) {
                             /**
                              * Liste des rôles attribué pour le workflow
                              */
                             $arrayRole = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE . " FROM  " . FtaRoleModel::TABLENAME . "," . FtaActionRoleModel::TABLENAME . " WHERE " . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . "=" . $rowsIdActionRole . " AND " . FtaRoleModel::TABLENAME . "." . FtaRoleModel::KEYNAME . "=" . FtaActionRoleModel::TABLENAME . "." . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE);
                             $listeRole .= $virgule2 . $arrayRole["0"];
                             $virgule2 = ", ";
                         }
                     }
                     $lienWorkflow .= $virgule . "<span title=\" " . $listeRole . " \" >" . $arrayIdIntranetParents["0"] . "</span>";
                     $virgule = ", ";
                 }
             }
             /**
              * Si accès Fta Consultation
              */
         } elseif ($checkConsultation) {
             $accesGeneralValue = "Consultation";
             /**
              * Droits de difussion
              */
             if ($checkDiffusion) {
                 $geoModel = new GeoModel($rowsUser[UserModel::FIELDNAME_LIEU_GEO]);
                 $diffusion = $geoModel->getDataField(GeoModel::FIELDNAME_GEO)->getFieldValue();
             } else {
                 $diffusion = "Non";
             }
             /**
              * Droits de difussion
              */
         } else {
             $accesGeneralValue = "Non";
             if ($checkDiffusion) {
                 $geoModel = new GeoModel($rowsUser[UserModel::FIELDNAME_LIEU_GEO]);
                 $diffusion = $geoModel->getDataField(GeoModel::FIELDNAME_GEO)->getFieldValue();
             } else {
                 $diffusion = "Non";
             }
         }
         /**
          * Droits d'impression
          */
         if ($checkImpression) {
             $impression = "Oui";
         } else {
             $impression = "Non";
         }
         $bloc .= "<td>" . $accesGeneralValue . "</td>" . "<td>" . $diffusion . "</td>" . "<td>" . $impression . "</td>" . "<td>" . $lienWorkflow . "</td></tr>";
     }
     return $bloc;
 }
Пример #24
0
 /**
  * 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;
 }