Example #1
0
 /**
  * Liste des id Fta selon l'état d'avancement en exécution
  * @param type $paramSyntheseAction
  * @param type $paramRole
  * @param type $paramIdUser
  * @param type $paramIdFtaEtat
  * @param type $paramFtaModification
  * @return type
  */
 public static function getIdFtaByEtatAvancement($paramSyntheseAction, $paramRole, $paramIdUser, $paramIdFtaEtat, $paramFtaModification, $paramLieuGeo)
 {
     $idFtaEffectue = array();
     //        $compteur = "0";
     if ($_SESSION['CheckIdFtaRole'] != $paramRole or $_SESSION[UserModel::KEYNAME] != $paramIdUser) {
         Acl::setRightsAcces($paramIdUser, $paramRole);
     }
     switch ($paramSyntheseAction) {
         case FtaEtatModel::ETAT_AVANCEMENT_VALUE_ATTENTE:
             /*
              * On obtient les fta à vérifié dont tous les chapitres ne sont pas validés
              */
             $arrayTmp = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . ',' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ',' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . ' FROM ' . FtaWorkflowModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ', ' . FtaSuiviProjetModel::TABLENAME . ' , ' . FtaActionSiteModel::TABLENAME . ' , ' . FtaModel::TABLENAME . ' , ' . IntranetDroitsAccesModel::TABLENAME . ' , ' . IntranetActionsModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' IS NOT NULL' . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_SITE_PRODUCTION . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_INTRANET_ACTIONS . ' IN (' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ')' . ' AND ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '=' . FtaSuiviProjetModel::SIGNATURE_VALIDATION_SUIVI_PROJET_FALSE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $paramIdUser . ' AND ' . FtaModel::FIELDNAME_ID_FTA_ETAT . '=' . $paramIdFtaEtat . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . $paramRole . ' AND ( 0 ' . IntranetActionsModel::addIdIntranetAction($_SESSION[Acl::ACL_INTRANET_ACTIONS_VALIDE]) . ')');
             if (FtaRoleModel::isGestionnaire($paramRole)) {
                 $arrayTmp = NULL;
             }
             if ($arrayTmp) {
                 foreach ($arrayTmp as $rows) {
                     $cheackIdFta = in_array($rows[FtaModel::KEYNAME], $idFtaEffectue);
                     if (!$cheackIdFta) {
                         $tauxDeValidadation = FtaProcessusModel::getValideProcessusEncours($rows[FtaModel::KEYNAME], $rows[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS], $rows[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW]);
                         if ($tauxDeValidadation != '1') {
                             $idFtaEffectue[] = $rows[FtaModel::KEYNAME];
                             //                                $compteur++;
                             //                                if ($compteur == ModuleConfig::VALUE_MAX_PAR_PAGE) {
                             //                                    break;
                             //                                }
                         }
                     }
                 }
             }
             $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ' WHERE ( ' . '0' . ' ' . FtaModel::addIdFta($idFtaEffectue) . ')');
             break;
         case FtaEtatModel::ETAT_AVANCEMENT_VALUE_EN_COURS:
             //Récupération des suivis de projet gérés par l'utilisateur et non validé
             /*
              * On obtient les fta à vérifié dont tous les chapitres ne sont pas validés
              */
             $arrayTmp = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . ',' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ',' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . ' FROM ' . FtaWorkflowModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ', ' . FtaSuiviProjetModel::TABLENAME . ' , ' . FtaActionSiteModel::TABLENAME . ' , ' . FtaModel::TABLENAME . ' , ' . IntranetDroitsAccesModel::TABLENAME . ' , ' . IntranetActionsModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' IS NOT NULL' . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_SITE_PRODUCTION . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_INTRANET_ACTIONS . ' IN (' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ')' . ' AND ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '=' . FtaSuiviProjetModel::SIGNATURE_VALIDATION_SUIVI_PROJET_FALSE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $paramIdUser . ' AND ' . FtaModel::FIELDNAME_ID_FTA_ETAT . '=' . $paramIdFtaEtat . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . $paramRole . ' AND ( 0 ' . IntranetActionsModel::addIdIntranetAction($_SESSION[Acl::ACL_INTRANET_ACTIONS_VALIDE]) . ')');
             if ($arrayTmp) {
                 foreach ($arrayTmp as $rows) {
                     $cheackIdFta = in_array($rows[FtaModel::KEYNAME], $idFtaEffectue);
                     if (!$cheackIdFta) {
                         $tauxDeValidadation = FtaProcessusModel::getFtaProcessusNonValidePrecedent($rows[FtaModel::KEYNAME], $rows[FtaProcessusModel::KEYNAME], $rows[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW]);
                         /**
                          * En cas d'oublier des chef de projet qui aurait créé une fta sans validé les informations de base
                          */
                         if (FtaRoleModel::isGestionnaire($paramRole)) {
                             $chefProjet = $tauxDeValidadation == '0';
                             if ($tauxDeValidadation != '0' or $chefProjet == TRUE) {
                                 $idFtaEffectue[] = $rows[FtaModel::KEYNAME];
                                 //                                    $compteur++;
                                 //                                    if ($compteur == ModuleConfig::VALUE_MAX_PAR_PAGE) {
                                 //                                        break;
                                 //                                    }
                             }
                         } elseif ($tauxDeValidadation == '1') {
                             $idFtaEffectue[] = $rows[FtaModel::KEYNAME];
                             //                                $compteur++;
                             //                                if ($compteur == ModuleConfig::VALUE_MAX_PAR_PAGE) {
                             //                                    break;
                             //                                }
                         }
                     }
                 }
             }
             $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ' WHERE ( ' . '0' . ' ' . FtaModel::addIdFta($idFtaEffectue) . ')');
             break;
         case FtaEtatModel::ETAT_AVANCEMENT_VALUE_EFFECTUES:
             //Récupération de la liste fta pour le role concernés
             /*
              * On obtient les fta à vérifié dont tous les chapitres sont validés
              */
             $arrayTmp = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . ',' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ',' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . ' FROM ' . FtaWorkflowModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ', ' . FtaSuiviProjetModel::TABLENAME . ' , ' . FtaActionSiteModel::TABLENAME . ' , ' . FtaModel::TABLENAME . ' , ' . IntranetDroitsAccesModel::TABLENAME . ' , ' . IntranetActionsModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' IS NOT NULL' . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_SITE_PRODUCTION . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_INTRANET_ACTIONS . ' IN (' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ')' . ' AND ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '<>' . FtaSuiviProjetModel::SIGNATURE_VALIDATION_SUIVI_PROJET_FALSE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $paramIdUser . ' AND ' . FtaModel::FIELDNAME_ID_FTA_ETAT . '=' . $paramIdFtaEtat . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . $paramRole . ' AND ( 0 ' . IntranetActionsModel::addIdIntranetAction($_SESSION[Acl::ACL_INTRANET_ACTIONS_VALIDE]) . ')');
             if ($arrayTmp) {
                 foreach ($arrayTmp as $rows) {
                     $cheackIdFta = in_array($rows[FtaModel::KEYNAME], $idFtaEffectue);
                     if (!$cheackIdFta) {
                         $tauxDeValidadation = FtaProcessusModel::getValideIdFtaByRoleWorkflowProcessus($rows[FtaModel::KEYNAME], $paramRole, $rows[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW]);
                         if ($tauxDeValidadation == '1') {
                             $idFtaEffectue[] = $rows[FtaModel::KEYNAME];
                             //                                $compteur++;
                             //                                if ($compteur == ModuleConfig::VALUE_MAX_PAR_PAGE) {
                             //                                    break;
                             //                                }
                         }
                     }
                 }
             }
             $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ' WHERE ( ' . '0' . ' ' . FtaModel::addIdFta($idFtaEffectue) . ')');
             break;
         case FtaEtatModel::ETAT_AVANCEMENT_VALUE_ALL:
             //Toutes les fiches de l'état sélectionné
             if ($paramFtaModification) {
                 $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ',' . FtaWorkflowModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ' , ' . FtaActionSiteModel::TABLENAME . ' WHERE ' . FtaModel::FIELDNAME_ID_FTA_ETAT . '=' . $paramIdFtaEtat . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $paramIdUser . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . ' AND ( 0 ' . IntranetActionsModel::addIdIntranetAction($_SESSION[Acl::ACL_INTRANET_ACTIONS_VALIDE]) . ')' . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_SITE_PRODUCTION . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_WORKFLOW . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_INTRANET_ACTIONS . ' IN (' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ')');
             } else {
                 $isSiteDeProd = GeoModel::isLieuGeoSiteDeProduction($paramLieuGeo);
                 if ($isSiteDeProd) {
                     $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ' WHERE ' . FtaModel::FIELDNAME_ID_FTA_ETAT . '=' . $paramIdFtaEtat . ' AND  ' . FtaModel::FIELDNAME_SITE_PRODUCTION . '=' . $paramLieuGeo);
                 } else {
                     $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaModel::KEYNAME . ' FROM ' . FtaModel::TABLENAME . ' WHERE ' . FtaModel::FIELDNAME_ID_FTA_ETAT . '=' . $paramIdFtaEtat);
                 }
             }
             break;
     }
     return $array;
 }
Example #2
0
 /**
  * 
  * @return type
  */
 public function showDatesEcheanceProcessus()
 {
     //Variables locales
     $blocEcheanceLignes = "";
     $modelFtaProcessusDelai = new FtaProcessusDelaiModel();
     //Parcours et construction de toutes les échéances
     foreach ($this->getModel()->getArrayDataFieldEcheancesForProcessusCycle() as $modelFtaProcessusDelai) {
         //Construction des objets HTML de date
         $recordsetProcessus = new FtaProcessusModel($modelFtaProcessusDelai->getDataField(FtaProcessusDelaiModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue());
         $labelEcheance = "Echéance pour " . $recordsetProcessus->getDataField(FtaProcessusModel::FIELDNAME_NOM)->getFieldValue() . ": ";
         $dataFieldEcheance = $modelFtaProcessusDelai->getDataField(FtaProcessusDelaiModel::FIELDNAME_DATE_ECHEANCE_PROCESSUS);
         $dataFieldEcheance->setLabelCustom($labelEcheance);
         $HtmlElementEcheance = new DataFieldToHtmlInputCalendar($dataFieldEcheance);
         $blocEcheanceLignes .= $HtmlElementEcheance->getHtmlResult();
     }
     return $blocEcheanceLignes;
 }
Example #3
0
 /**
  * Liste des Rôles auxquelles l'utilisateur à accès pour un workflow donnée
  * @param int $paramIdUser
  * @param int $paramWorkflow
  * @param FtaModel $ftaModel
  * @param string $paramSytheseAction
  * @param int $paramIdftaChapitreEncours
  * @return string
  */
 public static function getRolesNavigationBar($paramIdUser, $paramWorkflow, FtaModel $ftaModel, $paramSytheseAction, $paramIdftaChapitreEncours, $paramIdFtaRoleEncours)
 {
     //Variable
     $listeRole = array();
     $arrayRoleWorkflow = FtaRoleModel::getArrayIdFtaRoleByIdUserAndWorkflow($paramIdUser, $paramWorkflow);
     //Calcul du taux
     $taux_temp = FtaSuiviProjetModel::getArrayFtaTauxValidation($ftaModel, TRUE);
     if ($taux_temp["1"]) {
         foreach ($taux_temp["1"] as $id_fta_processus => $taux) {
             /**
              * On obtient le rôle pour lequel le processus correspond
              */
             $arrayCheckRole = FtaWorkflowStructureModel::getArrayRoleByProcessusAndWorkflow($id_fta_processus, $paramWorkflow);
             $checkRole1 = array_intersect($arrayCheckRole, $arrayRoleWorkflow);
             if ($checkRole1) {
                 $checkRole2 = array_intersect($arrayCheckRole, $listeRole);
                 if (!$checkRole2) {
                     /**
                      * 0 en attente 
                      * entre 0 et 1 cours
                      * 1 validé
                      */
                     $listeRole[] = $arrayCheckRole["0"];
                     /**
                      * Mise en forme du rôle en cours
                      */
                     if ($arrayCheckRole["0"] == $paramIdFtaRoleEncours) {
                         $font_size = "size=" . Navigation::FONT_SIZE_ROLE_ENCOURS;
                         $font_flash = "<font " . $font_size . ">";
                         $image_flash1 = $font_flash . '[  ' . "</font>";
                         $image_flash2 = $font_flash . '  ]' . "</font>";
                     } else {
                         $font_size = "";
                         $image_flash1 = '-  ';
                         $image_flash2 = '  -';
                     }
                     if ($taux == "0") {
                         /**
                          * Vérification que tous les processus précédent soit validé si oui le processus est encours
                          */
                         $taux_validation_processus = FtaProcessusModel::getFtaProcessusNonValidePrecedent($ftaModel->getKeyValue(), $id_fta_processus, $paramWorkflow);
                         if ($taux_validation_processus == "1" or $taux_validation_processus === NULL) {
                             $ftaRoleModel = new FtaRoleModel($arrayCheckRole["0"]);
                             $roles .= $image_flash1 . ' <a href=' . 'modification_fiche' . '.php?' . 'id_fta=' . $ftaModel->getKeyValue() . '&id_fta_chapitre_encours=' . $paramIdftaChapitreEncours . '&synthese_action=' . $paramSytheseAction . '&id_fta_etat=' . $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue() . '&abreviation_fta_etat=' . $ftaModel->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue() . '&id_fta_role=' . $arrayCheckRole["0"] . '>' . $ftaRoleModel->getDataField(FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE)->getFieldValue() . '</a> ' . $image_flash2 . ' ';
                         } else {
                             $ftaRoleModel = new FtaRoleModel($arrayCheckRole["0"]);
                             /**
                              * Liien vers l'historique sans la navigation
                              */
                             $roles .= $image_flash1 . $ftaRoleModel->getDataField(FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE)->getFieldValue() . $image_flash2 . ' ';
                         }
                     } elseif ($taux == "1" or $taux != "0" and $taux != "1") {
                         $ftaRoleModel = new FtaRoleModel($arrayCheckRole["0"]);
                         $roles .= $image_flash1 . ' <a href=' . 'modification_fiche' . '.php?' . 'id_fta=' . $ftaModel->getKeyValue() . '&id_fta_chapitre_encours=' . $paramIdftaChapitreEncours . '&synthese_action=' . $paramSytheseAction . '&id_fta_etat=' . $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue() . '&abreviation_fta_etat=' . $ftaModel->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue() . '&id_fta_role=' . $arrayCheckRole["0"] . '>' . $ftaRoleModel->getDataField(FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE)->getFieldValue() . '</a> ' . $image_flash2 . ' ';
                     }
                 }
             }
         }
         $RoleNavigation = '  Rôles  ' . $roles;
     }
     return $RoleNavigation;
 }
Example #4
0
           </td>


       </tr>
       ';
    /*   //$id_access_arti2; //Clef récupérée précédement
         $req = 'SELECT id_access_arti2 FROM access_arti2 WHERE id_fta=''.$id_fta.'' ';
         $result = DatabaseOperation::query($req);
         $id_access_arti2=mysql_result($result, 0, 'id_access_arti2');
         mysql_table_load('access_arti2'); */
    $tab = $details[$id_fta];
    if ($tab) {
        foreach ($tab as $id_fta_processus => $taux) {
            $champChapitre = "";
            //Chargement des données
            $ftaProcessusModel = new FtaProcessusModel($id_fta_processus);
            /**
             * 1 en attente 
             * 2 en cours
             * 3 validé
             */
            if ($taux == "0") {
                $idFtaProcessusEtat = "1";
                /**
                 * Vérification que tous les processus précédent soit validé si oui le processus est encours
                 */
                $taux_validation_processus = FtaProcessusModel::getFtaProcessusNonValidePrecedent($id_fta, $id_fta_processus, $idFtaWorkflow);
                if ($taux_validation_processus == "1" or $taux_validation_processus === NULL) {
                    $idFtaProcessusEtat = "2";
                }
            } elseif ($taux != "0" and $taux != "1") {
Example #5
0
 /**
  * Verification de l''état d'avancement.
  * @return String
  */
 protected static function CheckSyntheseAction()
 {
     $nbProcessusPreceValide = "0";
     $ProcessusEncoursVisible = array();
     $ProcessusPrecedentVisible = array();
     $ProcessusValide = array();
     $ProcessusEnLecture = array();
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $id_user = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $idFtaRole = self::$id_fta_role;
     /**
      * Cette partie n'est plus utilisé car le but était de récupérer le rôle corespondant à l'utilisateur connecter
      * mais désormais id_fta_role est récupé dans l'URL
      */
     /*
      * $modelFta = new FtaModel(self::$id_fta);
      * $id_fta_workflow = $modelFta->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue();
      * $ftaWorkflowModel = new FtaWorkflowModel($id_fta_workflow);
      * $id_parent_intranet_actions = $ftaWorkflowModel->getDataField(FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS)->getFieldValue();
      * $id_intranet_actions[] = IntranetActionsModel::getIdIntranetActionsRoleFromIdParentActionNavigation($id_parent_intranet_actions);
      * $id_actions_role = FtaActionRoleModel::getIdFtaActionRoleFromIdIntranetAtions($id_intranet_actions);
      * $ftaActionRoleModel = new FtaActionRoleModel($id_actions_role);
      */
     /*
      * Si une action est donnée, alors construction du menu des chapitres
      */
     if (self::$synthese_action) {
         /*
          * Nous récuperons les processus en cours.
          */
         $arrayAllProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . self::$id_fta_workflow);
         /**
          * On récupère tous les processus
          */
         foreach ($arrayAllProcessus as $rowsAllProcessus) {
             $ProcessusComplet[] = $rowsAllProcessus[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS];
         }
         /*
          * Etat d'avancement de la FTA et Recherche des processus validés (et donc en lecture-seule)             * 
          */
         /*
          * Nous récuperons les processus en cours.
          */
         $req = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ', ' . FtaProcessusCycleModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ',' . IntranetModulesModel::TABLENAME . ',' . FtaActionRoleModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' AND ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=\'' . FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION . '\'' . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . self::$id_fta_workflow . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . '=' . $idFtaRole . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_MODULES . '=' . IntranetModulesModel::TABLENAME . '.' . IntranetModulesModel::KEYNAME . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $id_user . ' AND ' . IntranetModulesModel::FIELDNAME_NOM_INTRANET_MODULES . '=\'' . FtaModel::TABLENAME . '\' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE);
         /**
          * On ne récuère que les processus d'init validé
          */
         //            $arrayProcessusValide = DatabaseOperation::convertSqlStatementWithoutKeyToArray(
         //                            'SELECT DISTINCT ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ' as ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS
         //                            . ' FROM ' . FtaProcessusCycleModel::TABLENAME
         //                            . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=\'' . FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION . '\''
         //                            . ' AND ' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW
         //                            . '=\'' . self::$id_fta_workflow . '\' '
         /**
          * On récuère les processus validé
          */
         $arrayProcessusValide = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=\'' . self::$id_fta_workflow . '\'' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '<>\'' . FtaProcessusModel::PROCESSUS_PUBLIC . '\'');
         if ($req and $arrayProcessusValide) {
             /*
              * Nous récupérons les processus précédent du processus en cours si ils sont tous validé
              */
             foreach ($req as $rows) {
                 /*
                  * Nous verifions si tous les processus précedents du chapitre que l'utilisateur à les droits d'accès
                  * sont validé ou non et donc visible ou non
                  */
                 $taux_validation_processus = FtaProcessusModel::getFtaProcessusNonValidePrecedent(self::$id_fta, $rows[FtaProcessusModel::KEYNAME], self::$id_fta_workflow);
                 //Liste des processus visible(lecture-seule)
                 if ($taux_validation_processus == 1 or $taux_validation_processus === NULL) {
                     $ProcessusPrecedentVisible[] = $rows[FtaProcessusModel::KEYNAME];
                     /*
                      * Il s'agit du controle des processus multisite,
                      * les droits d'accès à cette Fta étatn controlé précédement je désactive la focntion
                      */
                     //                        foreach ($ProcessusPrecedentVisible as $rowsProcessusVisible) {
                     //                            $multisite_fta_processus = FtaProcessusModel::CheckProcessusMultiSite($rowsProcessusVisible);
                     //
                     //                            if ($multisite_fta_processus) {
                     //                                //Oui, il s'agit d'un Processus répartie sur les sites d'assemblage
                     //                                $ProcessusPrecedentVisibleTmp[] = self::CheckMultiSite($rowsProcessusVisible);
                     //                                $ProcessusPrecedentVisible = $ProcessusPrecedentVisibleTmp;
                     //                            }
                     //                        }
                 }
             }
             //Fin du balayage
             //                if ($ProcessusPrecedentVisible) {
             /*
              * Nous récupérons tous les processus validé pour vérifier plus tard si nous devons les affichers
              */
             foreach ($arrayProcessusValide as $rowsProcessusValide) {
                 $taux_validation_processus = FtaProcessusModel::getValideProcessusEncours(self::$id_fta, $rowsProcessusValide[FtaProcessusModel::KEYNAME], self::$id_fta_workflow);
                 if ($taux_validation_processus == 1) {
                     $ProcessusValide[] = $rowsProcessusValide[FtaProcessusModel::KEYNAME];
                 }
             }
             //                }
         }
         /*
          * Nous récuperons la liste des processus non valider  qui sont en cours
          * par la vérification des droits d'accès de l'utilisateur en cours par Workflow par role 
          * et un balayage  des cycles des processus
          */
         $arrayNext = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . ' FROM ' . FtaProcessusCycleModel::TABLENAME . ',' . FtaWorkflowStructureModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ',' . IntranetModulesModel::TABLENAME . ',' . FtaActionRoleModel::TABLENAME . ',' . FtaSuiviProjetModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . self::$id_fta_workflow . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . '=' . $idFtaRole . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_MODULES . '=' . IntranetModulesModel::TABLENAME . '.' . IntranetModulesModel::KEYNAME . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $id_user . ' AND ' . IntranetModulesModel::FIELDNAME_NOM_INTRANET_MODULES . '=\'' . FtaModel::TABLENAME . '\' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . ' AND ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '<>' . FtaSuiviProjetModel::SIGNATURE_VALIDATION_SUIVI_PROJET_FALSE);
         if ($arrayNext) {
             foreach ($arrayNext as $rowsNext) {
                 //Pour chaque processus, on vérifie que tous ces précédents sont validés
                 $req = 'SELECT ' . FtaProcessusCycleModel::KEYNAME . ' FROM ' . FtaProcessusCycleModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . '=' . $rowsNext[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT] . ' AND ( ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . '=0 ';
                 //Ajout de la restriction des processus validé
                 $req .= self::AddValidProcess($ProcessusValide);
                 //Recherche dans le cycle correspondant à l'état en cours de la fiche
                 $req_etat = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaEtatModel::TABLENAME . '.' . FtaEtatModel::FIELDNAME_ABREVIATION . ' FROM ' . FtaEtatModel::TABLENAME . ',' . FtaModel::TABLENAME . ' WHERE ' . FtaEtatModel::TABLENAME . '.' . FtaEtatModel::KEYNAME . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_ID_FTA_ETAT . ' AND ' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . '= ' . self::$id_fta);
                 foreach ($req_etat as $rowsEtat) {
                     $abreviation_fta_etat = $rowsEtat[FtaEtatModel::FIELDNAME_ABREVIATION];
                 }
                 $req .= ') AND ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=\'' . $abreviation_fta_etat . '\' AND ' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . ' = ' . self::$id_fta_workflow;
                 //Filtrage par catégorie
                 //Finalisation de la requête
                 //Si la requête a un résultat c'est que tous les processus précédents sont validés
                 /*
                  * Nous récupérons tous les processus que l'utilisateur verra en lecture(seule) 
                  * afin qu'ils puissent remplir les données des champs de leurs chapitres
                  */
                 $arrayIdFtaProcessusCyle = DatabaseOperation::convertSqlStatementWithoutKeyToArray($req);
                 if ($arrayIdFtaProcessusCyle) {
                     foreach ($arrayIdFtaProcessusCyle as $rowsIdFtaProcessusCycle) {
                         $idFtaProcessusCyle = $rowsIdFtaProcessusCycle[FtaProcessusCycleModel::KEYNAME];
                         $ftaProcessusCycleModel = new FtaProcessusCycleModel($idFtaProcessusCyle);
                         $ProcessusEnLecture[] = $ftaProcessusCycleModel->getDataField(FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT)->getFieldValue();
                     }
                 }
                 /*
                  * Nombres total de processus précedent pour le processus en cours
                  */
                 $arrayInit = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaProcessusModel::TABLENAME . ',' . FtaProcessusCycleModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . '=' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::FIELDNAME_ID_FTA_ROLE . ' AND ' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . '=' . $rowsNext[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT] . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . ' = ' . self::$id_fta_workflow);
                 if ($arrayInit) {
                     /*
                      * Vérifie si tous les processus précédent du processus en cours a des chapitres non validé
                      */
                     $nbProcessusPrece = count($arrayInit);
                     foreach ($arrayInit as $rowsInit) {
                         $tauxValidationProcessus = FtaProcessusModel::getValideProcessusEncours(self::$id_fta, $rowsInit[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT], self::$id_fta_workflow);
                         if ($tauxValidationProcessus != 0) {
                             $nbProcessusPreceValide = $nbProcessusPreceValide + 1;
                             //Enregistrement du processus en tant que processus en cours
                             if ($tauxValidationProcessus == "1" and $nbProcessusPreceValide == $nbProcessusPrece) {
                                 $ProcessusEnLecture[] = $rowsInit[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT];
                                 $ProcessusEncoursVisible[] = $rowsNext[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT];
                             }
                             //                            }
                         }
                     }
                     /*
                      * Désactivation des check de multisite voir FtaProcessusmodel::CheckMultisite
                      */
                     /*
                      //Ce processus en cours, est-il du type repartie ou centralisé ?
                      $reqType = DatabaseOperation::convertSqlQueryWithAutomaticKeyToArray(
                      'SELECT ' . FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS
                      . ' FROM ' . FtaProcessusModel::TABLENAME
                      . ' WHERE ' . FtaProcessusModel::KEYNAME
                      . '=' . $rows[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT]
                      );
                      if ($reqType) {
                      foreach ($reqType as $rowsType) {
                      $multisite_fta_processus = $rowsType[FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS];
                      }
                      if ($multisite_fta_processus) {
                      //Oui, il s'agit d'un Processus répartie sur les sites d'assemblage
                      $ProcessusEncoursVisible[] = self::CheckMultiSite($rows[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT]);
                      } else {
                     */
                     //                        }
                 }
             }
             //Fin du balayage des processus non-validés
         }
         //Recherche des processus valide ayant un lien dans processus cycle
         foreach ($ProcessusValide as $rowsProcessusValide2) {
             //Pour chaque processus, on vérifie que tous ces précédents sont validés
             $req = 'SELECT ' . FtaProcessusCycleModel::KEYNAME . ' FROM ' . FtaProcessusCycleModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . '=' . $rowsProcessusValide2 . ' AND ( ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . '=0 ';
             //Ajout de la restriction des processus validé
             $req .= self::AddValidProcess($ProcessusValide);
             //Recherche dans le cycle correspondant à l'état en cours de la fiche
             $req_etat = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaEtatModel::TABLENAME . '.' . FtaEtatModel::FIELDNAME_ABREVIATION . ' FROM ' . FtaEtatModel::TABLENAME . ',' . FtaModel::TABLENAME . ' WHERE ' . FtaEtatModel::TABLENAME . '.' . FtaEtatModel::KEYNAME . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_ID_FTA_ETAT . ' AND ' . FtaModel::TABLENAME . '.' . FtaModel::KEYNAME . '= ' . self::$id_fta);
             foreach ($req_etat as $rowsEtat) {
                 $abreviation_fta_etat = $rowsEtat[FtaEtatModel::FIELDNAME_ABREVIATION];
             }
             $req .= ') AND ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=\'' . $abreviation_fta_etat . '\' AND ' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . ' = ' . self::$id_fta_workflow;
             //Filtrage par catégorie
             //Finalisation de la requête
             //Si la requête a un résultat c'est que tous les processus précédents sont validés
             /*
              * Nous récupérons tous les processus que l'utilisateur verra en lecture(seule) 
              * afin qu'ils puissent remplir les données des champs de leurs chapitres
              */
             $arrayIdFtaProcessusCyle = DatabaseOperation::convertSqlStatementWithoutKeyToArray($req);
             if ($arrayIdFtaProcessusCyle) {
                 foreach ($arrayIdFtaProcessusCyle as $rowsIdFtaProcessusCycle) {
                     $idFtaProcessusCyle = $rowsIdFtaProcessusCycle[FtaProcessusCycleModel::KEYNAME];
                     $ftaProcessusCycleModel = new FtaProcessusCycleModel($idFtaProcessusCyle);
                     $ProcessusEnLecture[] = $ftaProcessusCycleModel->getDataField(FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT)->getFieldValue();
                 }
             }
         }
         if (self::$id_fta_etat == '1') {
             //Création de la liste des processus dans la barre de navigation
             $t_liste_processus = array_merge($ProcessusEncoursVisible, $ProcessusPrecedentVisible, $ProcessusEnLecture, $ProcessusValide);
         } else {
             $arrayProcessusByWorkflow = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . self::$id_fta_workflow);
             foreach ($arrayProcessusByWorkflow as $rowsProcessusByWorkflow) {
                 $t_liste_processus[] .= $rowsProcessusByWorkflow[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS];
             }
         }
         self::$id_fta_processus = $t_liste_processus;
         //Récupération des Chapitres accessible dans le menu de naviguation
         $menu_navigation = self::RecupChapitre($ProcessusComplet);
         //Fin du controle de $synthese_action
     }
     return $menu_navigation;
 }
Example #6
0
 public function getArrayDataFieldEcheancesForProcessusCycle()
 {
     $dateEcheanceFta = $this->getDataField(FtaModel::FIELDNAME_DATE_ECHEANCE_FTA)->getFieldValue();
     $isEcheanceForThisFtaExist = NULL;
     //Date par processus
     $annee_date_echeance_fta = substr($dateEcheanceFta, 0, 4);
     $mois_date_echeance_fta = substr($dateEcheanceFta, 5, 2);
     $jour_date_echeance_fta = substr($dateEcheanceFta, 8, 2);
     $arrayModelFtaProcessusDelaiByIdProcessus = $this->getArrayModelFtaProcessusDelaiByIdProcessus();
     //Sélection de tous les processus appartenant au cycle de vie de la FTA
     $arrayIdProcessusFromFtaCycleDeVie = $this->getArrayIdProcessusFromFtaCycleDeVie();
     foreach ($arrayIdProcessusFromFtaCycleDeVie as $rows) {
         //Extraction des données du tableau PHP
         $idFtaProcessus = $rows[FtaProcessusModel::KEYNAME];
         $WeekSinceFirstProcessus = $rows[FtaProcessusCycleModel::FIELDNAME_DELAI];
         //Processus défini pour ce cycle de vie
         $modelFtaProcessusForCycle = new FtaProcessusModel($idFtaProcessus);
         //La FTA a-t-elle une échéance de renseignée pour ce processus ?
         if ($arrayModelFtaProcessusDelaiByIdProcessus != NULL) {
             $isEcheanceForThisFtaExist = array_key_exists($modelFtaProcessusForCycle->getKeyValue(), $arrayModelFtaProcessusDelaiByIdProcessus);
         }
         if ($isEcheanceForThisFtaExist) {
             //Si il existe, on récupère ce délai
             $modelFtaProcessusDelai = $arrayModelFtaProcessusDelaiByIdProcessus[$modelFtaProcessusForCycle->getKeyValue()];
         } else {
             //Si il n'existe pas, il faut initialiser l'échéance
             $modelFtaProcessusDelai = new FtaProcessusDelaiModel();
             $modelFtaProcessusDelai->setModelFtaById($this->getKeyValue());
             $modelFtaProcessusDelai->setModelFtaProcessusById($modelFtaProcessusForCycle->getKeyValue());
             //Mise à jour du tableau
             $arrayModelFtaProcessusDelaiByIdProcessus[$modelFtaProcessusForCycle->getDataField(FtaProcessusDelaiModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue()] = $modelFtaProcessusDelai;
         }
         //Récupération de la date d'échéance de la FTA définie pour ce processus
         if (($dateEcheanceFta == NULL or $dateEcheanceFta == "0000-00-00") and parent::getIsEditable()) {
             $modelFtaProcessusDelai->getDataField(FtaProcessusDelaiModel::FIELDNAME_DATE_ECHEANCE_PROCESSUS)->setFieldValue("");
         } else {
             $delai_jour = $WeekSinceFirstProcessus * ModuleConfig::DELAI_ECHEANCE_PROCESSUS_JOUR;
             $timestamp_date_echeance_fta = mktime(0, 0, 0, $mois_date_echeance_fta, $jour_date_echeance_fta - $delai_jour, $annee_date_echeance_fta);
             $dateDefaultEcheance = date("d-m-Y", $timestamp_date_echeance_fta);
             $modelFtaProcessusDelai->getDataField(FtaProcessusDelaiModel::FIELDNAME_DATE_ECHEANCE_PROCESSUS)->setFieldValue($dateDefaultEcheance);
         }
         $modelFtaProcessusDelai->saveToDatabase();
         //            $arrayDataFieldEcheancesForProcessusCycle[] = $modelFtaProcessusDelai->getDataField(FtaProcessusDelaiModel::FIELDNAME_DATE_ECHEANCE_PROCESSUS);
         $arrayDataFieldEcheancesForProcessusCycle[] = $modelFtaProcessusDelai;
         //Construction des objets HTML de date
         //            $labelEcheance = "Echéance pour " . $modelFtaProcessusDelai->getModelFtaProcessus()->getDataField(FtaProcessusModel::FIELDNAME_SERVICE)->getFieldValue() . ": ";
         //            $dataFieldEcheance = $modelFtaProcessusDelai->getDataField(FtaProcessusDelaiModel::FIELDNAME_DATE_ECHEANCE_PROCESSUS);
         //            $dataFieldEcheance->setLabelCustom($labelEcheance);
         //
         //            $HtmlElementEcheance = new DataFieldToHtmlInputCalendar($dataFieldEcheance);
         //
         //            $blocEcheanceLignes .= $HtmlElementEcheance->getHtmlResult();
     }
     return $arrayDataFieldEcheancesForProcessusCycle;
 }
Example #7
0
 protected static function buildTauxValidationProcessus()
 {
     //Taux de validation du processus
     $return = '';
     if (self::$id_fta_processus != 0) {
         $return = FtaProcessusModel::getValideProcessusEncours(self::$id_fta, self::$id_fta_processus, self::$id_fta_workflow);
     }
     return $return;
 }
 /**
  * 
  * @param type $paramFtaModel
  * @param type $paramTableauProcessus
  * @return type
  */
 public static function getArrayFtaTauxValidation($paramFtaModel, $paramTableauProcessus)
 {
     //Dictionnaire des données
     $return['0'];
     //Pourcentage globale de la validation
     $return['1'];
     //Tableau de résultat par id_fta_processus des taux de validation
     $return['2'];
     //Tableau de résultat par id_fta_processus des état des processus (Terminé, En cours, En attente)
     /*
      * Récupération du l'état de la FTA pour connatire le cycle de vie en cours
      */
     $idFta = $paramFtaModel->getDataField(FtaModel::KEYNAME)->getFieldValue();
     $idFtaEtat = $paramFtaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue();
     /*
      Corps de la fonction
     */
     /*
      * Sélection des processus contenu dans le cycle de vie de l'état de la FTA
      */
     $arrayChapitre = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . ' FROM ' . FtaSuiviProjetModel::TABLENAME . ',' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . '=' . $idFta . ' AND ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '<>0 ' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '<>0 ' . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=\'' . $paramFtaModel->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue() . '\' ');
     $currentChapitre = count($arrayChapitre);
     /**
      * Liste complète des chapitres de ce cycle pour cette catégorie
      */
     $arrayChapitreTotal = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE  ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=\'' . $paramFtaModel->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue() . '\' ' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '<>0 ');
     $totalChapitre = count($arrayChapitreTotal);
     if ($currentChapitre) {
         $return['0'] = $currentChapitre / $totalChapitre;
     } else {
         $return['0'] = '0';
     }
     if ($paramTableauProcessus) {
         $arrayCycle = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ' FROM ' . FtaProcessusCycleModel::TABLENAME . ', ' . FtaEtatModel::TABLENAME . ',' . FtaProcessusModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=' . FtaEtatModel::FIELDNAME_ABREVIATION . ' AND ' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . $paramFtaModel->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue() . ' AND ' . FtaEtatModel::KEYNAME . '=\'' . $idFtaEtat . '\'' . ' AND ' . FtaProcessusModel::KEYNAME . '=' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ' ORDER BY ' . FtaProcessusModel::FIELDNAME_SERVICE);
         foreach ($arrayCycle as $rowsCycle) {
             $id_fta_processus = $rowsCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT];
             $taux_validation_processus = FtaProcessusModel::getValideProcessusEncours($idFta, $id_fta_processus, $paramFtaModel->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue());
             //Détail par processus
             $return[1][$id_fta_processus] = $taux_validation_processus;
         }
         //Fin du balayage
     }
     return $return;
 }
 /**
  * Contrôle et corrige l'état de validation de l'échéance fixé à un processus
  * Si le processus à validé tous ses chapitre, le délai est validé
  * Sinon, le délai reste en attente de réalisation
  * Fonction n'est plus utilisé
  * Retour de la fonction:
  * 0: Rien n'a été fait car le processus ne dispose pas d'enregistrement d'échéance
  * 1: Mise à jour effecftuée
  * @param type $paramIdFta
  * @param type $paramIdFtaProcessus
  * @return int
  */
 public static function BuildFtaProcessusValidationDelai($paramIdFta, $paramIdFtaProcessus, $paramIdFtaWorkflow)
 {
     $valideFtaProcessusDelai = NULL;
     //L'échéance est-elle validée ? (Oui=1, Non=0)
     $return = '0';
     $etatEcheance = FtaProcessusModel::getValideProcessusEncours($paramIdFta, $paramIdFtaProcessus, $paramIdFtaWorkflow);
     switch ($etatEcheance) {
         case 1:
             //Le processus à validé tous ses chapitres
             $valideFtaProcessusDelai = '1';
             break;
         default:
             //Sinon, il reste encore des chapitres à valider
             $valideFtaProcessusDelai = '0';
     }
     //Existe-il déjà un enregistrement sur ce délai ?
     //Recherche d'enregistrement déjà existant pour mise à jour, sinon insertion
     $arrayProcessusDelai = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaProcessusDelaiModel::KEYNAME . ', ' . FtaProcessusDelaiModel::FIELDNAME_VALIDE . ' FROM ' . FtaProcessusDelaiModel::TABLENAME . ' WHERE ' . FtaProcessusDelaiModel::FIELDNAME_ID_FTA . '=\'' . $paramIdFta . '\' AND ' . FtaProcessusDelaiModel::FIELDNAME_ID_FTA_PROCESSUS . ' = \'' . $paramIdFtaProcessus . '\' ');
     if ($arrayProcessusDelai) {
         //Si l'enregistrement existe, alors mise à jour des informations
         //Si l'état enregistré en différent de celui contrôlé, alors mise à jour
         foreach ($arrayProcessusDelai as $rowsProcessusDelai) {
             $valideFtaProcessusDelaiRecorded = $rowsProcessusDelai[FtaProcessusDelaiModel::FIELDNAME_VALIDE];
             if ($valideFtaProcessusDelai != $valideFtaProcessusDelaiRecorded) {
                 //Récupération de l'identifiant pour permettre la mise à jour de celui-ci
                 $idFtaProcessusDelai = $rowsProcessusDelai[FtaProcessusDelaiModel::KEYNAME];
                 $req = 'UPDATE ' . FtaProcessusDelaiModel::TABLENAME . 'SET ' . FtaProcessusDelaiModel::FIELDNAME_VALIDE . ' = \'' . $valideFtaProcessusDelai . '\' ' . 'WHERE ' . FtaProcessusDelaiModel::KEYNAME . ' =\'' . $idFtaProcessusDelai . '\' ';
                 DatabaseOperation::query($req);
                 $return = '1';
             }
         }
     }
     return $return;
 }
 /**
  * On obtient le tableau des id Fta chapitre pour lesquelle l'utilisateur connecté à les droits d'accès
  * @param array $paramArrayProcessus
  */
 public static function getIdFtaChapitreByArrayProcessusAndWorkflow($paramArrayProcessus, $paramIdFtaWorkflow)
 {
     $arrayIdFtaChapitre = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ( 0 ' . FtaProcessusModel::addIdFtaProcessus($paramArrayProcessus) . ')' . ' AND  ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $paramIdFtaWorkflow);
     foreach ($arrayIdFtaChapitre as $rowsIdFtaChapitre) {
         $ListeIdFtaChapitre[] = $rowsIdFtaChapitre[self::KEYNAME];
     }
     return $ListeIdFtaChapitre;
 }
 $bloc = '';
 /**
  * On récupèer les Chapitres séléctionnés.
  */
 $arrayChapitre = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaChapitreModel::KEYNAME . ',' . FtaChapitreModel::FIELDNAME_NOM_USUEL_CHAPITRE . ' FROM ' . FtaChapitreModel::TABLENAME . ' ORDER BY ' . FtaChapitreModel::FIELDNAME_NOM_USUEL_CHAPITRE);
 foreach ($arrayChapitre as $rowsChapitre) {
     if (Lib::getParameterFromRequest(FtaChapitreModel::FIELDNAME_NOM_CHAPITRE . '_' . $rowsChapitre[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE]) == 1) {
         $ListeDesChapitres[] = $rowsChapitre[FtaChapitreModel::KEYNAME];
     }
 }
 if ($ListeDesChapitres) {
     foreach ($ListeDesChapitres as $idChapitre) {
         $idFtaWorkflowStructure = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre($idFta, $idChapitre);
         $ftaWorkflowStructureModel = new FtaWorkflowStructureModel($idFtaWorkflowStructure, $idChapitre);
         $idFtaProcessus = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue();
         $return = FtaProcessusModel::getProcessusNextFromIdFtaChapitres($idFta, $idFtaProcessus, $idFtaWorkflow, "I", $htmlResult, $idFtaProcessusEffectue);
         $ListeDesChapitresSuivant[] = FtaChapitreModel::getIdFtaChapitreByArrayProcessusAndWorkflow($return['processus'], $idFtaWorkflow);
         $redirectionSelectionne .= '&' . FtaChapitreModel::FIELDNAME_NOM_CHAPITRE . '_' . $idChapitre . '=1';
     }
     $ListeDesChapitresSuivant = array_unique($ListeDesChapitresSuivant);
     if ($ListeDesChapitresSuivant["0"]) {
         $arrayChapitreDescription = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaChapitreModel::FIELDNAME_NOM_USUEL_CHAPITRE . ',' . FtaChapitreModel::KEYNAME . ' FROM ' . FtaChapitreModel::TABLENAME . ' WHERE ( 0' . FtaChapitreModel::addIdFtaChapitre($ListeDesChapitresSuivant["0"]) . ' )');
         foreach ($arrayChapitreDescription as $rowsChapitreDescription) {
             $bloc .= $rowsChapitreDescription[FtaChapitreModel::FIELDNAME_NOM_USUEL_CHAPITRE] . ' / ';
             $redirection .= '&' . FtaChapitreModel::FIELDNAME_NOM_CHAPITRE . '_' . $rowsChapitreDescription[FtaChapitreModel::KEYNAME] . '=2';
         }
     } else {
         $bloc = "<i>Les chapitres sélectionnés sont les seuls à être dévalidé </i>";
     }
 } else {
     //Averissement
 /**
  * 
  * @param int $paramIdFta
  * @param int $paramIdProcessus
  * @param int $paramIdFtaWorkflow
  * @param string $paramAbreviation_fta_etat
  * @param HtmlResult2 $htmlResult
  * @param array $idFtaProcessusEffectue
  * @param string $paramFirstPass
  * @return array
  */
 public static function getProcessusNextFromIdFtaChapitres($paramIdFta, $paramIdProcessus, $paramIdFtaWorkflow, $paramAbreviation_fta_etat, HtmlResult2 $htmlResult, $idFtaProcessusEffectue, $paramFirstPass = NULL)
 {
     /**
      * On vérifie si le processus à deja été utilisé.
      */
     $cheackIdFtaProcessus = in_array($paramIdProcessus, $idFtaProcessusEffectue);
     if (!$cheackIdFtaProcessus) {
         $idFtaProcessusEffectue[] = $paramIdProcessus;
         //Recherches des processus suivants
         $arrayProcessusCycle = FtaProcessusCycleModel::getArrayProccusNextValidateFromIdFta($paramIdFta, $paramIdFtaWorkflow, $paramAbreviation_fta_etat, $paramIdProcessus);
         //Enregistrement du processus
         if ($paramFirstPass) {
             $htmlResult->setProcessus($paramIdProcessus);
         }
         if ($htmlResult->getHtmlResult() == NULL) {
             $array = array('processus' => $htmlResult->getProcessus());
             $htmlResult->setHtmlResult($array);
         } else {
             $array = $htmlResult->getHtmlResult();
             $arrayTmp = array('processus' => $htmlResult->getProcessus());
             $array3 = array_merge_recursive($arrayTmp, $array);
             $htmlResult->setHtmlResult($array3);
         }
         if ($arrayProcessusCycle != NULL) {
             foreach ($arrayProcessusCycle as $rowsProcessusCycle) {
                 $paramIdProcessus = $rowsProcessusCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT];
                 $paramFirstPass = "******";
                 //Appel récursif de la fonction pour continuer à dévalider les processus suivants
                 FtaProcessusModel::getProcessusNextFromIdFtaChapitres($paramIdFta, $paramIdProcessus, $paramIdFtaWorkflow, $paramAbreviation_fta_etat, $htmlResult, $idFtaProcessusEffectue, $paramFirstPass);
             }
         }
         //Retour de la fonction
         return $htmlResult->getHtmlResult();
     }
 }